Extremely poor performance in v0.55.5+

Describe the bug
It seems that the performance since v0.55.6 is very bad. A simple terragrunt apply without caches (that is with .terragrunt-cache and .terraform.lock.hcl recursively removed) is taking ages.
What took about a minute on v0.55.5 didn't even finish after 10 minutes on v0.55.6.
I then downgraded back to v0.55.5 and it worked again.
It seems like it is getting caught in some kind of cyclic redundancy as it keeps looping over the same modules over and over again ("Evaluated X locals (remaining XX)")
Versions

Terragrunt version: v0.55.6
Terraform version: 1.7.4
Environment details Ubuntu 23.10

Additional context

Cause could be the changes done in #2957 to fix #2955
Other users are reporting performance issues as well in #2806

Renovate planned an upgrade of Terragrunt today after I downgraded it yesterday.
One of the plan jobs that is impacted by this change took 25 minutes (!) to execute where it would normally take 1~2 minutes at most.

I have seen similar behaviors with "noticeable" slowdowns across various different releases. For the moment I am back using version 0.50.14 because after that version I begin to notice slowdowns.

My experience is that the slow down is far worse in the examples directory of our infrastructure-modules repo, where there is a long pause before it does any output.  I’m on 55.1 now due to an earlier problem with dependencies that started in 55.4.  I’ll try going back to 50.14.

Hi,
will be helpful to get feedback on changes from https://github.com/gruntwork-io/terragrunt/pull/2983 to see if performance is improved for real users

Hi @denis256, I noticed the same performance issue as @syphernl and was also able to pin it down to the release of v0.55.6.
I did some "benchmarking" across different versions of Terragrunt by running terragrunt run-all init (no plan or apply)  in a project with 35 modules and the performance issues do not seem to be solved until the latest version v0.56.5.
I created a plot of the timespans between every module that shows a massive increase of runtime for the final modules (looks like it's increasing exponentially).

The plot shows that for versions below 0.55.6 (I tested 0.55.0, 0.55.5) the "runtime" per module is mostly below 30 seconds. Starting from 0.55.6 and above the final module takes over 30min to initialize. Note that the y-axis is set to log-scale and the time next to the version (in the legend) is the real output of the time command.
Regarding the cause of the exponential slowdown, @syphernl already made a good guess

It seems like it is getting caught in some kind of cyclic redundancy as it keeps looping over the same modules over and over again ("Evaluated X locals (remaining XX)")

Either way, according to my analysis the bug should be somewhere between https://github.com/gruntwork-io/terragrunt/compare/v0.55.5...v0.55.6.
Let me know if there is anything else I can help with :slightly_smiling_face:. Thanks in advance for digging into this and fixing the bug!

P.S. To collect the time deltas, I used the timestamp of the log message Downloading Terraform configurations ... which seems to be issued once per module, e.g.
time=2024-04-12T08:59:32+02:00 level=info msg=Downloading Terraform configurations from ... into ... prefix=[<absolate-path-to-module]

So I can confirm that I still experience huge downgrade in performance of terragrunt after v0.55.6
We have a pretty big project that deploys mainly AWS resources. run-all plan takes usually around ~20 minutes
but after upgrading terraform to anything higher or equal than v0.55.6 it can take even over 1h!
here is screenshot from our gitlab ci - passed jobs were using v0.55.5, job that failed was using v0.57.2 and it failed only because gitlab job timed-out at 1h... the same code 20min vs 60min+

I also noticed when working locally that terragrunt run-all * commands are starting to hang after processing x modules more and more, so that terragrunt is not producing any logs for some time and after n seconds/minutes it starts working on next module again and the time of delay is increasing...
Not sure how valuable this info is, but definitely I would reopen this issue

Don't have much to add unfortunately, but we are seeing the same issue after upgrading from v0.52 to any version v0.53 and above. Seems to be init causing the issue. run-all init has gone from taking a few minutes to taking over 30 minutes. Terraform version is 1.5.7 and we are setting both TERRAGRUNT_DOWNLOAD and TF_PLUGIN_CACHE_DIR. The majority of our modules are stored in the same repository and sourced through a relative cache.

It appears to be looping constantly (I kept seeing it evaluating same locals blocks). With debug mode it showed that it went up to DEBU[0142]
Even running terragrunt force-unlock xxxxxxxxx while in this directory takes 2~3 minutes to execute from start to the confirmation prompt.
In between it appears to be hanging with no debug output (terraform or terragrunt) for a long time, this happens a few times during execution.

Echoing that I am seeing the same poor performance in 0.58.1. In earlier versions (e.g.: 0.53.6) I was completing a terragrunt run-all plan in 3 minutes and 32 seconds. Now, with the same underlying code and just a switch to 0.58.1, I see a terragrunt run-all plan completion in 19 minutes and 40 seconds. I also see the terragrunt PID landing at 722% peak CPU.
It seems to be proportional to the amount of dependencies - put another way, my earlier modules with 0 or 1 dependencies are still reasonably quick, but as you reach the end of a stack where I have 5-6 dependencies, the slowness reflects into a much larger slowdown.

I'm seeing poor performance on 0.58.2
I was able to mitigate this slowness completely by removing the block at https://github.com/gruntwork-io/terragrunt/blob/master/config/config_partial.go#L296-L303
Of course, this removes "ancestor" dependencies from being checked. Ancestor dependency processing might be opt-in via command line option?

It seems to be re-evaluating the same sets of locals over and over for each dependency.
I ran this commands on one of our more problematic projects with terragrunt 0.55.4 and 0.58.2
terragrunt plan --terragrunt-log-level debug 2>&1 | grep -o 'Found locals.*prefix=.*' | sort | uniq -c | sort -n

All of our projects include a single terragrunt.hcl file at the root of the repo which uses read_terragrunt_config(find_in_parent_folders()) to read additional variables from various places around the repo.
Forgive the redactions, but it's pretty clear that 0.58.2 is processing the same sets of locals from the same files over and over much more than 0.55.4 did.

Version 0.55.4
   1 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   1 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   1 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   1 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   1 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   1 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   3 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   4 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   5 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   6 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   6 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   7 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   8 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
   9 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  12 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  12 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  12 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  12 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  14 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  20 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  20 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  20 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  27 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  27 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  38 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  44 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  47 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  69 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 167 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 173 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 192 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 199 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 321 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Root terragrunt.hcl

Version 0.58.2
  12 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  14 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  14 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  14 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  14 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  16 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  20 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  20 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  20 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  24 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  24 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  24 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  28 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  28 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  32 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  32 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  32 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  36 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  36 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  40 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  40 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  46 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  48 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  58 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  60 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  62 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  65 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  80 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  81 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  81 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
  86 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
  88 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 105 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 112 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 135 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 136 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 144 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 160 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 164 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 180 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 200 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 208 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 218 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 218 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 270 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 289 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 289 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 304 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
 329 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 417 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 432 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 433 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 477 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 609 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 690 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
 956 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
1360 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
1388 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
1757 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
1886 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Direct or indirect dependency]
1913 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
2777 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
3170 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
3412 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
3461 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
5279 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
5888 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
8055 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
8773 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: File referenced by root terragrunt.hcl]
14421 Found locals block: evaluating the expressions. prefix=[REDACTED PATH: Root terragrunt.hcl]

It's also worth noting that running this plan on 0.55.4 took 20 seconds but running it on 0.58.2 took 47 minutes.

We've attempted to upgrade from 0.51.7 to 0.57.5. In 0.51.7, run-all apply ran for 3min 36s, in 0.57.5 it took 12mins 37s.
We have a project with 13 modules, every module has a terragrunt.hcl file which uses  read_terragrunt_config(find_in_parent_folders("terragrunt.hcl")) and includes a common.hcl config with some additional configurations.
Confirming @jescholl, Terragrunt reevaluates the same locals for each dependency.

0.51.7: 228 locals evaluations
0.57.5L 2645 locals evaluations

We would have loved to upgrade to a newer version as there are some features we really need, but no with such a drop in performance.

we are experiencing the same issues, one small fix we found was disabling expose = true when its not needed (most deploys are boilerplate copy pasted for the include root) and that cuts down on the reprocessing of the root locals for each dependency where its not needed.  of course its not universal and just a bandaide.  Since this seems to of been introduced around the time of exporting the inputs too maybe its related?

Hi @denis256, are there any updates on this issue?
We're experiencing the same problem: our deployment pipeline with version 0.56.0 takes over 1.5 hours, whereas it only took 10 minutes with version 0.55.0.
We've been following this ticket for quite some time, and it seems like there's been no recent activity on the issue. The issue in the roadmap is still marked as Done. Perhaps it could be moved back to draw more attention to it?
Thank you for your help!

Ya. We are leaving behind terragrunt because of this. Our workflow is sooo slow now. A simple local apply takes more than 15 minutes to get started.

Hey folks!
Sorry for the negative experience regarding performance in Terragrunt. Definitely not what we want out of the tool.
We'd like to have more information on the scenarios in which you're experiencing performance degradation, in addition to the upgrade. Information like the general number of files involved in the repository, and what they're doing can help us track down places where optimizations can take place.
Please refer to the analysis done here to give some ideas as to how those performance bottlenecks can be uncovered.
Note that in the issue linked above, we discuss how certain issues like re-evaluating locals repeatedly has to be done by default in order to ensure the correctness of Terragrunt configuration parsing (see this for example), but that we're investigating workarounds to reduce the impact of those restrictions on performance.
Thank you for your cooperation and patience as we work through these issues. Terragrunt's performance improvements are going to depend on collaboration with the community to find solutions that work for everyone.

Thanks for your response, @yhakbar!
As mentioned in my comment above, I figured that v0.55.6 introduced changes that drastically increase the time for initializing modules (especially the ones in the final groups). I also tried it again with v0.63.2 but canceled terragrunt run-all init after 5 hours of runtime as it did not finish.

According to my analysis the bug should be somewhere between https://github.com/gruntwork-io/terragrunt/compare/v0.55.5...v0.55.6.

Before everyone starts to file issues custom to their Terragrunt setup I would very much appreciate it if you could confirm that v0.55.6 did not introduce unexpected behavior or bugs related to this.
Thank you very much! :slightly_smiling_face:

@RafaelWO ,
Sharing when you started experiencing performance degradation can help us find out when something was introduced that impacted performance, but not necessarily what is impacting performance for your use-case.
As far as we can tell right now, that release addressed some necessary changes that did introduce more work by Terragrunt, which can reduce performance, but nothing that is obviously a bug in logic. If you could demonstrate that Terragrunt is doing extra work that it deterministically doesn't have to do in a particular scenario, that can guide implementations for fixes that increases caching, or fixes cache keys, etc.
For that reason, we're soliciting analyses of scenarios where performance is an issue, hopefully with reproducible fixtures that we can look at to see where Terragrunt can be optimized to improve performance, if it can without reducing correctness.
For everyone's awareness, I will be proposing an RFC in the near future that gives users more fine grained control over how work is memoized in Terragrunt. I think there's room for Terragrunt to give users more control over how configuration parsing is memoized so that configurations can be cached even if Terragrunt cannot determine that it's safe to do so deterministically.

I tried passing --terragrunt-fetch-dependency-output-from-state  --terragrunt-use-partial-parse-config-cache and found a significant difference in the performance. Docs

Hello,
in https://github.com/gruntwork-io/terragrunt/releases/tag/v0.66.3 I added some performance improvements, will be helpful to get some feedback on the results
I would also suggest to try --terragrunt-use-partial-parse-config-cache

A small update from my side: I ran my benchmark again with Terragrunt 0.66.3 (no additional options) and got back to the runtime of ~10min, i.e. the same as before 0.55.6 :heart_eyes:
Using --terragrunt-fetch-dependency-output-from-state gives another improvement of 1 min and enabling the provider cache (obviously) speeds up the init duration as well resulting in a final runtime of ~7min.
Thanks for the improvements and fixes! I'm psyched to finally upgrade our CI/CD pipeline to the newest Terragrunt version :slightly_smiling_face:

An update from me, too: using Terragrunt v0.66.3 without any additional options, we've returned to the runtime of 3min 30s as it was before v0.55.5.
So happy to finally be able to update Terragrunt and use all these new features!
Thanks so much for the improvements!


CSS Unit converter

🛠 Fixes Issue (#430 )

👨💻 Changes proposed
This is project-based on CSS unit conversion under the reference of issue no https://github.com/ZeroOctave/ZeroOctave-Javascript-Projects/issues/430. Like main functionality of this project is when you will give value in Pixel then it will convert in em and vice versa.

✅ Check List (Check all the applicable boxes)

[x] My code doesn't break any part of the project (Zero Octave-Javascript-Projects).
[x] This PR does not contain plagiarized content.
[x] My Addition/Changes works properly and matches the overall repo pattern.
[x] The title of my pull request is a short description of the requested changes.

📷 Screenshots

your css file isn't working and add your project in the index and cardsdata file of website

@NOiR-07 buddy, I commit the changes as you have suggested kindly review it and merge this Pr.

@Kumar-Ankit56 css and js files are still not linked properly
use ../assets/css/Pixel converter.css

@Palaksharma23 Hope so it will work now.

We've changes the files for the website, so i suggest you to update your forked repo and add your project in cards.json and readme instead of index and cardsdata file

I'm closing this due to the lots of overcrowded files and it gets messed up with this pr after closing this I'm going to create a new fresh Pr for my assigned issue.


Make the "trickplay" directory hidden

Hi, I just noticed that the plugin generates a trickplay folder next to every video file it finds, when the setting "Store next to media files" is enabled. While this works well, I believe renaming that folder to .trickplay might be a good idea. This way it will either be hidden by default or always be at the top and don't interfere with sorting. The functionality would still be the same, but the semantics of this being metadata would be highlighted :)
What do you think?

For now this isn't planned to keep compatibility will all the trickplay files already generated under the "trickplay" folder. I don't want to introduce something yet that may break older versions or complicate the code more, but if there was enough interest in this then maybe.


Use Ollama to perform inference with trained model using LMFLOW

Is there a way we can use the trained model using lmflow to integrate Ollama to perform inference

Thanks for your interest in LMFlow! Currently we haven't integrated Ollama in LMFlow, but the trained output model is compatible with the general format of huggingface, so Ollama should be okay in that case. If the local model is not working, you may try pushing it to huggingface (https://huggingface.co/docs/transformers/model_sharing) then try again. Hope that helps 😄


Can i enable Mutual TLS between Opendistro ES and Logstash also between ES and Kibana?

Can i enable Mutual TLS between Opendistro ES and Logstash also between ES and Kibana? I saw saveral example on enabling one way TLS for encryption. However there is not much online sample config i was able to find for mutual TLS authentication. Any suggesting for the config will help.
Thanks

Hi, if you're still looking for help with this, go ahead and post a question to the Open Distro forums. Thanks!


No more today syntax in time filters?

I previously had a net worth sidebar link that used the filter 2015 - today. My reasoning for this was my financial records pre-2015 are not complete, so come 2015-01-01 there's a massive spike in my net worth that totally knocks the axis off so I like to view it without that.
It seems since the recent date refactorings I can no longer specify "today" - I've instead replaced it with 2014-12-01 - year[0] which is OKish, but not as great as previously as now I've just a straight graph past today's date - as it hasn't happened yet, which is pretty useless.
Am I missing something? If not is there places to reinstate this?
Thanks
[0]: 2015-01-01 - year and 2015 - year both make the graph start from 2015-02-01, unclear to why. Yet 2014-12-01 - year and it starts from 2015-01-01.

\cc @yagebu

As I recall, use "day" instead of "today", and it should work as before.
E.g. instead of the old "ytd" (year to date), which required special
handling, you can now use "year - day".
On Mon, Aug 1, 2016, 03:31 Dominik Aumayr<EMAIL_ADDRESS>wrote:

\cc @yagebu https://github.com/yagebu
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/aumayr/fava/issues/344#issuecomment-236451632, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAdWBxCq07R2VBnG2Wxb7Cy14g_lvH2Yks5qbPgngaJpZM4JZCMz
.

--
Best regards,
Daniël Bos
Your government is reading your email. Slow them down with encryption.
My public key: http://goo.gl/gms497 (4096 bit RSA, id EF2D5D91)
Fingerprint  : D8D0 9FBE F075 F709 7B52  2F73 326C 2123 EF2D 5D91

Ahah, that works - thanks. However, it's out by one and instead e.g. today goes to 2016-09-01 when its 2016-08-01, similar to my above issue:

2015-01-01 - year and 2015 - year both make the graph start from 2015-02-01, unclear to why. Yet 2014-12-01 - year and it starts from 2015-01-01.

Thanks for reporting this! There were two things at play here:

The start date wasn't included, which was probably just a simple oversight.
The end date always was at the end of the interval. I believe this was necessary for the old chart code but now it should work fine.


Set FSW performance baseline to 6.8-milestone-1

Let's measure against a released version instead.

@bot-gradle test QFL please.

OK, I've already triggered QuickFeedbackLinux build for you.

@bot-gradle test QFL please.

OK, I've already cancelled the old build and triggered a new QuickFeedbackLinux build for you.


Support other types of entities

[ ] #37
[ ] #19
[ ] #7

+1 for cover entities. I had this working with a cover and for some reason it stopped working and then I looked at the github page and it says it's not supported :( not sure what happened.

+1 i was hopping to use this with a number/screen brightness entity

Would be lovely if input booleans could be added as well, using these to bypass automations when lights turned on manually.

I vote for input_number entities. :D


CellGuide - Global Tissue Filter

Based on user feedback from our pre and post launch of CellGuide, users would find it highly valuable to select and filter cell types based on Tissue.
The Global Tissue Filter Selection feature in CellGuide offers users a unique and seamless way to sort and view cell types based on specific tissues of interest. By simply selecting the desired tissue, users can quickly filter out unrelated cell types, making it much easier to navigate the comprehensive cell database.
@hthomas-czi to add designs
User Stories:
As a user, I want to be able to filter cell types based on specific tissues so that I can focus on the cells relevant to my research project.
As a user, I want this filter to be applied across the relevant sections on the cell type page.
As a user, I want to apply the global filter to my desired tissue so that I can easily identify and study the marker genes associated with that tissue's cell types.
As a user, I want to apply the global filter so I can browse through the interactive cell ontology tree so that I can understand the relationships between different cell types within a particular tissue of interest.
As a user, I want to select a tissue of interest from the tissue type page or via the search, based on my tissue selection, I want cell types to be filtered based on that tissue type on any cell types I view.
As a user, I want a visual aid to inform me of the tissue type filter that has been applied, so I can remove it or change it in the future.
UX Design
Figma
Scrollable Prototype

Use the second column of the tissue filter in data portal. More granular tissue terms should be relabeled to match the "organ" granularity.
Question - are there any cells labeled with UBERON terms that are LESS granular than organs?

Just use ORGAN for now and ignore cells that are LESS granular than organ.

@hthomas-czi - I want to point out a UX issue here.
https://cellxgene.dev.single-cell.czi.technology/cellguide/CL_0000540
Notice that in the tables Canonical marker genes can only be filtered by tissue but Computational marker genes can be filtered by organism and tissue.
Bringing the tissue selector to the top puts organism filter in weird place because it only applies to Computational marker genes. We have 2 cases here:

Don't make organism filter global. Keeping organism filter next to the Computational marker genes table means that a user might would have to scroll between global tissue filter and local organism filter for Computational marker genes.

Make organism filter global. This approach would simply ignore organism filter when applied to Canonical marker genes.

I feel (2) looks consistent but semantically might be confusing for users. But perhaps some info on the Canonical marker genes clarifying that organism filter is not applied would clear things up. If organism filter can be applied to canonical marker genes then (2) seems to be the best way to go

@prathapsridharan
Thanks for bring this up.
I believe (2) is the correct solution. Organism will ultimately apply to multiple sections like Tissue does. At a minimum, Computational marker genes and Data.
I agree it'd be useful to call out when a section isn't altered by the Tissue or Organism filter. I'd like to think on this more.
Your question prompted another question for me. Canonical marker genes don't have an Organism filter, but that may not mean that the Organism doesn't apply. In fact, I'd guess that the Canonical marker genes are only for Homo sapiens and we don't have an Organism filter because that table would be empty for non-Homo sapiens. @atarashansky Is this the case?

Yes, that would be my preferred solution. Just like how the canonical marker genes should be empty if a global tissue filter is applied for which there are no canonical marker genes. So should the canonical marker genes be empty if an organism other than human is selected.
That being said, the "No canonical marker genes" graphic should indicate that the lack of canonical marker genes may have something to do with the filters applied... I'm worried about users who just leave the organism as "Mus musculus" and are confused why none of the cell types have any canonical markers.

@atarashansky @hthomas-czi @tihuan
I am going to break this work down into the following steps (or PRs) so that this work can be integrated incrementally:

Add tissue and organism global filters that only filter the marker genes tables and uses SDS components for the dropdowns. There is PR for this that is ready for review and an accompanying rdev to test it on manually
Preselect tissue filter when going from tissue card to cell card
Filter ontology graph by the selections on the tissue filter
Filter source data by the selectiosn on the tissue filter

You'll be incrementally merging this work into a feature branch, correct?

@atarashansky - I was thinking about merging each of these steps into main. Hoping to do trunk based development this way. I figure, filtering tables is piece of functionality that already existed and this change merely moves the filters to the top and there is no behavior change. I figure this can be pushed to main and even released to users.

I would just double check with @niknak33 and @hthomas-czi that the behavior of the intermediate deliverables are alright before merging anything into main.

Looks great, @prathapsridharan! Thanks for breaking it down. That approach makes sense to me.
Just as a reminder as part of (2), the Tissue filter should have the search prop enabled.

@atarashansky @hthomas-czi - When constructing the global tissue filter dropdown list, currently I am taking the union of tissue name coming from computational marker genes and canonical marker genes.
For example, this means that eye comes from computational marker genes and retina comes from canonical marker genes. and the dropdown list will show both eye and retina.

I believe we discussed that eye is the organ and contains sub-tissues and therefore the dropdown list can simply show eye and omit retina?

If (1) is correct, are there tissues extracted from computational marker genes and canonical marker genes that cannot be related and be considered separate organs?

If (2) is correct, that is there are mutually independent organs extracted from computational marker genes and canonical marker geners, will they have tissue-id (UBERON:xyz)?

The answer to these questions determine how to implement the tissue list in the dropdown and how to associate the tissue-name in the list with a tissue-id

@atarashansky @hthomas-czi @niknak33
In order to:

Filter canonical marker genes table by taking into account synonymous and sub tissue names AND
Filter the source data

I need a mapping of organ name to a list of synonymous organ names and sub tissues.
Where can I get this?

@tihuan @atarashansky @niknak33 @hthomas-czi - With the core functionality of the filtering done, here is what is left to make this feature complete:

Better messaging in the marker genes table when All Tissues is selected to inform the user what All Tissues really means
SDS components for drop down
The top bar with the cell name and filters should be fixed to the top and have a gradient at the bottom.
background: var(--fade, linear-gradient(180deg, #FFF 90%, rgba(255, 255, 255, 0.00) 100%));
Breadcrumbs when navigating from page to page and pre-populating the tissue filter based on previous link in the navigation

@hthomas-czi @niknak33 @atarashansky . I have created the following tickets to tie up the functionality:

SDS component for dropdown - #5670
Change "All Tissues" to "Tissue Agnostic" in for the default dropdown selection - #5671
Make nav bar for cellcard sticky - https://github.com/chanzuckerberg/single-cell-data-portal/issues/5672
Moving from tissue card to cell card should populate the global tissue filter with tissue from which the user came from - https://github.com/chanzuckerberg/single-cell-data-portal/issues/5673
Make cell card page filtered by tissue/organism a shareable link - https://github.com/chanzuckerberg/single-cell-data-portal/issues/5674
Change the dropdown list for global tissue in cell card to be an independent organ list - https://github.com/chanzuckerberg/single-cell-data-portal/issues/5675


Make a TFLite test case run on big-endian machines

The test case BasicInterpreter.ThreeStepAllocate in /tensorflow/lite/interpreter_test.cc uses an array of little-endian binary data as one of its inputs. The little-endian data prevents this test from working properly on big-endian machines.
This pull request replaces the array of little-endian data with a struct, so that the embedded 32-bit fields will be in little-endian format on little-endian machines and in big-endian format on big-endian machines. After this change, the test case passes on both little-endian and big-endian machines.

Found a second test case in /tensorflow/lite/string_util_test.cc with the same issue and pushed a second commit to this branch to fix that test case too.

@frreiss Can you please resolve conflicts? Thanks!

@nutsiepully Can you please take a look on this PR? Thanks!


Show error when adding product not in stock

The code is there, but not showing due to the 400 status code.


[5.7] On interrupt, after handling the compilation process set termination, restore the SIGINT default action.

Cherry-pick of https://github.com/apple/swift-driver/pull/1157
Resolves rdar://98584872

@swift-ci test

@swift-ci test macOS platform

@swift-ci test macOS platform

@swift-ci test macOS platform

Test failures are unrelated, and appear to be caused by the fact that this CI is using the latest ToT snapshot toolchain, instead of a 5.7 toolchain.

Test failures are unrelated, and appear to be caused by the fact that this CI is using the latest ToT snapshot toolchain, instead of a 5.7 toolchain.

cc @shahmishal , this is an example PR.


Default width differs from cfgov-refresh

Current behavior

https://github.com/cfpb/generator-cf/blob/master/app/templates/src/static/css/cf-theme-overrides.less#L159 is 30px wider than https://github.com/cfpb/cfgov-refresh/blob/master/cfgov/unprocessed/css/cf-theme-overrides.less#L147

Expected behavior

Seems like the default should follow the width used in cfgov-refresh so that projects within CFPB that use the generator as a starting point have the correct width for the header alignment with content.

Nay, cfgov-refresh is the incorrect one. See: https://[GHE]/CFGOV/platform/issues/244


[projmgr] Add pack related access sequences handling

Handle $Dpack$, $Bpack$ and $Pack(vendor::name)$ access sequences as documented in:
https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/YML-Input-Format.md#access-sequences
Note: use :: as delimiter instead of ., as established by pack name conventions.

@ReinhardKeil Please update the documentation accordingly.


[xml] Add Windows Workflow (.xoml) extension.

I don't know if it's a little too obscure; but I tend to always have to patch this file to include the xoml extension so I thought I'd see if you'll accept it upstream.

Hi @thomasmichaelwallace, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

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

TTYL, MSBOT;

Change delivered, thanks!


Make @sap/cds a peer dependency

As for all other plugins, we should leave it up to the application to bring the sap/cds dependency in the version they want.
Also support upcoming cds 8

👍


feat(deployer): use advanced spreadsheet adapter without metadata

Is something missing for this to be merged?

Hi Falko,
Sorry for never getting back to this. I just had a look and it looks like the change breaks some test cases. Please have a look at them.
Besides, I think I won't be able to spend too much time on this project in the future. If you like you can become a co-maintainer of this project, so that you can make changes as you like without the PR cycle.
Cheers,
Thorben

 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.


Initialize Project Environment

User Story: As a developer, I need to set up the project environment with all necessary configurations and dependencies, so the team can start development.

Updated repo with boilerplate code and file structure


update release note for TLP

http://apisix.apache.org/contribute/release/ is for incubator project, we need to update it

can we close this issue now?


flagsmith panics with wrong Base URL set

There is a panic inside flagsmith when used with wrong URL set and via open-feature.
panic({0x8dcc00?, 0xb922d0?})
        /usr/local/go/src/runtime/panic.go:920 +0x290
github.com/Flagsmith/flagsmith-go-client/v3/flagengine.GetIdentitySegments(0xc000066360, 0xc0002058c8, {0x0, 0x0, 0x0})
        /home/m/go/pkg/mod/github.com/!flagsmith/flagsmith-go-client/v3@v3.1.0/flagengine/engine.go:77 +0x71
github.com/Flagsmith/flagsmith-go-client/v3/flagengine.getIdentityFeatureStatesMap(0xc000066360, 0xc0002058c8, {0x0, 0x0, 0x0})
        /home/m/go/pkg/mod/github.com/!flagsmith/flagsmith-go-client/v3@v3.1.0/flagengine/engine.go:96 +0x172
github.com/Flagsmith/flagsmith-go-client/v3/flagengine.GetIdentityFeatureStates(0xc000066360, 0xc0002058c8, {0x0, 0x0, 0x0})
        /home/m/go/pkg/mod/github.com/!flagsmith/flagsmith-go-client/v3@v3.1.0/flagengine/engine.go:41 +0x7e
github.com/Flagsmith/flagsmith-go-client/v3.(*Client).getIdentityFlagsFromEnvironment(0xc000100be0, {0x93a4cb, 0x10}, {0x0, 0x0, 0x0})
        /home/m/go/pkg/mod/github.com/!flagsmith/flagsmith-go-client/v3@v3.1.0/client.go:189 +0x1b3
github.com/Flagsmith/flagsmith-go-client/v3.(*Client).GetIdentityFlags(0xc000100be0, {0x9a5b00, 0xbcf3c0}, {0x93a4cb, 0x10}, {0x0, 0x0, 0x0})
        /home/m/go/pkg/mod/github.com/!flagsmith/flagsmith-go-client/v3@v3.1.0/client.go:98 +0xec
github.com/open-feature/go-sdk-contrib/providers/flagsmith/pkg.(*Provider).resolveFlag(0xc000016ef0, {0x9a5b00, 0xbcf3c0}, {0x93b2b4, 0x12}, {0x8c77a0, 0xb70b40}, 0xc0001a03c0)
        /home/m/go/pkg/mod/github.com/open-feature/go-sdk-contrib/providers/flagsmith@v0.1.4/pkg/provider.go:76 +0xd2d
github.com/open-feature/go-sdk-contrib/providers/flagsmith/pkg.(*Provider).BooleanEvaluation(0xc000016ef0, {0x9a5b00, 0xbcf3c0}, {0x93b2b4, 0x12}, 0x0, 0xc0001a03c0)
        /home/m/go/pkg/mod/github.com/open-feature/go-sdk-contrib/providers/flagsmith@v0.1.4/pkg/provider.go:134 +0xd3
github.com/open-feature/go-sdk/pkg/openfeature.(*Client).evaluate(0xc0000662a0, {0x9a5b00, 0xbcf3c0}, {0x93b2b4, 0x12}, 0x0, {0x8c77a0, 0xb70b40}, {{0x93a4cb, 0x10}, ...}, ...)
        /home/m/go/pkg/mod/github.com/open-feature/go-sdk@v1.5.1/pkg/openfeature/client.go:714 +0x17c4
github.com/open-feature/go-sdk/pkg/openfeature.(*Client).BooleanValue(0xc0000662a0, {0x9a5b00, 0xbcf3c0}, {0x93b2b4, 0x12}, 0x0, {{0x93a4cb, 0x10}, 0xc0001a0300}, {0x0, ...})
        /home/m/go/pkg/mod/github.com/open-feature/go-sdk@v1.5.1/pkg/openfeature/client.go:303 +0x332
main.helloServer({0x9a53c0, 0xc0001fc000}, 0xc0001f6000)
        /home/m/ff/flagsmith/main.go:54 +0x39a
net/http.HandlerFunc.ServeHTTP(0x97e160, {0x9a53c0, 0xc0001fc000}, 0xc0001f6000)

This is the main.go
package main

import (
	"context"
	"github.com/Flagsmith/flagsmith-go-client/v3"
	openFlagsmith "github.com/open-feature/go-sdk-contrib/providers/flagsmith/pkg"
	"github.com/open-feature/go-sdk/pkg/openfeature"
	"io"
	"log"
	"net/http"
	"time"
)

var feature *openfeature.Client
var fc *flagsmith.Client

func init() {
	ctx := context.Background()
	// Initialize the flagsmith client
	client := flagsmith.NewClient(
		"ser.redactedredacted",
		flagsmith.WithLocalEvaluation(context.Background()),
		flagsmith.WithBaseURL("http://localhost:8000/"),
		//flagsmith.WithBaseURL("http://localhost:8000/api/v1/"),
		flagsmith.WithEnvironmentRefreshInterval(30*time.Second),
		flagsmith.WithAnalytics(ctx),
		flagsmith.WithRetries(3, 5*time.Second),
		flagsmith.WithDefaultHandler(func(s string) (flagsmith.Flag, error) {
			return flagsmith.Flag{Enabled: false}, nil
		}),
	)

	// Initialize the flagsmith provider
	provider := openFlagsmith.NewProvider(client, openFlagsmith.WithUsingBooleanConfigValue())

	openfeature.SetProvider(provider)

	// Create open feature client
	feature = openfeature.NewClient("prod")
	fc = client
}

func helloServer(w http.ResponseWriter, req *http.Request) {
	f, err := fc.GetEnvironmentFlags(context.Background())
	_, err = f.IsFeatureEnabled("bool_feature")
	_, err = f.IsFeatureEnabled("engine_status")
	_ = err

	evalCtx := openfeature.NewEvaluationContext(
		"openfeature_user",
		map[string]interface{}{},
	)

	if enabled, err := feature.BooleanValue(context.Background(), "engine_status", false, evalCtx); enabled && err == nil {
		io.WriteString(w, "Feature enabled\n")
	} else {
		io.WriteString(w, "hello, world!\n")
	}
}

func main() {
	http.HandleFunc("/", helloServer)
	log.Fatal(http.ListenAndServe(":8080", nil))
}

@mvrhov  Thanks - I will take a look

@mvrhov I can't reproduce the error that you are seeing, can you verify the code that has caused this error is the one you pasted?

I am going to close this for now. Feel free to reopen with more information if you are still facing this

It seems that the above example doesn't reproduce it each time. However I've jut got this in one production server where we have disabled flagsmith . (By not setting up the URL)

Ah. I have figured it out. flagsmith.WithBaseURL("http://localhost:80/"), MUST be set to somewhere where the server is responding, but flagsmith shouldn't be on that url

Can you please release  3.1.1 now that both #100 and #101 are merged. Thanks.

Can you please release/tag 3.1.1 now that both #100 and #101 are merged. Thanks.

Released: https://github.com/Flagsmith/flagsmith-go-client/releases/tag/v3.1.1


git feat(serve): add option to serve app from dist folder

Add a flag to allow serving the app from the dist folder.
This allows users to run ng build and then run ng serve --use-dist to serve from the dist folder. This is also enabled for ng e2e which allows running ng build with the appropriate environment / target and then running e2e tests against the build (without ng serve rebuilding). This is especially useful for continuous deployment scenarios.
This should resolve: #4293, #4722, and #4830

I would also like to enable running ng test against the dist build, but that is a bit more complicated so I'll try to figure it out and submit it as a separate PR if this is accepted.

Is there an actual use case for the ng serve addition?
While is works, it is essentially a hack.
For e2e it would make more sense (and be far cleaner), to just use express directly to serve a specified directory.
However, a user could also achieve this currently by using an existing simple http server (http-server for instance) and running e2e with --no-serve.

@clydin mostly it is for the purpose of running e2e's for continuous deployment. However, it could also be used for (admittedly rare) debugging purposes.
Personally, I think running your own server sounds more like a hack. IMO being able to run my e2e tests against the build that I plan to deploy seems pretty standard, and should be something ng-cli can do directly without me needing additional scripts / dependencies.
Today I have to build 3 times to do continuous deployment (test and e2e both build). Then, I build for the actual deployment which SHOULD be the same if I use the same flags, but aside from speed I'd feel a lot safer if I could run the tests against the actual code that I'm about to deploy.

The hack is the creative use of the contentBase and lazy options. This is not their intended use and there is no guarantee that their internal operation will remain the same moving forward.
If your goal is to to validate a production deployment, then running the e2e tests against a development server is probably not that most appropriate course of action anyway.  A staging server with a production representative configuration and environment would be a far better alternative.
Also, the unit testing by definition requires separate compilation.  It's testing the internal components of the application in scenarios that may or may not be triggered externally and at a much lower level.

Webpack server is really light I wouldn't call it a large amount of infrastructure. However, spinning up an entire staging environment and deploying the site there is. As you said, it's just s simple static http server using the dev server vs the actual production environment should have no impact.

a unit test by definition requires separate compilation

I don't follow what you mean by this. Why would that be necessary?

Interestingly, I just hit my first bug related to this today. When you run ng serve (or ng e2e) it serves any file in the root of src/ which means if you put some sort of static asset in src (e.g. /src/myfile.json) it will work fine with ng serve AND it will also pass on ng e2e even if you use the -prod flag. HOWEVER, when you deploy it will crash at runtime because that file won't be available in the dist folder.
Yes, I realize I can add additional assets into the angular-cli.json, but the point stands that due to the fact that e2e's use ng serve instead of allowing you to use the dist folder allowed a broken version of my app to deploy today this could've been avoided with this PR checked in.

I agree that this is an interesting idea, and I actually tried to do something similar before...
I settled on allowing --no-watch for serve instead for now.
Part of it was bugs like the one you just ran into. The dev-server hack has very real pitfalls.
There is also the very real consideration that there are several other settings that you can't reproduce this way, like --base-href and --deploy-url.
Then there is the motivation for this functionality itself... if you want to be sure the build actually works and you don't trust the in-memory one, why would you trust running ng serve --use-dist instead? It's still blackboxed. Whatever you feared before, you would still fear now.
I don't question the usecase, mind you. I talked about it a lot with @johnpapa.
But I question the design, implementation and perception.
So this PR as presented is not viable. Can I ask you to open a new issue to discuss this instead? Please tag me and @johnpapa as we're both quite interested in this topic.


Telemetry is Opt-out

Telemetry is enabled by default, which will not be met well in the Linux community.
Telemetry collects data that can identify user (e.g. input_dir = "/exl_arch/—3—PROJ—3—/eurystheus/src/" or input_dir = /home/exl/—2—POLY—2—/music/).

Solution: Make telemetry Opt-in, so when user encounters error they can enable this feature once and submit useful data that way. Also this will not create ton of useless data.

Good suggestion that I'll go ahead and roll it out in the next update

Fix waiting to be rolled out; thanks for the suggestion. https://github.com/Xanthus58/FileSorterX/commit/f9ad811084f5bf91b878892c396f6a559356f183


Refactor preprocessing.py module

[x] Check if the functions are more suited in some other module

[x] Add downsampling / binning function for location data

[x] Write tests

[x] Write documentation

[x] Create an example notebook

done


Detect and report errors in imageprogress.imageProgressWriter

#45, while otherwise making the goroutine termination more robust, dropped error handling and detection, which could not really work reliably (in most cases, the error would be reported by PipeReader.CloseWithError, but the writers callers would not write to the pipe again and never detect the error.)
This restores the error detection code, and implements a reliable error reporting mechanism: The reading goroutine reports its final status through a chan error, and imageProgressWriter.Close now BLOCKS on the goroutine finishing and reads the error status. (The blocking should, hopefully, not be a problem, because the callbacks tend to ultimately only log the progress or throw it away. Nevertheless, it is notable.)
Callers still need to be updated to collect and act upon the error from imageProgressWriter.Close. So, ClientExecutor.LoadImage is updated that way as well.
The imageprogress parts are reasonably well covered with unit tests, notably the TestErrorOnCopy test fairly closely mirrors how progress is provided by fsouza/go-dockerclient. The ClientExecutor.LoadImage part is absolutely untested by me.
See the individual commit messages for details.

@bparees @runcom @TomSweeneyRedHat ptal

LGTM
thanks a lot @mtrmac !

@mrunalp i'm not stopping you, do you guys not have merge perms?

/lgtm

/approve

looks like this repo doesn't have an OWNERS file yet.  you'll want to create one.


[Feature] Datetime support

It could be great if -bd and -ed parameters could be Datetime fields instead of just Date.
Because in some cases the minimum resolution (1 day) is too big to capture all the tweets in just one twitterscrapper. For example when an important event occur it's common that the twitter count rises.
I think maybe it isn't that difficult to implement and could be a great feature for these cases, as the command doesn't deliver partial results or a way to resume a failed scrap. Also there is no ETA or expected tweet number, so the usage time and limit parameter can be a little unpredictable.

Hello. I've created pull request with that feature. You can try my fork https://github.com/taspinar/twitterscraper/pull/258


Script and readme added for PDF Encryption

Description
The Python Script will encrypt the PDF with a password. It uses PyPDF2 package to work with the PDF files in Python.
Fixes #339
Replace issue_no with the issue number which is fixed in this PR
Have you read the Contributing Guidelines on Pull Requests?

[x] Yes

Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md
[x] My documentation follows Template for README.md
[x] My changes generate no new warnings
[ ] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works.

@all-contributors please add @AmeyaJain-25 for code and documentation


LIKE operator incorrectly handles newlines

Describe the bug
The LIKE operator doesn't appear to behave correctly with strings containing newlines
To Reproduce
#[tokio::test]
async fn like_on_multiline_string() -> Result<()> {
    let input = vec![Some("foo\nbar\nbaz")]
        .into_iter()
        .collect::<StringArray>();

    let batch = RecordBatch::try_from_iter(vec![("c1", Arc::new(input) as _)]).unwrap();

    let table = MemTable::try_new(batch.schema(), vec![vec![batch]])?;
    let mut ctx = ExecutionContext::new();
    ctx.register_table("test", Arc::new(table))?;

    let sql = "SELECT * FROM test WHERE c1 ~ 'bar'";
    let regex = execute_to_batches(&mut ctx, sql).await;

    let sql = "SELECT * FROM test WHERE c1 LIKE '%bar%'";
    let like = execute_to_batches(&mut ctx, sql).await;

    let expected = vec![
        "+-----+",
        "| c1  |",
        "+-----+",
        "| foo |",
        "| bar |",
        "| baz |",
        "+-----+",
    ];

    assert_batches_eq!(expected, &regex);
    assert_batches_eq!(expected, &like);
    Ok(())
}

The regex passes, but the LIKE expression which should be equivalent does not
Expected behavior
The test should pass

This will likely require a fix in the arrow kernel. Datafusion just calls functions like_utf8 etc here:
https://github.com/apache/arrow-datafusion/blob/master/datafusion-physical-expr/src/expressions/binary.rs#L47-L51
https://docs.rs/arrow/9.1.0/arrow/compute/kernels/comparison/fn.like_utf8.html


feat: Add fastify-cors example

This will add an example using fastify-cors which can receive requests from different hosts or ports.

 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.

Hi @timostamm, thanks for heads up. Okay, will work on it once the feature is published.

@timostamm Pushed some commits using the upgraded version but https://github.com/bufbuild/connect-es-integration/pull/463 is doing the similar thing. So feel free to reject it if this PR is not helpful as an example.

@timostamm Pushed some commits using the upgraded version but #463 is doing the similar thing. So feel free to reject it if this PR is not helpful as an example.

Hey @akinorimizushima. This is definitely a helpful example. What we are trying to do is make each example (express, fastify, etc.) self-sufficient and showing both a full-stack as well as a CORS example. #463 is an attempt to unify the Express project so that we don't have express, express-cors, fastify, fastify-cors, etc. Once we land #463, we're hoping to have a good pattern to follow and then we'd appreciate it if you could modify this to follow that same pattern with fastify.

Hi @akinorimizushima. On second thought, we decided to combine these changes into #463 since that PR was already doing a massive refactoring of the Node examples. Your work on fastify was ported to that PR, so I am going to close this in favor of #463. Thank you for the contribution!


PIT handler not being called

Hello! I've been following, loosely, the blog post and during the interrupts I tried running the kernel but the PIT handler is not being called at all. I double checked if interrupts are enabled, I added an inline asm with the sti call, but no luck, so I'm guessing the problem is that the handler is not being called.
You can check the code in this repository: https://github.com/shinobu-uwu/jon
More especifically, the relevant code is here:
https://github.com/shinobu-uwu/jon/blob/9caded006b42431da1b7f03051cab520c537030a/kernel/src/arch/x86/interrupt.rs#L4
https://github.com/shinobu-uwu/jon/blob/9caded006b42431da1b7f03051cab520c537030a/kernel/src/arch/x86/idt.rs#L21
https://github.com/shinobu-uwu/jon/blob/9caded006b42431da1b7f03051cab520c537030a/kernel/src/arch/x86/mod.rs#L15
I even asked in a discord channel if anyone knew why it's not working, but no one could find an answer, so I figured I'd ask here, maybe it's a known issue

You don't have any #[no_mangle]s in idt.rs, maybe try adding them?

Unfortunately #[no_mangle] didn't change anything, which makes sense since a pointer to a function is being passed as the handler, but thanks for the suggestion!

I just compared these two lines, yours and phil's
Is there a reason you are adding the + 1 to the offset ?
In Phil's the value is 32 while in your code it ends up being 33.
Everything else looks the same... maybe try removing that +1 ?

Uh, I have no idea why I was adding 1 to the offset, however the handler's still inexplicably not running...
I didn't have much time to investigate this up until now, so first I decided to run qemu with -monitor stdio, when I run info pic I get this output
ioapic0: ver=0x20 id=0x00 sel=0x00
  pin 0  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 1  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 2  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 3  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 4  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 5  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 6  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 7  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 8  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 9  0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 10 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 11 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 12 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 13 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 14 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 15 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 16 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 17 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 18 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 19 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 20 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 21 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 22 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  pin 23 0x0000000000010000 dest=0 vec=0   active-hi edge  masked fixed  physical
  IRR      (none)
  Remote IRR (none)
pic1: irr=00 imr=ff isr=00 hprio=0 irq_base=28 rr_sel=0 elcr=00 fnm=0
pic0: irr=01 imr=ff isr=00 hprio=0 irq_base=20 rr_sel=0 elcr=00 fnm=0

As you can see all the pins have the same value, and that one bit set to 1, the 16th, means that the interrupt is masked, meaning it won't be forwarded to the CPU. I'm still investigating how to solve this, will report back when I find something new

I feel so stupid for this
The reason why it's not working is because PIC is not supported under UEFI, if I run the BIOS binary it works...

Sorry for wasting your time 🙃


thread-safety-reference-return warning

Although the lock is in assertion but clang 12 complains on
https://github.com/envoyproxy/envoy/blob/main/source%2Fcommon%2Fstats%2Fthread_local_store.h#L418-L426
source/common/stats/thread_local_store.h:425:14: warning: returning variable 'central_cache_' by reference requires holding mutex 'parent_.lock_' [-Wthread-safety-reference-return]
  425 |       return central_cache_;
      |              ^

cc @phlax

currently supported clang is clang-14 - any other version YMMV


how to save solution as pdf ???

There is no current functionality to save the puzzle solution to PDF. I assume by "solution", you mean what gets output when calling puzzle.solution? If so, It wouldn't be very hard to add it's just not there now. The answer key is printed at the bottom (and upside down) of the standard puzzle PDF output.
Am I correctly understanding what you are asking?

So, I thought of 3 potential solutions. Let me know if any sound better or worse to you.
puzzle.save("filepath.pdf", solution=True)

The command above saves the standard PDF puzzle file but highlights the solution by either coloring them in red or putting red squares around them.
The command above saves the standard PDF puzzle file and includes a second page with the solution. The second page would be the same as the first but would only show the letters from the puzzle words.
The setting above would only save a PDF file of the solution at the specified path. This option would require you to save the standard puzzle output in a second step.

sorry for my English I think the first and second answers are better, my point is to get the answer on a separate page
in the last, after I run the script I hope to get
page 1 contains the word search puzzle
page 2 get the solution of the puzzle on (pdf or image)
I  hope you understand me and thanks for this repo

I understand. I'll let you know when I get an updated version uploaded. Thanks!

I understand. I'll let you know when I get an updated version uploaded. Thanks!

thanks for help

I've got a working PR #16 that I think provides the functionality you are looking for.
You can call the save() method with solution=True to have the solution exported within the same file as the puzzle.
p = WordSearch("dog cat pig")
p.save("test.pdf", solution=True)

...result in the pdf file linked below. The "solution" is added as a second page with the words highlighted in red just as you get with the show(solution=True) method.
TestWithSolution.pdf
p = WordSearch("dog cat pig")
p.save("test.csv", solution=True)

...result in the csv file linked below. The "solution" is added at the bottom of the csv file with only the puzzle words visible. All other characters are represented as a blank space " ".
TestWithSolution.csv
Have a look and let me know what you think. Thanks!

I've got a working PR #16 that I think provides the functionality you are looking for.
You can call the save() method with solution=True to have the solution exported within the same file as the puzzle.
p = WordSearch("dog cat pig")
p.save("test.pdf", solution=True)

...result in the pdf file linked below. The "solution" is added as a second page with the words highlighted in red just as you get with the show(solution=True) method. TestWithSolution.pdf
p = WordSearch("dog cat pig")
p.save("test.csv", solution=True)

...result in the csv file linked below. The "solution" is added at the bottom of the csv file with only the puzzle words visible. All other characters are represented as a blank space " ". TestWithSolution.csv
Have a look and let me know what you think. Thanks!
thanks for the update
still not working I use the code
p = WordSearch("dog cat pig")
p.save("test.csv", solution=True)

" TypeError: WordSearch.save() got an unexpected keyword argument 'solution' "

Yeah, I haven't merged the new feature code and released a new version yet... So if you installed it using pip you would get that error. I just wanted to get your feedback on the attached pdf to see if that is the result you were looking for before I released the new version.

Yeah, I haven't merged the new feature code and released a new version yet... So if you installed it using pip you would get that error. I just wanted to get your feedback on the attached pdf to see if that is the result you were looking for before I released the new version.

it's perfect  you can add a grid system (border on each letter) it will be better Other than that everything is great


Ensure Hyper-V management service is running

I am trying to setup crc in windows 10 but failed. Find below the logs when run with debug.

crc setup --log-level debug

INFO Checking if running as normal user
INFO Caching oc binary
DEBU oc binary already cached
INFO Unpacking bundle from the CRC binary
INFO Check Windows 10 release
INFO Hyper-V installed
ERRO Hyper-V Virtual Machine Management service not running
DEBU Hyper-V Virtual Machine Management service not running
INFO Will run as admin: enable Hyper-V
ERRO Please reboot your system
INFO Is user a member of the Hyper-V Administrators group
INFO Does the Hyper-V virtual switch exist
DEBU exit status 1
ERRO Failed checking if Hyper-V Default Switch exists
DEBU Failed checking if Hyper-V Default Switch exists
ERRO Unable to perform Hyper-V administrative commands. Please make sure to re-login or reboot your system
FATA Unable to perform Hyper-V administrative commands. Please make sure to re-login or reboot your system

Kindly advice.
Thanks,

Please reboot your machibe as instructed,

I did reboot the machine and tried the same command again but getting the same error. Kindly let me know what additional information is needed.

The original bug report contained additional notes about the commands to run to obtain these.
Please share the version of Windows you try this with; systeminfo and output of crc setup.

Can you also try net start "Hyper-V Virtual Machine Management" and run crc setup ?
Do you have other hypervisors installed perhaps, like VMware or VirtualBox?

Reproducible as by stopping the vmms:
C:\Users\gbraad\Downloads>crc setup
INFO Checking if running as normal user
INFO Caching oc binary
INFO Unpacking bundle from the CRC binary
INFO Check Windows 10 release
INFO Hyper-V installed
ERRO Hyper-V Virtual Machine Management service not running
INFO Will run as admin: enable Hyper-V
ERRO Please reboot your system
INFO Is user a member of the Hyper-V Administrators group
INFO Does the Hyper-V virtual switch exist
ERRO Virtual Switch not found
ERRO Unable to perform Hyper-V administrative commands. Please make sure to re-login or reboot your system
FATA Unable to perform Hyper-V administrative commands. Please make sure to re-login or reboot your system

C:\Users\gbraad\Downloads>net start "Hyper-V Virtual Machine Management"
The Hyper-V Virtual Machine Management service is starting.
The Hyper-V Virtual Machine Management service was started successfully.

C:\Users\gbraad\Downloads>crc setup
INFO Checking if running as normal user
INFO Caching oc binary
INFO Unpacking bundle from the CRC binary
INFO Check Windows 10 release
INFO Hyper-V installed
INFO Is user a member of the Hyper-V Administrators group
INFO Does the Hyper-V virtual switch exist
INFO Found Virtual Switch to use: Default Switch
Setup is complete, you can now run 'crc start -b $bundlename' to start the OpenShift cluster

I added a new pre-flight check that handles this situation. We did check the service state, but didn't fix it.

Thank You very much for the update.  I was trying to start the hyper-v service as below but getting error.

net start "Hyper-V Virtual Machine Management"
The service name is invalid.

More help is available by typing NET HELPMSG 2185.
I had in my system virtual box, so I uninstalled and tried again but with same result.  If not Hyper-V, are there other alternatives that we could leverage?
Thanks ahead

I have a similar issue and don't know how to resolve. I'm running Windows 10 Home. I enabled Intel Virtualization through BIOS. Running crc setup I get the following errors:
C:\OpenShift>crc setup
INFO Checking if running as normal user
INFO Caching oc binary
INFO Unpacking bundle from the CRC binary
INFO Check Windows 10 release
INFO Hyper-V installed
ERRO Hyper-V Virtual Machine Management service not running
INFO Will run as admin: enable Hyper-V
ERRO Please reboot your system
INFO Is user a member of the Hyper-V Administrators group
INFO Does the Hyper-V virtual switch exist
ERRO Virtual Switch not found
ERRO Unable to perform Hyper-V administrative commands. Please make sure to re-login or reboot your system
FATA Unable to perform Hyper-V administrative commands. Please make sure to re-login or reboot your system

When running net start "Hyper-V Virtual Machine Management" I get the following error:
C:\OpenShift>net start "Hyper-V Virtual Machine Management"
The service name is invalid.

More help is available by typing NET HELPMSG 2185.

We had the same error, this happens because you user in not added to usergroup "Hyper-V Administrators". You must add it manualy. Follow this:

Click Start > Control Panel > Administration Tools > Computer Management. The Computer Management window opens.
Click System Tools > Local Users and Groups > Groups. The list of groups opens.
Double-click the Hyper-V Administrators group. The Hyper-V Administrators Properties window opens.
Click Add. The Select Users or Groups window opens.
In the Enter the object names to select field, enter the user account name to whom you want to assign permissions, and then click OK.
Click Apply, and then click OK.

Press Win + R shortcut keys on your keyboard and type the following in the run box: lusrmgr.msc

2. Click System Tools > Local Users and Groups > Groups. The list of groups opens.

3. Double-click the Hyper-V Administrators group. The Hyper-V Administrators Properties window opens.

4. Click Add. The Select Users or Groups window opens.

5. In the Enter the object names to select field, enter the user account name to whom you want to assign permissions, and then click OK.

6. Click Apply, and then click OK.

We had the same error, this happens because you user in not added to usergroup "Hyper-V Administrators". You must add it manualy. Follow this:

Click Start > Control Panel > Administration Tools > Computer Management. The Computer Management window opens.
Click System Tools > Local Users and Groups > Groups. The list of groups opens.
Double-click the Hyper-V Administrators group. The Hyper-V Administrators Properties window opens.
Click Add. The Select Users or Groups window opens.
In the Enter the object names to select field, enter the user account name to whom you want to assign permissions, and then click OK.
Click Apply, and then click OK.

After doing these steps I just had to restart the machine. & voila it worked. 🐱👤🐱👤

Why doesn't crc setup not work for you? Can you provide debug information so this can be fixed as this should be happening automated.

I got this error, restarted as it said to do, then ran crc setup again , and it worked.

I get the below error for hyper V, not able to enable it, could you suggest ?
C:\Program Files\Red Hat OpenShift Local>crc start
INFO Checking if running in a shell with administrator rights
INFO Checking Windows release
INFO Checking Windows edition
INFO Checking if Hyper-V is installed and operational
WARN Preflight checks failed during crc start, please try to run crc setup first in case you haven't done so yet
Hyper-V management service not available
C:\Program Files\Red Hat OpenShift Local>

@harpritsinghsokhi If that still issue for you, please create a new issue instead of putting comment to a close one.


Minimal dependency versions

Description

Looking at sigstore-rs's Cargo.toml today, most of the dependencies use highly specific version numbers. As someone who uses sigstore-rs downstream, this leaves my application in a bit of a bind. While it's not an immediate issue, I fear that in the future we will depend on another crate that restricts the use to certain versions, resulting in a failure to compile.
It would be nice to see crate versions be reevaluated before 1.0.
Jon Gjengset sums this problem up well in this paragraph of Rust for Rustaceans, a book I will quote here in exchange for praising it and recommending everyone that reads this issue purchase their own copy and subscribe to his Youtube channel (please don't sue me Jon)
First, consider the case where you add a dependency on hugs = "1.7.3",
the latest published version. Now imagine that a developer somewhere
depends on your crate, but they also depend on some other crate, foo, that
itself depends on hugs. Further imagine that the author of foo is really careful
about their MSRV policy, so they depend on hugs = "1, <1.6". Here, you’ll run
into trouble. When Cargo sees hugs = "1.7.3", it considers only versions >=1.7.
But then it sees that foo’s dependency on hugs requires <1.6, so it gives up and
reports that there is no version of hugs compatible with all the requirements.

I'm totally fine with this change, we should not be specific to the patch level unless there's a specific reason (and document that reason with a comment)

This has been solved starting from version 0.10.0


Docs Join the Community documentation

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


epoch date picker, react-datepicker and types

GitHub Issue
New feature to add a date/time epoch friendly date picker field for form builder.
Changes
Custom field component that wraps react-datepicker
Packages Added
react-datepicker @types/react-date-picker
Checks
Before making your PR, please check the following:

[X] Critical lint errors are resolved
[X] App runs locally
[X] App builds locally (run the build command for any impacted package and check for any errors before the PR)


@attributes strips dash from aria-hidden

_components/sprite-icon.webc
<svg @attributes><use :href="`#${name}-icon`"></svg>

some template:
<sprite-icon name="print" aria-hidden="true" be-bop="aluba"></sprite-icon>

output:
<svg name="print" ariahidden="true" bebop="aluba"><use href="#print-icon"></use></svg>

Running into this too, with aria-current.

Oh no, I keep running into it. Is there a workaround? Is this something I could figure out how to patch?


Add options to deployed VMs

Please consider the following user story for automation:
I know that most, if not all, labs include a dual-homed VM to run the Scenario.ps1 commands from - whether the DC, Windows 10, or other.  On this dual-homed VM, I want to configure a static MAC address on the vNIC connected to the external vSwitch.  This would allow me to create a DHCP reservation outside of the MSLabs environment that will ensure that the external interface always gets the same IP.  This will allow me to RDP directly to the dual-homed VM from my lab's launch pad rather than jumping to the Hyper-V host and connecting to the VM.
This story also requires that RDP and ICMPv4 requests are enabled on the dual-homed VM.  I am accomplishing this on the cluster nodes using the CustomPowerShellCommands option:
1..4 | ForEach-Object { $LABConfig.VMs += @{ VMName = "AzSHCI$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI20H2_G2.vhdx' ; HDDNumber = 10 ; HDDSize = 10TB ; MemoryStartupBytes = 1GB; VMProcessorCount = "Max" ; CustomPowerShellCommands = "Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name 'fDenyTSConnections' -value 0","Enable-NetFirewallRule -DisplayGroup 'Remote Desktop'","New-NetFirewallRule -DisplayName 'Allow inbound ICMPv4' -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow" } }

@machv we should have some conversation on this. bwt. it would make sense to do it only for management machine. You dont want to rdp into azshci hosts, or do you? I could imagine parameter DualHome=$True; DualHomeCustomMacAddress=xxxxxxxxxx; ... Ideas? For RDP I think we can add it the same way we do winrm=$true... so EnableRDP=$True ?)

@jaromirk - I'd be looking at RDP and ICMP response on the management VM only.  I can always add anything I want to the azshci hosts via your CustomPowerShellOptions option.
Where would these parameters be placed since the DC creation is not part of LabDeploy.ps1?  I would suggest that the DC be the management VM.  The management VM would always be created for all labs via LabDeploy.ps1 instead of using the DC.  I think the preference would be for the management VM getting deployed in LabDeploy.ps1 and be Windows 10/11.
Those parameters sound reasonable.  Some other ideas:
MgmtVmDualHome = $True
MgmtVmExternalVnicStaticMACAddress = xxxxxxxxxx
MgmtVmEnableRDP = $True
MgmtVmEnableIcmpResponse = $True
Thoughts?

Can you also add optional Name? It's more or less cosmetic change. I never used it in real world... but it would help us identify network adapter from inside of the host in case we would need it later https://github.com/microsoft/MSLab/blob/master/Scripts/3_Deploy.ps1#L1170

@machv @cloudmadlab folks, how's the status? 🙂. Is PR from Vladimír OK?

@machv @jaromirk - Please accept my apologies for the long delay in confirming the new functionality in the PR.  I validated a few different scenarios, and I think we're good to go.  Thanks so much and excellent work!
I guess the only other item is to enable RDP and ICMPv4 automatically during the deployment of the management VM.  I am fine with this being the default behavior or if you guys prefer to make it a parameter.
I also liked @jaromirk's idea about being able to name the virtual adapter, so they are easily identifiable in the OS.  In fact, if the same name could be applied to the adapter name at both the virtual hardware and OS layers, that would be ideal.  (e.g. Management1, Internet, etc.).

Great, thank you for the info. I will add the option to specify the adapter name as optional parameter.

And the RDP/ICMP?  Or will you enable on the management VM by default?

Hi this is an interesting PR. Thank you.
As the title say add options to deployed VMs I could imagine some more ideas in addition to the RDP / WinRM / IPv4 / IPv6 ICMP in. Is it okay to add / discuss them here or one PR per VM option that come into my mind ?
"The management VM would always be created"
I like the idea to (optionally) create a management VM during the LabCreation.
from a licensing standpoint I would not create W10/W11 for management but Windows Server 2022 LTSC (or Azure Edition).
Why?

If the VM is Win10/Win11 you may not access it without VDA licensing except you have M365 or Wxx licensing plans via CSP or sorts.
Windows Server VM is always licensed through the Datacenter of Azure Stack HCI nodes.
Windows Server VM does inherit the activation via Hyper-V from the Azure Stack HCI nodes (since 21H2).

The GUI tools (RSAT) are no longer under development so there is no gap between W11 or W2022 or later.
Idea: The Management VM should include

all RSAT Tools, Server Manager, esp. Bitlocker Management for DSAC integration
Windows Admin Center in the latest version
winget (not yet officially supported but is possible)
PowerShell 7.x release

To manage Azure Stack HCI + VMs + Clustering etc. This is how I would do this in production.

Hey @Karl-WE, what you can do is to use DSC! It's by default installed on DC and here is an example of labconfig. In zip file you will find example dsc configuration that is then applied to VMs when it boots... https://github.com/microsoft/MSLab/tree/master/Scenarios/LAPS on Nano

Hi @jaromirk Jaromir I have browsed your repo and seen it. It is so helpful. What do you think about my question on VM options also the Management VM? Saw that some of the scenarios already include WAC.

I think we can add RDP and Ping options (the same way we do WinRM=$True). I would not add much thought, because idea of this project was to rapidly provide vanilla environment to be able to demonstrate all steps that needs to be performed to make something running. If you need production-like looking environment, there are another excellent projects like AutomatedLab


Dutch language file corrupt

Plugin version
4.13.2
WooCommerce version
6.8.2
WordPress version
6.0.1
PHP version
7.4
What went wrong?
Dutch language no longer works good since this morning’s language update.
If you put back the 4.13.2 .mo and .po file in wp-content/languages/plugins it works again, if you update the language file in wp-admin/update-core.php its corrupt again.
Reproduction steps

admin/update-core.php
Click on update language
See Dutch language is corrupt in wp-admin/admin.php?page=wcmp_settings

Relevant log output
No response
Additional context
https://snipboard.io/RAtWBy.jpg

:tada: This issue has been resolved in version 4.13.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

Solved in version 4.13.3


Expose forceLayout in EpoxySwiftUIHostingView

Change summary
Expose forceLayout in EpoxySwiftUIHostingView
How was it tested?
How did you verify that this change accomplished what you expected? Add more detail as needed.

[ ] Wrote automated tests
[x] Built and ran on the iOS simulator
[ ] Built and ran on a device

Pull request checklist
All items in this checklist must be completed before a pull request will be reviewed.

[x] Risky changes have been put behind a feature flag, e.g. CollectionViewConfiguration
[x] Added a CHANGELOG.md entry in the "Unreleased" section for any library changes

Hi @brynbodayle , could you help to merge this PR? Thanks.


[Cherry-Pick] s3 storage initializer: only set environment variables if variables are set in storage secret json

This is cherry-pick of [pr-3259]https://github.com/kserve/kserve/pull/3259

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Type of changes
Please delete options that are not relevant.

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

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[X] Test A

Test Step:

install opendatahub operator and kserve
The detail guide is here: https://docs.google.com/document/d/1pf0x1geayFr-06lAQKr96ynVsnOCcpgmAfbgoHgg8AI/edit

Scale down odh operator pod
oc scale deploy/opendatahub-operator-controller-manager -n openshift-operators --replicas=0

Update storage initializer image and restart kserve controler
oc edit cm inferenceservice-config -o yaml -n opendatahub
....
 storageInitializer: |-
    {
        "image" : "quay.io/jooholee/kserve-storage-initializer:ssl-verify",
...

oc delete pod -l control-plane=kserve-controller-manager --force

deploy test isvc(model) in aws https s3 (I used QE team s3 @bdattoma)

Check point
Check the log of init-container "storage-initializer". If the log looks like the following, it works fine
oc logs deploy/caikit-example-isvc-predictor-00001-deployment  -c storage-initializer
INFO:root:Initializing, args: src_uri [s3://modelmesh-example-models/llm/models] dest_path[ [/mnt/models]
INFO:root:Copying contents of s3://modelmesh-example-models/llm/models to local
INFO:botocore.credentials:Found credentials in environment variables.
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/artifacts/config.json to /mnt/models/flan-t5-small-caikit/artifacts/config.json
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/artifacts/generation_config.json to /mnt/models/flan-t5-small-caikit/artifacts/generation_config.json
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/artifacts/pytorch_model.bin to /mnt/models/flan-t5-small-caikit/artifacts/pytorch_model.bin
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/artifacts/special_tokens_map.json to /mnt/models/flan-t5-small-caikit/artifacts/special_tokens_map.json
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/artifacts/spiece.model to /mnt/models/flan-t5-small-caikit/artifacts/spiece.model
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/artifacts/tokenizer.json to /mnt/models/flan-t5-small-caikit/artifacts/tokenizer.json
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/artifacts/tokenizer_config.json to /mnt/models/flan-t5-small-caikit/artifacts/tokenizer_config.json
INFO:root:Downloaded object llm/models/flan-t5-small-caikit/config.yml to /mnt/models/flan-t5-small-caikit/config.yml
INFO:root:Successfully copied s3://modelmesh-example-models/llm/models to /mnt/models

Logs

Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[ ] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[ ] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

please do not merge this until everything is ready

another pr will be sent soon


Unused import in nightly rust

Describe the bug

With this pr been merged to nightly rust: https://github.com/rust-lang/rust/pull/117772
The tracking for unused import has been improved, resulting numerous compiler warnings when building arrow-rs with nightly rust.
To Reproduce

rustup default nightly
cargo check

Expected behavior

Additional context

Maybe it should be a feature request not bug...

Hi, @tustvold . Following the above method.  I have reproduced the issue on my machine, and there are  over 40 warnings. I think i can submit a pull request to clean up these unused import ?

I believe this is already being worked on in https://github.com/apache/arrow-rs/pull/5477

label_issue.py automatically added labels {'parquet'} from #5477

label_issue.py automatically added labels {'arrow'} from #5477

label_issue.py automatically added labels {'arrow-flight'} from #5477

label_issue.py automatically added labels {'parquet-derive'} from #5477


update autorest.csharp dependency to 2.3.82

Fixes #1207
Changes:

Update<EMAIL_ADDRESS>dependency in Swagger/package.json to 2.3.82

Notes:

Latest generated code had no differences from currently checked in code, hence this PR only contains the package.json and package-lock.json.

Pull Request Test Coverage Report for Build 45724

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

Totals

Change from base Build 45174:
0.0%

Covered Lines:
5500

Relevant Lines:
9858

💛  - Coveralls


Wildcard import from express errors out

from shiny.express import *

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/cpsievert/github/py-shiny/shiny/express/__init__.py", line 46, in __getattr__
    return _get_current_session().input  # pyright: ignore
AttributeError: 'NoneType' object has no attribute 'input'

I'm not able to reproduce this. Here's a screenshot:

When it does the UI rendering pass, get_current_session() should return a MockSession object. For example, with this app:
from shiny.express import *

print(session)
print(input)
"Hello"

it prints the following to the console:
<shiny.express._mock_session.MockSession object at 0x102010f90>
<shiny.session._session.Inputs object at 0x1020110d0>
INFO:     Started server process [95498]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     <IP_ADDRESS>:55016 - "GET / HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:55019 - "GET /?vscodeBrowserReqId=1706155679039 HTTP/1.1" 200 OK
INFO:     ('<IP_ADDRESS>', 55022) - "WebSocket /websocket/" [accepted]
INFO:     connection open
<shiny.session._session.Session object at 0x102174550>
<shiny.session._session.Inputs object at 0x10069f8d0>

Update: I am able to reproduce this by running it at the console.
>>> from shiny.express import *

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/winston/Projects/py-shiny/shiny/express/__init__.py", line 46, in __getattr__
    return _get_current_session().input  # pyright: ignore
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'input'

>>> from shiny.express import input
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'input' from 'shiny.express' (/Users/winston/Projects/py-shiny/shiny/express/__init__.py)


Validate mappings

Currently there is no validation of mappings. This means that mappings for objects or fields could be missing or have incorrect names compared with the schema. Doobie object mappings also require that there is at least one field or attribute which is marked as a "key" for an object (ie. grouping rows on that field/attribute will collect all the rows relevant to a given object together). If a key isn't defined then currently subobjects will silently vanish. Any of the above will result in hard to diagnose runtime errors.
Some simple consistency checks and validation checks between the mapping and the schema should eliminate most of the problems.
It would also be nice to be able to validate table and column names against the DB schema, but it's not so obvious how to approach that.

Some progress in #84, #89 and #107. We should open fresh issues for specific improvements (eg. #69).


Enumerator is defined as generic but can't be built

::Enumerator is defined as a T::Generic, so it requires parameterization; one cannot do
sig { returns(Enumerator) }

However, the ::Enumerator does not have a self.[](type) method, and it does not have a T::Enumerator sibling.
Most other generics from the stdlib have a T::* sibling to allow defining their type. Enumerator probably would need one too (it feels kind of alone right now).

This was fixed in #915


Add CocoaPods support?

Is there a plan to add CocoaPods support for trust-keystore？

Sorry,I used to pod like "pod 'trust-keystore'"
My bad, it should be "pod 'TrustKeystore'"
Adding instructions will be better at readme
Thanks


Wffh 234

Some updates are to make rest service endpoint work, some are to make the value set loading at all work

hmm, github seems to have lost some of my comments,
but nothing jumped out at me in a first-pass review.
adding myself back to re-review.