detect-secrets not scanning files in nested directories

I'm submitting a ...

[x] bug report
[ ] feature request

What is the current behavior?

I'm using detect-secrets 1.5.0, from a repo_directory initialised with git. Inside this repository there is a nested folder named inner, with its own baseline file and some test files with secrets to be detected, all files tracked by git.
When I run  detect-secrets scan inner/  it successfully updates the baseline in the root directory. If I specify the baseline inside inner directory, it is updated too.
When  I cd into inner directory and run detect-secrets scan, then no secrets on the files are not detected and the baseline only updates the generated_at field.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

Create an empty directory (temporary_dir)
Initialize git
Create 2 files containing secrets (eg. secrets.properties with password=hunter123)
Add a baseline file (default one)
Create a nested directory (eg inner)
Copy the created files into nested directory
Run git add . to track the files with git.
Run detect-secrets scan inner/ , it will show a baseline output with the results containing secrets detection.
cd into nested directory. Run detect-secrets scan. The secrets baseline is not updated and result is empty.

What is the expected behavior?
 detect-secrets scan should detect secrets on the directory it's being executed.

What is the motivation / use case for changing the behavior?

It's a use case for scanning on specific folders without need to specify the path at root level.

Please tell us about your environment:

detect-secrets Version: 1.5.0
Python Version: 3.11
OS Version: macOS Sonoma 14.6
File type (if applicable): .properties, ,yaml

Hi @Darguelles, thank you for opening this issue 😄 There's a PR related to this issue (https://github.com/Yelp/detect-secrets/pull/774) which is in a semi-abandoned state. I'd encourage you to pick it up and open a PR yourself so we can merge it to master


In version 1.66.1, Check for Updates gets error: Access is denied to create unins000.exe in C:\Users<username>\AppData\LOcal\Programs\Microsoft VS Code

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.66.1
OS Version: Windows 10

Steps to Reproduce:

Select "Check for Updates"
See error: Access is denied to create unins000.exe in C:\Users<username>\AppData\LOcal\Programs\Microsoft VS Code

When click ignor button，Setup.exe still promt user that some files cannot be created and the installation cannot continue.

Found a temporary solution: remove the whole VS Code installation directory, and reinstall it.
Conside this issue relate with recently security change.

Might just be a /duplicate #47841, unrelated to the recent security change. Glad to know reinstalling it fixed it for you.

Had the same issue, followed @ershiwo 's advice and that worked. Does anyone know what the root cause is?

Same issue here, VS Code is installed in AppData, allowing full control for users changes nothing.
Running VSCode setup gave me the same error, installing it from winget fixed the issue.

Go to VScode and turn on the 'Setting Sync'  and go to file location C:\Users\AppData\LOcal\Programs\Microsoft VS Code and double click on the unis000.exe file to and following to uninstall and reinstall on the VScode website. Hope you're fixed, no problem your setting and data file will not happen.

Go to VScode and turn on the 'Setting Sync' and go to file location C:\Users\AppData\LOcal\Programs\Microsoft VS Code and double click on the unis000.exe file and following to uninstall and reinstall on the VScode website. Hope you're fixed, no problem your setting and data file will not happen.

Kindly asking, why/how does the setting sync feature/option, impact the filesystem permission errors this issue is related to?

Go to VScode and turn on the 'Setting Sync' and go to file location C:\Users\AppData\LOcal\Programs\Microsoft VS Code and double click on the unis000.exe file and following to uninstall and reinstall on the VScode website. Hope you're fixed, no problem your setting and data file will not happen.

Kindly asking, why/how does the setting sync feature/option, impact the filesystem permission errors this issue is related to?

It's nothing but it's only an operation to avoid losing the plugin you're installed.

Go to VScode and turn on the 'Setting Sync' and go to file location C:\Users\AppData\LOcal\Programs\Microsoft VS Code and double click on the unis000.exe file and following to uninstall and reinstall on the VScode website. Hope you're fixed, no problem your setting and data file will not happen.

Kindly asking, why/how does the setting sync feature/option, impact the filesystem permission errors this issue is related to?

I don't think it's related to the issue, it's just to make sure you don't lose your settings when you reinstall

Had the same issue, followed @ershiwo 's advice and that worked. Does anyone know what the root cause is?

I found the old directory ACLs are not as same as the reinstalled one. Maybe someone could verify it.


Deu esses erros, eu não sei oque to fazendo eu estava seguindo um tutorial no youtube e o do cara não deu esses erros

error: mingw32: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
error: failed to update mingw32 (invalid or corrupted database (PGP signature))
downloading mingw64.db...
downloading mingw64.db.sig...
error: mingw64: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
error: failed to update mingw64 (invalid or corrupted database (PGP signature))
downloading msys.db...
downloading msys.db.sig...
error: msys: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
error: failed to update msys (invalid or corrupted database (PGP signature))
error: failed to synchronize all databases
error: mingw32: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
error: mingw64: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
error: msys: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
checking dependencies...
Packages (2) rebase-4.4.4-1  dash-<IP_ADDRESS>-1
Total Removed Size:  1.12 MiB
:: Do you want to remove these packages? [Y/n]
:: Processing package changes...
removing rebase...
removing dash...
error: mingw32: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
error: mingw64: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown
error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely
error: msys: key "4A6129F4E4

Please complete an issue report as we have no idea or no information was provided on what you were doing when you received this error?
https://github.com/microsoft/vcpkg/issues/new?assignees=&labels=port+bug&template=report-package-build-failure.md&title=[<port+name>]+build+failure


adds org as caption to records and drafts

I think this should be used across all the pages that are the first page from the top nav

Note - what should it show for admins?


feat: Add support for dual-stack IP addresses - IPv4 + IPv6.

We need to create multiple forwarding rules -
one for each (ip version address, port) combination - all pointing to
the same proxies:

ipv4 addr + http/80 - pointing to the http proxy
ipv4 addr + https/443 - pointing to the https proxy
ipv6 addr + http/80 - pointing to the http proxy
ipv6 addr + https/443 - pointing to the https proxy

Fixes #112.
Signed-off-by: Kunal Gangakhedkar<EMAIL_ADDRESS>

@morgante can you please help with what's failing in the checks?
I cannot see the lint failures - no permissions.

@kunal-g Looks like the issue is based on #117

@kunal-g Looks like the issue is based on #117

Cool, so no action-items for me?

@kunal-g Looks like the issue is based on #117

There is one more fix needed - please check comment https://github.com/terraform-google-modules/terraform-google-lb-http/pull/99#issuecomment-681809565

@morgante any updates on this PR?

@kunal-g Please get the tests passing.
Linter issues:
Checking submodule's files generation
diff -r '--exclude=.terraform' '--exclude=.kitchen' '--exclude=.git' /workspace/README.md /tmp/tmp.RigFUGhxSB/workspace/README.md
74c74
<       iap_config = {
---
>       iap_config {
Error: submodule's files generation has not been run, please run the
'make build' command and commit changes
/usr/local/bin/task_helper_functions.sh: line 30: DELETE_AT_EXIT: readonly variable
Checking for documentation generation
Checking for trailing whitespace
Checking for missing newline at end of file
Running shellcheck
Checking file headers
Running flake8
Running terraform fmt
Running terraform validate
terraform_validate .
Success! The configuration is valid.

terraform_validate ./examples/https-gke
Success! The configuration is valid.

terraform_validate ./examples/https-gke/gke-node-port
Success! The configuration is valid.

terraform_validate ./examples/https-redirect

Error: Invalid value for module argument

  on main.tf line 104, in module "gce-lb-http":
 104:   backends = {
 105:     default = {
 106:       description                     = null
 107:       protocol                        = "HTTP"
 108:       port                            = 80
 109:       port_name                       = "http"
 110:       timeout_sec                     = 10
 111:       connection_draining_timeout_sec = null
 112:       enable_cdn                      = false
 113:       session_affinity                = null
 114:       affinity_cookie_ttl_sec         = null
 116:       health_check = {
 117:         check_interval_sec  = null
 118:         timeout_sec         = null
 119:         healthy_threshold   = null
 120:         unhealthy_threshold = null
 121:         request_path        = "/"
 122:         port                = 80
 123:         host                = null
 124:         logging             = null
 125:       }
 127:       log_config = {
 128:         enable      = false
 129:         sample_rate = null
 130:       }
 132:       groups = [
 133:         {
 134:           group                        = module.mig.instance_group
 135:           balancing_mode               = null
 136:           capacity_scaler              = null
 137:           description                  = null
 138:           max_connections              = null
 139:           max_connections_per_instance = null
 140:           max_connections_per_endpoint = null
 141:           max_rate                     = null
 142:           max_rate_per_instance        = null
 143:           max_rate_per_endpoint        = null
 144:           max_utilization              = null
 145:         }
 146:       ]
 147:     }
 148:   }

The given value is not suitable for child module variable "backends" defined
at ../../variables.tf:75,1-20: element "default": attribute "iap_config" is
required.

terraform_validate ./examples/mig-nat-http-lb
Success! The configuration is valid.

terraform_validate ./examples/multi-backend-multi-mig-bucket-https-lb
Success! The configuration is valid.

terraform_validate ./examples/multi-mig-http-lb
Success! The configuration is valid.

terraform_validate ./examples/multiple-certs
Success! The configuration is valid.

terraform_validate ./examples/shared-vpc
Success! The configuration is valid.

terraform_validate ./modules/dynamic_backends
Success! The configuration is valid.

terraform_validate ./test/fixtures/https-redirect

Error: Invalid value for module argument

  on ../../../examples/https-redirect/main.tf line 104, in module "gce-lb-http":
 104:   backends = {
 105:     default = {
 106:       description                     = null
 107:       protocol                        = "HTTP"
 108:       port                            = 80
 109:       port_name                       = "http"
 110:       timeout_sec                     = 10
 111:       connection_draining_timeout_sec = null
 112:       enable_cdn                      = false
 113:       session_affinity                = null
 114:       affinity_cookie_ttl_sec         = null
 116:       health_check = {
 117:         check_interval_sec  = null
 118:         timeout_sec         = null
 119:         healthy_threshold   = null
 120:         unhealthy_threshold = null
 121:         request_path        = "/"
 122:         port                = 80
 123:         host                = null
 124:         logging             = null
 125:       }
 127:       log_config = {
 128:         enable      = false
 129:         sample_rate = null
 130:       }
 132:       groups = [
 133:         {
 134:           group                        = module.mig.instance_group
 135:           balancing_mode               = null
 136:           capacity_scaler              = null
 137:           description                  = null
 138:           max_connections              = null
 139:           max_connections_per_instance = null
 140:           max_connections_per_endpoint = null
 141:           max_rate                     = null
 142:           max_rate_per_instance        = null
 143:           max_rate_per_endpoint        = null
 144:           max_utilization              = null
 145:         }
 146:       ]
 147:     }
 148:   }

The given value is not suitable for child module variable "backends" defined
at ../../../variables.tf:75,1-20: element "default": attribute "iap_config" is
required.

terraform_validate ./test/fixtures/mig_nat
Success! The configuration is valid.

terraform_validate ./test/fixtures/multi_certs
Success! The configuration is valid.

terraform_validate ./test/fixtures/multi_mig
Success! The configuration is valid.

terraform_validate ./test/setup

Warning: Provider source not supported in Terraform v0.12

  on versions.tf line 20, in terraform:
  20:     google = {
  21:       source  = "hashicorp/google"
  22:       version = ">= 3.32, <4.0.0"
  23:     }

A source was declared for provider google. Terraform v0.12 does not support
the provider source attribute. It will be ignored.

(and one more similar warning elsewhere)

@morgante:
Got some time to look at this after a long time.
Apparently, the missing iap_config fix in examples/https-redirect/main.tf was already committed to master (commit: 0136c65dfceafcd468bfb907551cbebb016204d9)
Now, all the checks are passing :bowtie: - without any additional work on my part 😜 🤘
Please consider this for merging to master and release.

The integration tests failed for some reason - can you please let me know the issue?
I don't have permissions to check the cloud-build logs. 😞

@kunal-g Here's the error:
       Error: Invalid function argument

         on ../../../main.tf line 25, in locals:
         25:   create_ipv6_resources = ((local.ipv6_address != null) && (length(local.ipv6_address) > 0))
           |----------------
           | local.ipv6_address is null

       Invalid value for "value" parameter: argument must not be null.

@kunal-g Here's the error:
       Error: Invalid function argument

         on ../../../main.tf line 25, in locals:
         25:   create_ipv6_resources = ((local.ipv6_address != null) && (length(local.ipv6_address) > 0))
           |----------------
           | local.ipv6_address is null

       Invalid value for "value" parameter: argument must not be null.

Thanks. Let me figure out a way to fix this.
My expectation was that the null check in the combined conditional should have prevented this - must be something I missed in how terraform handles these conditionals.

@morgante can you please share the logs for integration test failures?

@kunal-g Errors look to be related to the centos image version:

       Error: error retrieving image information: googleapi: Error 404: The resource 'projects/centos-cloud/global/images/family/centos-6' was not found, notFound

         on .terraform/modules/example.mig2_template/modules/instance_template/main.tf line 25, in data "google_compute_image" "image_family":
         25: data "google_compute_image" "image_family" {

       Error: error retrieving image information: googleapi: Error 404: The resource 'projects/centos-cloud/global/images/family/centos-6' was not found, notFound

         on .terraform/modules/example.mig3_template/modules/instance_template/main.tf line 25, in data "google_compute_image" "image_family":
         25: data "google_compute_image" "image_family" {

Yeah, even I had to change the image in my examples to centos-8:
https://github.com/kunal-g/google-lb-http-ipv6-examples/blob/main/precreated_ipv6/https-redirect/main.tf#L90
It seems the centos-6 image has be removed from GCP images repo.
Unfortunately, I don't know how to solve this issue. ☹
Let me know if there are any action items for me.

@kunal-g Errors look to be related to the centos image version:

       Error: error retrieving image information: googleapi: Error 404: The resource 'projects/centos-cloud/global/images/family/centos-6' was not found, notFound

         on .terraform/modules/example.mig2_template/modules/instance_template/main.tf line 25, in data "google_compute_image" "image_family":
         25: data "google_compute_image" "image_family" {

       Error: error retrieving image information: googleapi: Error 404: The resource 'projects/centos-cloud/global/images/family/centos-6' was not found, notFound

         on .terraform/modules/example.mig3_template/modules/instance_template/main.tf line 25, in data "google_compute_image" "image_family":
         25: data "google_compute_image" "image_family" {

@kunal-g Could you update the examples/ to use the latest MIG module? ex. https://github.com/terraform-google-modules/terraform-google-lb-http/blob/master/examples/multi-mig-http-lb/mig.tf#L54

@kunal-g Could you update the examples/ to use the latest MIG module? ex. https://github.com/terraform-google-modules/terraform-google-lb-http/blob/master/examples/multi-mig-http-lb/mig.tf#L54

Sure, but as per the docs of latest version, this is a breaking change and requires terraform 0.13. The earlier versions don't seem to carry the default image family update.
Do we need to maintain backwards compatibility with terraform 0.12?
If yes, then we cannot use the new version; but instead, will need to update the examples to explicitly pass the source_image_project and source_image_family values.
Let me know - I'll make the changes accordingly.

@kunal-g Looks like we're making the change here: #148

@kunal-g Looks like we're making the change here: #148
It's fine to drop support for Terraform 0.12 at this point.

OK, great. So, I'll wait for #148 to be merged. After that, let's rerun the tests.
Anything else I need to work on? Any other review comments you want me to address?

@kunal-g Everything else looks good.

@morgante now that #148 is merged, can you please merge this as well - if everything else looks good?

@kunal-g Can you rebase on master? This does look good.

@kunal-g Gentle ping, could you rebase?

@kunal-g Gentle ping, could you rebase?

Hi @morgante sorry, a bit tied up with work - will rebase + push over the weekend.

Thanks for the PR! 🚀
Unfortunately it looks like some of our CI checks failed. See the Contributing Guide for details.

⚠check_terraform
Failed Terraform check. More details below.

Running terraform fmt
Running terraform validate
terraform_validate .
Success!
The configuration is valid.
terraform_validate ./examples/cloudrun
Success!
The configuration is valid.
terraform_validate ./examples/https-gke
Success!
The configuration is valid.
terraform_validate ./examples/https-gke/gke-node-port
Error:
Unsupported block type
 on main.tf line 121, in resource "kubernetes_replication_controller" "nginx":
121:
limits
{
Blocks of type "limits" are not expected here. Did you mean to define argument
"limits"? If so, use the equals sign to assign it a value.
Error:
Unsupported block type
 on main.tf line 126, in resource "kubernetes_replication_controller" "nginx":
126:
requests
{
Blocks of type "requests" are not expected here. Did you mean to define
argument "requests"? If so, use the equals sign to assign it a value.
terraform_validate ./examples/https-redirect
Success!
The configuration is valid.
terraform_validate ./examples/mig-nat-http-lb
Success!
The configuration is valid.
terraform_validate ./examples/multi-backend-multi-mig-bucket-https-lb
Success!
The configuration is valid.
terraform_validate ./examples/multi-mig-http-lb
Success!
The configuration is valid.
terraform_validate ./examples/multiple-certs
Success!
The configuration is valid.
terraform_validate ./examples/shared-vpc
Success!
The configuration is valid.
terraform_validate ./modules/dynamic_backends
Success!
The configuration is valid.
terraform_validate ./modules/serverless_negs
Success!
The configuration is valid.
terraform_validate ./test/fixtures/cloudrun
Success!
The configuration is valid.
terraform_validate ./test/fixtures/https-redirect
Success!
The configuration is valid.
terraform_validate ./test/fixtures/mig_nat
Success!
The configuration is valid.
terraform_validate ./test/fixtures/multi_certs
Success!
The configuration is valid.
terraform_validate ./test/fixtures/multi_mig
Success!
The configuration is valid.
terraform_validate ./test/setup
Success!
The configuration is valid.

@morgante I have rebased to latest master and pushed - just as you asked.
There is no change in the code - but, because of the rebase, all the older commits are showing up as new.
Please have a look and let me know if anything needs to be fixed further.

@kunal-g Looks good, thanks for the patience + rebase.

@kunal-g Looks good, thanks for the patience + rebase.

Glad I could help 😄


Don't create large file every time (for testing)

Only create large file (for test) if it doesn't exists, but don't track it in git.

Removed those tests. They are already done by node itself, which we depend on (via graceful-fs)


bug: modal entrycomponent - Error: Cannot find module './undefined.entry.js'

Bug Report
Ionic version:

[x]<EMAIL_ADDRESS>Current behavior:
If you create a modal and put it inside the entryComponents and inside is <ion-progress-bar> it will show you an error if you want to open the modal: Error: Cannot find module './undefined.entry.js'. The modal will not be opened. If I remove <ion-progress-bar> everything is working again.

Expected behavior:
The modal should work. If I remove  <ion-progress-bar> it will work. There are still ionic elements in it like ion-button, ion-header and ion-footer - working without problems.

Steps to reproduce / Related code:
I created a repo here: https://github.com/paulstelzer/test-ionic

Tap on "Show Modal". You get the error
Open test-modal.component.html and comment out the first line
It will work without <ion-progress-bar>

Wrong code

So what was the cause/solution?

Show your code. In my case I added mode="somestring" and so this happened :D

I literally figured it out a minute ago! Yeah [mode] was the culprit indeed ;)


Is there a support for CenterCrop like in PyTorch transforms

Hi @aleju , thank you for this great contribution. I really like using this library when I train my deep learning models in Keras.
Recently, I was wondering if this library supports the CenterCrop like in TorchVision transforms?
In the docs, I only see CropAndPad which needs either pixel values or percentage to crop. But, a feature like center crop is really helpful when using many deep learning pipelines.
Can this be added to the existing set if transformations here?
Please let us know! Thanks.

CenterCrop itself is not yet available - still have to add an augmenter for that.
But you should be able to emulate its behaviour with the existing ones.
Here is an example:
import imgaug as ia
from imgaug import augmenters as iaa
from imgaug import parameters as iap

def CenterCrop(height, width):
    crop = iaa.CropToFixedSize(height=height, width=width)
    crop.position = (iap.Deterministic(0.5), iap.Deterministic(0.5))
    pad = iaa.PadToFixedSize(height=height, width=width, pad_mode=ia.ALL, pad_cval=(0, 255))
    pad.position = (iap.Deterministic(0.5), iap.Deterministic(0.5))
    return iaa.Sequential([crop, pad])

seq = iaa.Sequential([CenterCrop(height=224, width=224), ...])

Note that this also pads to the expected size (which I think pytorch's CenterCrop does) and uses several different padding methods (while I think that pytorch's CenterCrop only uses zero-padding).


MB-8517 additional address missing front end validation

Description
Add the secondary pickup address and secondary delivery address to a new validation schema created.
The new validation schema checks if the other fields in an address are filled out, and marks the current field as required if that is the case.
Reviewer Notes
I opted not to make the fields on the additional addresses required, because that would prevent the user from progressing if they didn't have anything filled out in them.
As a result, I also didn't switch the existing address fields to use this sort of validation since it would allow the user to progress even if nothing is filled out.
Is when the required show up ok?
It only shows up when the user tabs (or clicks) into the field and tabs (or clicks) out of the field without typing (or selecting) anything.
Are the tests written up ok?
I split the State fields off into their own tests since they are selects and not text fields.
Setup
Add any steps or code to run in this section to help others prepare to run your code:
make client_run
make server_run

Code Review Verification Steps

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change
Adding conditional checks for fields dependent on other fields.
Handling circular dependencies for Yup validation.

Screenshots
If this PR makes visible UI changes, an image of the finished UI can help reviewers and casual
observers understand the context of the changes. A before image is optional and
can be included at the submitter's discretion.
Consider using an animated image to show an entire workflow instead of using multiple images. You may want to use GIPHY CAPTURE for this! 📸
Please frame screenshots to show enough useful context but also highlight the affected regions.

Messages

:book:
:link: MB-8517

  Generated by :no_entry_sign: dangerJS against 60d9483970f3b2cf238645c7f2897f78ed868cd6

Are the tests written up ok?

I forgot to comment on you testing question in my review. I think the way you did it works. Alternatively, since it's a test focused on addresses anyways, you could check if the field name is state, and if so use the selectOptions method, otherwise use the type method.

Are the tests written up ok?

I forgot to comment on your testing question in my review. I think the way you did it works. Alternatively, since it's a test focused on addresses anyways, you could check if the field name is state, and if so use the selectOptions method, otherwise use the type method. I don't really have a strong preference either way. Another option would be to add a third arg to the table-driven bit to include the type of field (e.g. string vs select), and choose input method based on that.

Ahh those aren't bad options either. I wasn't sure how strict the conventions were with table driven tests on what gets passed. I'd like to see what other people think before I make changes. I'll go ask in the FE channel.

I tested it out and here are a few comments (based on creating a new HHG shipment):

If I click "Yes" for one of the secondary addresses and start filling it out, then the "Next" button is disabled until the full address is filled in, as expected 🎉 But, one weird thing is that if you don't finish filling it out and click "No" to the secondary address (without clearing the partially filled out address), the button stays disabled. I'm not sure if we want to change that behavior or not, like either clearing the fields when "No" is clicked, or telling the isValid to ignore it when "No" is selected (though this might be hard because of doing it through Yup).
This one doesn't really require a change, just noting it. For some reason the second pickup location does mark all the fields (addr 1, city, state, zip) as required as soon as I start typing into any of the ones that trigger the required attr. The second destination doesn't however. This one does it on blur. I'm not really sure why the first one is doing on typing, because the formik form is setup to do it on mount and on blur.

Asked design this question. I think in either case, I'd prefer to keep that out of this PR and write up a new ticket for it.
That is really strange, I wonder what could be causing it to do that.


When the requested host is not found log the remote host.

When the requested host is not found log the remote host.

 You should sign our Contributor License Agreement in order to get your pull request merged.

I'll redo this


Long name for a wallet becomes unreadable

When you choose a long name for your wallet it becomes unreadable unless you rename it again.

A few ideas how to solve this:

We could display the name in both the vertical tab and in the wallet main screen itself, on top of everything else like in the screenshot, allowing longer description like the screenshot suggest.
Restrict the amount of character even more and add a new section in the settings to add a longer description of the wallet.
When the user place the mouse over the tab, display a tooltip with the full name.

Added a tooltip to truncated account tab labels in 97f21394.


Functional tests for LastEdited timestamp in feed

Verification for this issue: https://github.com/NuGet/NuGetGallery/issues/3365

PR: https://github.com/NuGet/NuGetGallery/pull/3398


JIT (via jitdump) symbols not functional when samply installed via cargo install samply, but works from checkout & install

This one's odd -- if I install samply via cargo install samply on macOS, I get no JIT symbols resolved. The jitdump file is being created and has the correct data.
If I clone the samply repo and just cd samply/samply ; cargo install --path ., then everything works correctly. I thought maybe there's something to do with the interception dylib, but the prebuilt version is used even when building from source unless it's explicitly rebuilt. Both macOS 13.4.1 on x64 (stable rust) and and 14.0 Beta (23A5312d) on aarch64 (beta rust).
Maybe some fixes since the last released version?

Yes, a new release is overdue. One of the reasons I haven't made one is because I wanted to resolve the Jitdump timestamp issue first (change the origin to align with the mach_absolute_time origin)... and a few other things.

This should now work in samply 0.12.0.


Rename and document variant selection classes for clarity

See this comment.
Imposes the consistent naming of GraphVariant and ArtifactVariant between classes and exceptions involved in both these phases of selection.
Name of branch is out of date - this is now targeting 8.5.

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

Looks like this will need an update to rebase on top of your changes.  What do you think of the new names and javadoc here though?

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

Did another pass through each file to check for renames of fields and parameters, hopefully got them all this time.

@bot-gradle test and merge

I've triggered a build for you. Click here to see all failures if there's any.

@bot-gradle cancel

I've cancelled the pre-tested commit build.

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

I've triggered a build for you. Click here to see all failures if there's any.

Pre-tested commit build failed. Click here to see all build failures.

@bot-gradle test and merge

I've triggered a build for you. Click here to see all failures if there's any.


chore: update tests and test wasm modules to use new namespace

@mhmd-azeez I did my best to update all the wasm files, but it seems like there might still be some old ones. I also tried to update the tests, but could you please take a look at this when you get a chance?

Fixed! Thanks @mhmd-azeez for catching that cancellation regression!!!


fix(shadow): prevent duplicated shadow deployment at startup

Issue #, if available:
Description of changes:
Add a check for the first shadow doc received since startup. Ignore the deployment if reported section exists and the ARN matches desired ARN. Because the deployment had already been processed and reported.
Why is this change necessary:
Fix duplicated shadow deployment when nucleus restarts.
How was this change tested:
On EC2:

start nucleus
perform shadow deployment from cloud with a broken component
wait until deployment finishes and reported as failed
stop then restart nucleus
previous shadow deployment detected and no duplicated deployment actions

Any additional information or context required to review the change:
Checklist:

[ ] Updated the README if applicable
[ ] Updated or added new unit tests
[ ] Updated or added new integration tests
[ ] Updated or added new end-to-end tests

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Have you manually built and verified the fix since making these larger changes?

Haven't yet. Running through some scenarios right now.

Have you manually built and verified the fix since making these larger changes?

Haven't yet. Running through some scenarios right now.


Relax dock_widget_hookspec to accept callable.

Description
As originally proposed in https://github.com/napari/napari/issues/2114#issuecomment-761620026, and discussed in zulip, this PR would relax the provide_dock_widget hookspec from something that must provide a QWidget class, to something that must provide any callable that returns an instance of a QWidget, or a magicgui Widget. (i.e. Callable[..., Union[QWidget, FunctionGui]]).
This might make it easier for developers to delay expensive imports.  Also, combined with https://github.com/napari/magicgui/pull/117, it would allow someone to use magicgui and @magic_factory entirely on their end (without providing us any "magic_kwargs"), and switch to the provide_dock_widget hookspec.
If we want to (totally up for discussion) we could actually drop the function_widget hookspec for now, and no longer depend on magicgui for now.  Devs can still use magicgui if they want, and we still support it, but we no longer do the widget creation for them.
(this could leave open the provide_function hookspec for more narrow-visioned pipeline-like applications).
@jni, with this PR, and with https://github.com/napari/magicgui/pull/117, I was able to run your affinder PR (https://github.com/jni/affinder/pull/12) by just changing @magicgui to @magic_factory on start_affinder
I have, for now, dropped support for the napari_viewer parameter in the QWidget.__init__.  Very much open to putting it back, but it's harder to support that with a generic callable or MagicFactory (and it doesn't fit the "one way to do it" philosophy).
Type of change

[ ] 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

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

@tlambert03

@jni, with this PR, and with napari/magicgui#117, I was able to run your affinder PR (jni/affinder#12) by just changing @magicgui to @magic_factory on start_affinder

Hmmm, I'm missing something, I'm getting:
  File "/home/jni/projects/napari/napari/__init__.py", line 22, in <module>
    from ._event_loop import gui_qt, run
  File "/home/jni/projects/napari/napari/_event_loop.py", line 2, in <module>
    from ._qt.qt_event_loop import gui_qt, run
  File "/home/jni/projects/napari/napari/_qt/__init__.py", line 41, in <module>
    from .qt_main_window import Window
  File "/home/jni/projects/napari/napari/_qt/qt_main_window.py", line 27, in <module>
    from .. import plugins
  File "/home/jni/projects/napari/napari/plugins/__init__.py", line 178, in <module>
    plugin_manager.hook.napari_experimental_provide_dock_widget.call_historic(
  File "/home/jni/miniconda3/envs/all/lib/python3.8/site-packages/napari_plugin_engine/hooks.py", line 171, in call_historic
    result_callback(result, impl)
  File "/home/jni/projects/napari/napari/plugins/__init__.py", line 85, in register_dock_widget
    name = str(kwargs.get('name', '')) or camel_to_spaces(_cls.__name__)
  File "/home/jni/projects/napari/napari/utils/misc.py", line 255, in camel_to_spaces
    return camel_to_spaces_pattern.sub(r" \1", val)
TypeError: expected string or bytes-like object

I did rebase jni/affinder#12 on top of jni/affinder#13, but I don't think that should have affected anything... :confused:

@tlambert03

@jni, with this PR, and with napari/magicgui#117, I was able to run your affinder PR (jni/affinder#12) by just changing @magicgui to @magic_factory on start_affinder

Hmmm, I'm missing something, I'm getting:
  File "/home/jni/projects/napari/napari/__init__.py", line 22, in <module>
    from ._event_loop import gui_qt, run
  File "/home/jni/projects/napari/napari/_event_loop.py", line 2, in <module>
    from ._qt.qt_event_loop import gui_qt, run
  File "/home/jni/projects/napari/napari/_qt/__init__.py", line 41, in <module>
    from .qt_main_window import Window
  File "/home/jni/projects/napari/napari/_qt/qt_main_window.py", line 27, in <module>
    from .. import plugins
  File "/home/jni/projects/napari/napari/plugins/__init__.py", line 178, in <module>
    plugin_manager.hook.napari_experimental_provide_dock_widget.call_historic(
  File "/home/jni/miniconda3/envs/all/lib/python3.8/site-packages/napari_plugin_engine/hooks.py", line 171, in call_historic
    result_callback(result, impl)
  File "/home/jni/projects/napari/napari/plugins/__init__.py", line 85, in register_dock_widget
    name = str(kwargs.get('name', '')) or camel_to_spaces(_cls.__name__)
  File "/home/jni/projects/napari/napari/utils/misc.py", line 255, in camel_to_spaces
    return camel_to_spaces_pattern.sub(r" \1", val)
TypeError: expected string or bytes-like object

I did rebase jni/affinder#12 on top of jni/affinder#13, but I don't think that should have affected anything... :confused:

(this could leave open the provide_function hookspec for more narrow-visioned pipeline-like applications).

I mean, to me, that's definitely what it's for already?

(this could leave open the provide_function hookspec for more narrow-visioned pipeline-like applications).

I mean, to me, that's definitely what it's for already?

I have, for now, dropped support for the napari_viewer parameter in the QWidget.init. Very much open to putting it back, but it's harder to support that with a generic callable or MagicFactory (and it doesn't fit the "one way to do it" philosophy).

I also don't quite understand this statement...?

I have, for now, dropped support for the napari_viewer parameter in the QWidget.init. Very much open to putting it back, but it's harder to support that with a generic callable or MagicFactory (and it doesn't fit the "one way to do it" philosophy).

I also don't quite understand this statement...?

TypeError: expected string or bytes-like object

Oh I'm sorry, I forgot to push one more thing to that PR, which is to add a __name__ property to MagicFactory.  Will do

TypeError: expected string or bytes-like object

Oh I'm sorry, I forgot to push one more thing to that PR, which is to add a __name__ property to MagicFactory.  Will do

I also don't quite understand this statement...?

Which part? The part about it being harder? Or the part about the there should be one and only one way to do it?

I also don't quite understand this statement...?

Which part? The part about it being harder? Or the part about the there should be one and only one way to do it?

(this could leave open the provide_function hookspec for more narrow-visioned pipeline-like applications).

I mean, to me, that's definitely what it's for already?

I'll open another issue to discuss this. I put some thoughts in your PR but it warrants further discussion.

(this could leave open the provide_function hookspec for more narrow-visioned pipeline-like applications).

I mean, to me, that's definitely what it's for already?

I'll open another issue to discuss this. I put some thoughts in your PR but it warrants further discussion.

Hmmm, I'm missing something, I'm getting:

@jni, I pushed the update to  napari/magicgui#117, if you want to try again

Hmmm, I'm missing something, I'm getting:

@jni, I pushed the update to  napari/magicgui#117, if you want to try again

I also don't quite understand this statement...?

Which part? The part about it being harder? Or the part about the there should be one and only one way to do it?

I added back the napari_viewer bit.  It will still work with QWidget... but it won't work for @magic_factorys  (they have to use the napari.viewer.Viewer annotation)

I also don't quite understand this statement...?

Which part? The part about it being harder? Or the part about the there should be one and only one way to do it?

I added back the napari_viewer bit.  It will still work with QWidget... but it won't work for @magic_factorys  (they have to use the napari.viewer.Viewer annotation)

I'd be fine dropping napari_viewer - the alternative any_name: 'napari.viewer.Viewer' is so easy and has no downsides that just having one way to do things might be better. Doesn't have to be dropped in this PR, but just saying I'd be supportive

I'd be fine dropping napari_viewer - the alternative any_name: 'napari.viewer.Viewer' is so easy and has no downsides that just having one way to do things might be better. Doesn't have to be dropped in this PR, but just saying I'd be supportive

@jni, I pushed the update to napari/magicgui#117, if you want to try again

It works! It friggin works!!! :sob: So beautiful... :smile:

@jni, I pushed the update to napari/magicgui#117, if you want to try again

It works! It friggin works!!! :sob: So beautiful... :smile:


Expo/Vanilla Unification

Related: #1960
I'd like to unify the Ignite boilerplate so it can run with Expo Go and vanilla with the same boilerplate.
This has the following benefits:

No need to pass --expo when you generate a project
Simpler/faster npx ignite-cli new command
Much easier maintenance of the boilerplate
You don't have to choose between Expo and non-Expo anymore

Tasks:

[ ] Update the scripts to have both yarn ios and yarn expo:ios (etc) depending on what you want to run -- running on Expo Go will always be prefixed with yarn expo:*
[ ] Ensure that index.js and App.js load appropriately based on which is run
[ ] Unify any *.expo.* files where appropriate
[ ] Load (based on EXPO=1 or something similar in the scripts) the appropriate configs if they can't be unified
[ ] Let the user know after running new how to run via vanilla vs Expo

FYI, you can detect if something is running in Expo Go at runtime with this:
https://github.com/expo/fyi/blob/main/expo-extension-migration.md#after-1

Hmm.. Expo doesn't love the .expo.* file extensions because they have deprecated it, so it displays a warning like this when starting the project up:

Not sure we want to precede the start commands EXPO_LEGACY_IMPORTS=1 set as they seem to warn against it.
We could just keep both the contents of *.vanilla.js or *.expo.js in the same metro|babel.config.js and just export it according to the Expo execution environment.
Any preference?

Implemented in PR https://github.com/infinitered/ignite/pull/1985


Introduce persona-based docs

What this PR does / why we need it:
We would like to introduce persona-based docs focussing on the already known release notes personas and therefore "cleanup" the structure somewhat:

users (/docs/usage)
operators (/docs/operations)
developers (/docs/development)

Special notes for your reviewer:
cc @n-boshnakov
Release note:
None as ~30 PRs have/will be opened and the message would be the same everywhere (no relevant content changes either) while the only thing that actually changes in the end is the docs page that will have its release note.
/kind/cleanup

Could someone please merge, if the PR is OK?

Thx @axel7born !


Adding downloads refs to troubleshooting

This adds reference to the new experimental web configurations to the troubleshooting page since people upgrading are unlikely to revisit the installation docs.
The upgrade page probably needs some work too but that isn't going to happen in time for 5.2.2 unless there is a blocker.

2nd commit uses text from https://github.com/aleksandra-tarkowska/ome-documentation/commit/75bc809bcbc07b6db95588239ba5591473798cae that Ola missed when moving the content to the main troubleshooting page.

looks good thx


Virtual Areas

It would seem possible to create virtual areas to represent rooms without ESPHome base stations. Observed distances from each base station would localize to a point in the center of the virtual area. A radius or range of distances would define the room.
Is this a planned or available feature?
Person = n
Base station = A, B, C, D, E
Distance = d
dAn = distance between base station (A) and person (n)
dAn1 = distance between base station (A) and person (n) in the desired room, closest to base station (A)
dAn2 = distance between base station (A) and person (n) in the desired room, furthest from the base station (A)
Virtual location = (dAn, dBn, dCn, dDn)
Virtual Area/Room = (dAn1 < dAn <dAn2, dBn1 < dBn < dBn2, dCn1 < dCn < dCn2, dDn1 < dDn < dDn2)

Yes, this is definitely planned once we have trilateration working. At this stage I'm expecting to generate x/y(maybe z) co-ords that map to the floorplan.
I haven't quite settled on how we'd translate that to rooms directly, i think we'd define polygons for each room, and some magical numpy or pandas library would take that and tell you which room any given set of co-ords falls in.

I was here to suggest this very thing.  (Pats self on back for searching existing issues first)
I know the more ambitious goal of Bermuda is to do fancy math so solve for the entire set/general case, but based on my limited measurements from proxies in my house, it looks like virtual areas can also be solved using more brutish configuration. Especially when multiple floors are concerned.
Contrived example:
flowchart LR
    lr((LivingRoom)) --- Hallway --- dr((DiningRoom))

If I had a proxy in both LivingRoom and DiningRoom, then there would be some threshold combination of values which indicated hallway vs either room. Instead of polygon definitions I'd be happy enough with defining a set of spherical distances from each proxy with a "thickness"/error band for each or even just a Jinja blob to set an area based on arbitrary inputs.
In my actual use case with a multi-story house, when I walk from my office to the kitchen I walk over the kids playroom in the basement. It's impossible* to walk through the basement playroom in between the office and kitchen, but an intersection of officeproxy and kitchenproxy and playroomproxy is the dining room.
*Could overcomplicate this further by enforcing some state transition validations.


Add ABBYY FineReader in Home

What feature?
ABBYY FineReader is an advanced OCR and PDF conversion tool. It uses AI and machine learning algorithms to accurately convert scanned PDFs and images into editable formats, including Word, Excel, and searchable PDFs.
Add screenshots
Add screenshots
Code of Conduct

[x] I agree to follow this project's Code of Conduct

Hey, I would like to work on  this issue. Can you please assign it to me under GSSOC'23

@JasonDsouza212 please assign me

@JasonDsouza212  I would like to work on this issue plz assign me!!


Question about usage with SLAM

Hi ! Thanks for your great work~
I've just read your paper and have some question about it.
The Paper directly use the pose estimated by the SLAM algorithm and transform the pointcloud sequence to current pose before calculate the residual image, right? So the pose should be accurate, or the residual image will be wrong.  Am i right?
If what I said above is right, when moving object causes large drift in odometry, your algorithm might not improve the odometry accuracy since the moving object could not be identified accurately.

Thanks for your reply in advance!!

Hey @mysterybc, thanks for following our work. Yes, you are right. If the odometry is not accurate, it will influence the MOS results. We also showed one ablation study on the noisy poses in Figure 4. You may see that the MOS performance will drop until the residual image is too noisy which doesn't appear during training and will be ignored.
However, during the real application, the proposed method should be done together with the pose estimation which means we can estimate the pose and conduct MOS iteratively. This may help both pose estimation and MOS and may not cause large drift in local pose estimation.

Thanks！
And one more question, if I estimate pose and conduct MOS iteratively, is it able to achieve real time？ I think iterative 2-3 times will take most Lidar odometry more than 100ms, which means it can't reach 10Hz performance. I didn't take MOS in to account since I don't konw its't operating time.

Yes, runtime could be a problem. The best MOS performance model runs at around 20Hz. There are also faster models, but the MOS performance is worse. I never try the idea before. It's an interesting idea and worth trying.

Thank you for the reply @Chen-Xieyuanli . I have the point cloud data in the form of bin files. How can i get poses corresponding to those bin files?

Yes, runtime could be a problem. The best MOS performance model runs at around 20Hz. There are also faster models, but the MOS performance is worse. I never try the idea before. It's an interesting idea and worth trying.

I recently got caught in some projects and forget to comment your reply = = I'll try when I finish these project, Thanks a lot

hey @Chen-Xieyuanli , i am getting this runtime error while running the visualizer in SuMa, OpenGL Context Version 3.3 core profile GLEW initialized. OpenGL context version: 3.3 OpenGL vendor string : VMware, Inc. OpenGL renderer string: llvmpipe (LLVM 9.0, 256 bits) Segmentation fault (core dumped)

Hi, if you haven't solved this problem and still want to use Lidar SLAM to estimate poses, I suggest you could try LOAM since it's easy to implement and its performance is satisfied.

Thank you @mysterybc

It means that you need to first estimate the position of the SLAM system, and then remove the dynamic environment？
Thanks in Advance


Bot goes offline and online constantly when you try and PM it

Hey, think I debugged this issue down to the root cause.  Right now it looks like ttapi is only sending a presence update when it receives a heartbeat message from the server or when there is no session.  From inspecting the web traffic in Chrome we should actually be sending the presence update every 10 seconds (or whatever interval the server is returning).  I see right now by inspecting the websocket from Chrome that I am normally sending a presence update every 10 seconds as seen below:

I see in the logrus output when I turn on debug logs that every time ttapi sends out a presence update that a message is returned with an interval that ttapi is then not using:
DEBU[0135] < {"api":"presence.update","client":"web","clientid":"dunno_if_this_is_secret","msgid":20,"status":"available","userauth":"edited_this_out","userid":"edited_this_out_too"}
DEBU[0135] > ~m~72~m~{"msgid": 20, "now":<PHONE_NUMBER>.079107, "success": true, "interval": 10}

Can we update ttapi to send the presence update at the correct interval?  I believe that should fix the issue.  For now I just started a goroutine that is sending a presence update manually every 10 seconds and that fixed the issue but I feel like ttapi should properly fix this as well for anyone else that wants to use this library.

I pushed a fix, I didn't try it but I think it should work
https://github.com/alaingilbert/ttapi/commit/247990d5f4564b27c63f70c799b8ea4cbd70869f

Yup, looks like that did the trick, no longer seeing the issue.  Thanks for the quick turnaround on this!


Process exited cleanly before we hit wait4

This change is

Coverage increased (+0.04%) to 46.382% when pulling aba45a01adb7c144d9a4e78d1d966befee5e93c2 on aledbf:avoid-wait into fc67b1d5e2a51cc0037a434583af6530efa1a59c on kubernetes:master.


xworkspaces segfault

This segfault is pretty rare, and I'm not entirely sure what triggers it. Managed to catch it with gdb by running polybar under the debugger all day until it crashed:
Thread 13 "polybar" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffcbfff700 (LWP 1106)]
polybar::v3_1_0_56_gbd022c9_git::builder::node (this=0x555555a5c8d0,
    label=<error reading variable: Cannot access memory at address 0x7361625f70614d67>, add_space=false)
    at /home/jon/dev/others/polybar/src/components/builder.cpp:244
244       if (label->m_padding.right > 0) {
(gdb) bt
#0  polybar::v3_1_0_56_gbd022c9_git::builder::node (this=0x555555a5c8d0,
    label=<error reading variable: Cannot access memory at address 0x7361625f70614d67>, add_space=false)
    at /home/jon/dev/others/polybar/src/components/builder.cpp:244
#1  0x00005555557227ce in polybar::v3_1_0_56_gbd022c9_git::modules::xworkspaces_module::build (this=0x555555a5c490,
    builder=0x555555a5c8d0, tag=...) at /home/jon/dev/others/polybar/src/modules/xworkspaces.cpp:300
#2  0x000055555572b7b9 in polybar::v3_1_0_56_gbd022c9_git::modules::module<polybar::v3_1_0_56_gbd022c9_git::modules::xworkspaces_module>::get_output[abi:cxx11]() (this=0x555555a5c490)
    at /home/jon/dev/others/polybar/include/modules/meta/base.inl:159
#3  0x00005555557222bd in polybar::v3_1_0_56_gbd022c9_git::modules::xworkspaces_module::get_output[abi:cxx11]() (
    this=0x555555a5c490) at /home/jon/dev/others/polybar/src/modules/xworkspaces.cpp:264
#4  0x000055555572b1d0 in polybar::v3_1_0_56_gbd022c9_git::modules::module<polybar::v3_1_0_56_gbd022c9_git::modules::xworkspaces_module>::contents[abi:cxx11]() (this=0x555555a5c490)
    at /home/jon/dev/others/polybar/include/modules/meta/base.inl:81
#5  0x000055555567cc76 in polybar::v3_1_0_56_gbd022c9_git::controller::process_update (this=<optimized out>,
    force=false) at /home/jon/dev/others/polybar/src/components/controller.cpp:465
#6  0x0000555555679c1a in polybar::v3_1_0_56_gbd022c9_git::controller::process_eventqueue (this=0x555555a54500)
    at /home/jon/dev/others/polybar/src/components/controller.cpp:357
#7  0x00007ffff5985b9f in std::execute_native_thread_routine (__p=0x555555a5df90)
    at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83
#8  0x00007ffff515208c in start_thread () from /usr/lib/libpthread.so.0
#9  0x00007ffff4e89e7f in clone () from /usr/lib/libc.so.6

This is running with my (relatively minor) patch from #972, encapsulated by bd022c95c2014d8b7fd09ebf695a401d0929a7bf. I don't think that's related to the crash.

If it's relevant, this is my config, and I'm using xmonad.

The issue seems to be correlated with running HexChat, which also crashes when polybar does.

What is the output of xprop -root?
Does it just crash randomly or only when HexChat is also running?

$ xprop -root
AT_SPI_BUS(STRING) = "unix:abstract=/tmp/dbus-oRARjUBAMc,guid=b5e1f2a8c05971d3dc0570455a8704cb"
ESETROOT_PMAP_ID(PIXMAP): pixmap id # 0xa00004
_XROOTPMAP_ID(PIXMAP): pixmap id # 0xa00004
GDK_VISUALS(INTEGER) = 299, 342
XFree86_DDC_EDID1_RAWDATA(INTEGER) = 0, -1, -1, -1, -1, -1, -1, 0, 4, 105, -79, 36, 1, 1, 1, 1, 25, 24, 1, 4, -91, 55, 35, 120, 58, 61, 21, -93, 84, 77, -96, 39, 18, 80, 84, -65, -17, 0, 113, 79, -127, -128, -127, 64, -107, 0, -87, 64, -77, 0, -47, -64, 1, 1, 40, 60, -128, -96, 112, -80, 35, 64, 48, 32, 54, 0, 34, 96, 33, 0, 0, 26, 0, 0, 0, -3, 0, 50, 76, 30, 83, 17, 0, 10, 32, 32, 32, 32, 32, 32, 0, 0, 0, -4, 0, 80, 65, 50, 52, 56, 10, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, -1, 0, 69, 54, 76, 77, 81, 83, 48, 55, 53, 56, 54, 51, 10, 1, -83, 2, 3, 24, -15, 75, -112, 5, 4, 3, 2, 1, 17, 18, 19, 20, 31, 35, 9, 7, 7, -125, 1, 0, 0, 26, 54, -128, -96, 112, 56, 30, 64, 48, 32, 53, 0, 34, 96, 33, 0, 0, 26, 102, 33, 86, -86, 81, 0, 30, 48, 70, -113, 51, 0, 34, 96, 33, 0, 0, 30, 1, 29, 0, 114, 81, -48, 30, 32, 110, 40, 85, 0, 34, 96, 33, 0, 0, 30, -116, 10, -48, -118, 32, -32, 45, 16, 16, 62, -106, 0, 34, 96, 33, 0, 0, 24, 1, 29, -128, 24, 113, 28, 22, 32, 88, 44, 37, 0, 34, 96, 33, 0, 0, -98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112
_NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x200001
_NET_SUPPORTED(ATOM) = _NET_SUPPORTING_WM_CHECK, _NET_WM_NAME, _NET_WM_STATE_HIDDEN, _NET_NUMBER_OF_DESKTOPS, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES, _NET_ACTIVE_WINDOW, _NET_WM_DESKTOP, _NET_WM_STRUT
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x2600003
_NET_CURRENT_DESKTOP(CARDINAL) = 3
_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x1800011, 0xc00003, 0x2400003, 0x2600003, 0x600003, 0x2800001
_NET_CLIENT_LIST(WINDOW): window id # 0x1800011, 0xc00003, 0x2400003, 0x2600003, 0x600003, 0x2800001
_NET_DESKTOP_NAMES(UTF8_STRING) = "web", "code", "a", "b", "c", "mx", "sfx"
_NET_NUMBER_OF_DESKTOPS(CARDINAL) = 7
RESOURCE_MANAGER(STRING) = "*.foreground:\t#D8DEE9\n*.background:\t#2E3440\n*.cursorColor:\t#D8DEE9\n*fading:\t35\n*fadeColor:\t#4C566A\n*.color0:\t#3B4252\n*.color1:\t#BF616A\n*.color2:\t#A3BE8C\n*.color3:\t#EBCB8B\n*.color4:\t#81A1C1\n*.color5:\t#B48EAD\n*.color6:\t#88C0D0\n*.color7:\t#E5E9F0\n*.color8:\t#4C566A\n*.color9:\t#BF616A\n*.color10:\t#A3BE8C\n*.color11:\t#EBCB8B\n*.color12:\t#81A1C1\n*.color13:\t#B48EAD\n*.color14:\t#8FBCBB\n*.color15:\t#ECEFF4\nemacs*geometry:\t120x50\n*faceName:\txft:SourceCodePro:size=10\n*font:\txft:SourceCodePro:size=10\n*multiClickTime:\t300\n*international:\ttrue\nXcursor.theme:\tdefault\nXcursor.size:\t16 ! 32, 48 or 64 may also be good values\nURxvt.depth:\t32\nURxvt.secondaryScroll:\tfalse\nURxvt*saveLines:\t12000\nURxvt*scrollTtyOutput:\tfalse\nURxvt*scrollWithBuffer:\ttrue\nURxvt*scrollTtyKeypress:\ttrue\nURxvt.scrollBar:\tfalse\nURxvt.geometry:\t130x30\nURxvt.urlLauncher:\t/usr/bin/firefox\nURxvt.url-launcher:\t/usr/bin/firefox\nURxvt.matcher.button:\t1\nURxvt.keysym.Control-Up:\t\\033[1;5A\nURxvt.keysym.Control-Down:\t\\033[1;5B\nURxvt.keysym.Control-Left:\t\\033[1;5D\nURxvt.keysym.Control-Right:\t\\033[1;5C\nURxvt.keysym.M-z:\t\302\257\\\\_(\343\203\204)_/\302\257\nURxvt.perl-ext-common:\tdefault,clipboard\nURxvt.keysym.M-c:\teval:selection_to_clipboard\nURxvt.keysym.M-v:\teval:paste_clipboard\nXft.dpi:\t96\nXft.lcdfilter:\tlcddefault\nXft.antialias:\ttrue\nXft.autohint:\tfalse\nXft.hinting:\ttrue\nXft.hintstyle:\thintfull\nXft.rgba:\trgb\nxterm*geometry:\t100x25\nxterm*dynamicColors:\ttrue\nxterm*utf8:\t1\nxterm*eightBitInput:\ttrue\nxterm*saveLines:\t12000\nxterm*scrollTtyKeypress:\ttrue\nxterm*scrollTtyOutput:\tfalse\nxterm*jumpScroll:\ttrue\nxterm*multiScroll:\ttrue\nxterm*toolBar:\tfalse\n"
_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""
XFree86_has_VT(INTEGER) = 1
XFree86_VT(INTEGER) = 1
Xorg_Seat(STRING) = "seat0"

I don't know if the crashes only occur with HexChat running. I don't think that's the case, but the crashes are so rare that it's been a few days since last time (and I don't remember if HexChat was running that time). I'll update the next time I see a crash.

polybar just crashed without HexChat running. I unfortunately wasn't running it under gdb, so don't have a backtrace for you.

For what it's worth, this seems to trigger when a system bar status icon changes.

Just segfaulted again in a slightly different place with 4f6e37449b4c2b66d81c2457501166efbcbb4d95 + #972:
Thread 13 "polybar" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffcbfff700 (LWP 11111)]
polybar::v3_1_0_65_g3fe5c40_git::modules::xworkspaces_module::build (this=0x555555a5e4a0, builder=0x555555a5e8e0,
    tag=...) at /home/jon/dev/others/polybar/src/modules/xworkspaces.cpp:293
293           for (auto&& desktop : m_viewports[m_index]->desktops) {
(gdb) bt
#0  polybar::v3_1_0_65_g3fe5c40_git::modules::xworkspaces_module::build (this=0x555555a5e4a0, builder=0x555555a5e8e0,
    tag=...) at /home/jon/dev/others/polybar/src/modules/xworkspaces.cpp:293
#1  0x000055555572d199 in polybar::v3_1_0_65_g3fe5c40_git::modules::module<polybar::v3_1_0_65_g3fe5c40_git::modules::xworkspaces_module>::get_output[abi:cxx11]() (this=0x555555a5e4a0)
    at /home/jon/dev/others/polybar/include/modules/meta/base.inl:159
#2  0x0000555555723c9d in polybar::v3_1_0_65_g3fe5c40_git::modules::xworkspaces_module::get_output[abi:cxx11]() (
    this=0x555555a5e4a0) at /home/jon/dev/others/polybar/src/modules/xworkspaces.cpp:264
#3  0x000055555572cbb0 in polybar::v3_1_0_65_g3fe5c40_git::modules::module<polybar::v3_1_0_65_g3fe5c40_git::modules::xworkspaces_module>::contents[abi:cxx11]() (this=0x555555a5e4a0)
    at /home/jon/dev/others/polybar/include/modules/meta/base.inl:81
#4  0x000055555567cc96 in polybar::v3_1_0_65_g3fe5c40_git::controller::process_update (this=<optimized out>,
    force=false) at /home/jon/dev/others/polybar/src/components/controller.cpp:478
#5  0x0000555555679caa in polybar::v3_1_0_65_g3fe5c40_git::controller::process_eventqueue (this=0x555555a56500)
    at /home/jon/dev/others/polybar/src/components/controller.cpp:370
#6  0x00007ffff5985b9f in std::execute_native_thread_routine (__p=0x555555a58090)
    at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83
#7  0x00007ffff515208c in start_thread () from /usr/lib/libpthread.so.0
#8  0x00007ffff4e89e7f in clone () from /usr/lib/libc.so.6

I have a feeling this might be X event-related, but I'm not absolutely sure.
This might be a stretch, but it might be helpful to monitor what X events are occurring right before the segfault.

How would I do that?

You could insert some logging into xworkspaces_module::handle() to print which property changed and possibly add a timestamp to determine when it occurred.
https://github.com/jaagr/polybar/blob/692e6d9b4a2e023804353dee430b865dfedccd78/src/modules/xworkspaces.cpp#L97-L113

I'm also getting infrequent segfaults and I'm running xmonad and the xworkspaces module. I haven't been able to identify what triggers them but I'll post in here if I do.

I'm also getting infrequent segfaults and I'm running xmonad and the xworkspaces module. I haven't been able to identify what triggers them but I'll post in here if I do.

@jonhoo suggested that I might be getting this segfault as well. If I can determine the trigger or propose a fix, I will report back here.
I hope that "Given enough eyeballs, all bugs are shallow" holds in this case. :-)

I think this might be caused by multiple X events occurring in succession causing race conditions, which can be solved by locking in the handler.

When ewmh/xworkspaces is enabled, polybar also crashes multiple times in a session for me. I'm on NixOs 18.03, using xmonad.
It happend so often, that I disabled the xworkspaces module, but still not very predictably. It seems like it has to do something with fullscreen or floating windows.

This could be related: https://www.reddit.com/r/xmonad/comments/72yodp/psa_do_not_use_both_ewmh_and_the_event_hook/

@fdietze hmm.. I do not have any of those duplicated, yet I still see the segfauly. Not multiple times a session though, so that does perhaps suggest that it is indeed about events racing.

I believe I'm also running into this. I can replicate the issue quite easily when running VLC and toggling through lots of videos which causes the window title to update. I've built polybar in debug mode and replicated the issue
GNU gdb (GDB) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./polybar...done.
(gdb) run
Starting program: /home/will/src/polybar/src/polybar/build/bin/polybar bar
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff1c23700 (LWP 20050)]
[New Thread 0x7fffed422700 (LWP 20051)]
[New Thread 0x7fffecc21700 (LWP 20052)]
[Thread 0x7fffecc21700 (LWP 20052) exited]
[New Thread 0x7fffdbfff700 (LWP 20053)]
[New Thread 0x7fffdb7fe700 (LWP 20054)]
[Thread 0x7fffdbfff700 (LWP 20053) exited]
[New Thread 0x7fffdaffd700 (LWP 20055)]
[New Thread 0x7fffda7fc700 (LWP 20056)]
[New Thread 0x7fffd9ffb700 (LWP 20057)]
[New Thread 0x7fffd97fa700 (LWP 20058)]
[New Thread 0x7fffd8ff9700 (LWP 20059)]
[New Thread 0x7fffc7fff700 (LWP 20060)]
[New Thread 0x7fffc77fe700 (LWP 20061)]
[New Thread 0x7fffc6ffd700 (LWP 20062)]
[New Thread 0x7fffc67fc700 (LWP 20063)]
[New Thread 0x7fffc5ffb700 (LWP 20064)]
[New Thread 0x7fffc57fa700 (LWP 20065)]
[New Thread 0x7fffc4ff9700 (LWP 20066)]
[New Thread 0x7fffb3fff700 (LWP 20067)]
[Thread 0x7fffc4ff9700 (LWP 20066) exited]
[New Thread 0x7fffb2c46700 (LWP 20068)]
[Thread 0x7fffb2c46700 (LWP 20068) exited]

Thread 19 "polybar" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb3fff700 (LWP 20067)]
0x00005555558e77d0 in std::__shared_ptr<polybar::v3_2_1::drawtypes::label, (__gnu_cxx::_Lock_policy)2>::get (this=0x12500000010)
    at /usr/include/c++/8.2.1/bits/shared_ptr_base.h:1286
1286          { return _M_ptr; }
(gdb) bt full
#0  0x00005555558e77d0 in std::__shared_ptr<polybar::v3_2_1::drawtypes::label, (__gnu_cxx::_Lock_policy)2>::get (this=0x12500000010)
    at /usr/include/c++/8.2.1/bits/shared_ptr_base.h:1286
No locals.
#1  0x0000555555a09cd6 in polybar::v3_2_1::modules::xworkspaces_module::build (this=0x555555ba8630, builder=0x555555ba8a70, tag="<label-state>")
    at /home/will/src/polybar/src/polybar/src/modules/xworkspaces.cpp:294
        desktop = std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555c00530}
        __for_range = std::vector of length 9, capacity 16 = {std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555bfe050},
          std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555bfbea0}, std::unique_ptr<polybar::v3_2_1::modules::desktop> = {
            get() = 0x555555c095a0}, std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555c03270},
          std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555c004a0}, std::unique_ptr<polybar::v3_2_1::modules::desktop> = {
            get() = 0x555555bfd040}, std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555bfd070},
          std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555c00530}, std::unique_ptr<polybar::v3_2_1::modules::desktop> = {
            get() = 0x555555baa980}}
        __for_begin = std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x555555c00530}
        __for_end = std::unique_ptr<polybar::v3_2_1::modules::desktop> = {get() = 0x0}
        added_states = 7
#2  0x0000555555a0bdcc in polybar::v3_2_1::modules::module<polybar::v3_2_1::modules::xworkspaces_module>::get_output[abi:cxx11]() (
    this=0x555555ba8630) at /home/will/src/polybar/src/polybar/include/modules/meta/base.inl:160
        tag = "<label-state>"
        guard = {_M_device = @0x555555ba8840}
        format_name = "format"
        format = std::shared_ptr<polybar::v3_2_1::modules::module_format> (use count 2, weak count 0) = {get() = 0x555555baca80}
        no_tag_built = true
        fake_no_tag_built = false
        tag_built = false
        mingap = 1
        start = 0
        end = 12
        value = "<label-state>"
#3  0x0000555555a096a9 in polybar::v3_2_1::modules::xworkspaces_module::get_output[abi:cxx11]() (this=0x555555ba8630)
    at /home/will/src/polybar/src/polybar/src/modules/xworkspaces.cpp:264
        output = ""
#4  0x0000555555a0b58b in polybar::v3_2_1::modules::module<polybar::v3_2_1::modules::xworkspaces_module>::contents[abi:cxx11]() (
    this=0x555555ba8630) at /home/will/src/polybar/src/polybar/include/modules/meta/base.inl:82
No locals.
#5  0x00005555558fe396 in polybar::v3_2_1::controller::process_update (this=0x555555baa460, force=false)
    at /home/will/src/polybar/src/polybar/src/components/controller.cpp:481
        module_contents = ""
        module = std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555ba8630}
        __for_range = std::vector of length 1, capacity 1 = {std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555ba8630}}
        __for_begin = std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555ba8630}
        __for_end = std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x0}
        block_contents = ""
        is_left = true
        is_center = false
        is_right = false
        is_first = true
        block = @0x555555bab6d0: {first = polybar::v3_2_1::alignment::LEFT, second = std::vector of length 1, capacity 1 = {
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555ba8630}}}
        __for_range = std::map with 3 elements = {[polybar::v3_2_1::alignment::LEFT] = std::vector of length 1, capacity 1 = {
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555ba8630}},
--Type <RET> for more, q to quit, c to continue without paging--
          [polybar::v3_2_1::alignment::CENTER] = std::vector of length 1, capacity 1 = {
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555bb67e0}},
          [polybar::v3_2_1::alignment::RIGHT] = std::vector of length 11, capacity 16 = {
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555babdb0},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555bfc870},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555bfd880},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555bfe860},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555b84400},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c015b0},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c02980},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c04e30},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c07300},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c08a60},
            std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c09b60}}}
        __for_begin =
      {first = polybar::v3_2_1::alignment::LEFT, second = std::vector of length 1, capacity 1 = {std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555ba8630}}}
        __for_end =
      {first = polybar::v3_2_1::alignment::RIGHT, second = std::vector of length 4, capacity 4 = {std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555ba8970}, std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555bac0e0}, std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c08d98}, std::unique_ptr<polybar::v3_2_1::modules::module_interface> = {get() = 0x555555c09e90}}}
        bar = @0x7fffb3ffe8e0: {window = 104857602, monitor = std::shared_ptr<polybar::v3_2_1::randr_output> (use count 32, weak count 0) = {
            get() = 0x555555ba7d80}, origin = polybar::v3_2_1::edge::TOP, size = {w = 2560, h = 24}, pos = {x = 0, y = 293}, offset = {x = 0,
            y = 0}, center = {x = 1280, y = 12}, padding = {left = 0, right = 0}, margin = {left = 0, right = 0}, module_margin = {left = 1,
            right = 1}, strut = {left = 0, right = 0, top = 0, bottom = 0}, background =<PHONE_NUMBER>, foreground =<PHONE_NUMBER>,
          background_steps = std::vector of length 0, capacity 0, underline = {color =<PHONE_NUMBER>, size = 3}, overline = {color =<PHONE_NUMBER>,
            size = 3}, borders = std::unordered_map with 4 elements = {[polybar::v3_2_1::edge::RIGHT] = {color = 0, size = 0},
            [polybar::v3_2_1::edge::LEFT] = {color = 0, size = 0}, [polybar::v3_2_1::edge::TOP] = {color = 0, size = 0},
            [polybar::v3_2_1::edge::BOTTOM] = {color = 0, size = 0}}, radius = {top = 0, bottom = 0}, spacing = 0, separator = "",
          wmname = "polybar-bar_DP2-2-8", locale = "", override_redirect = false, cursor = "", cursor_click = "pointer",
          cursor_scroll = "ns-resize", actions = std::vector of length 0, capacity 0, dimmed = false, dimvalue = 1, shaded = false, shade_size = {
            w = 1, h = 1}, shade_pos = {x = 1, y = 1}}
        contents = ""
        separator = ""
        padding_left = ""
        padding_right = ""
        margin_left = " "
        margin_right = " "
#6  0x00005555558fd786 in polybar::v3_2_1::controller::process_eventqueue (this=0x555555baa460)
    at /home/will/src/polybar/src/polybar/src/components/controller.cpp:394
        next = {type = 1, flag = false}
        swallowed = 6
        evt = {type = 1, flag = false}
#7  0x0000555555908790 in std::__invoke_impl<void, void (polybar::v3_2_1::controller::*)(), polybar::v3_2_1::controller*> (
    __f=@0x555555c0d360: (void (polybar::v3_2_1::controller::*)(polybar::v3_2_1::controller * const)) 0x5555558fd41e <polybar::v3_2_1::controller::process_eventqueue()>, __t=@0x555555c0d358: 0x555555baa460) at /usr/include/c++/8.2.1/bits/invoke.h:73
No locals.
#8  0x00005555559043f0 in std::__invoke<void (polybar::v3_2_1::controller::*)(), polybar::v3_2_1::controller*> (
    __fn=@0x555555c0d360: (void (polybar::v3_2_1::controller::*)(polybar::v3_2_1::controller * const)) 0x5555558fd41e <polybar::v3_2_1::controller::process_eventqueue()>, __args#0=@0x555555c0d358: 0x555555baa460) at /usr/include/c++/8.2.1/bits/invoke.h:95
--Type <RET> for more, q to quit, c to continue without paging--
No locals.
#9  0x000055555591660f in std::thread::_Invoker<std::tuple<void (polybar::v3_2_1::controller::*)(), polybar::v3_2_1::controller*> >::_M_invoke<0ul, 1ul> (this=0x555555c0d358) at /usr/include/c++/8.2.1/thread:244
No locals.
#10 0x00005555559165b5 in std::thread::_Invoker<std::tuple<void (polybar::v3_2_1::controller::*)(), polybar::v3_2_1::controller*> >::operator() (
    this=0x555555c0d358) at /usr/include/c++/8.2.1/thread:253
No locals.
#11 0x00005555559164ca in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (polybar::v3_2_1::controller::*)(), polybar::v3_2_1::controller*> > >::_M_run (this=0x555555c0d350) at /usr/include/c++/8.2.1/thread:196
No locals.
#12 0x00007ffff69b7063 in std::execute_native_thread_routine (__p=0x555555c0d350) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
        __t = std::unique_ptr<std::thread::_State> = {get() = 0x555555c0d350}
#13 0x00007ffff6740a9d in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#14 0x00007ffff6670b23 in clone () from /usr/lib/libc.so.6
No symbol table info available.

I've got a corefile as well should that be useful for debugging
The relevant part of my polybar config
[module/workspaces]
type= internal/xworkspaces
enable-click = false
enable-scroll = false
;
; icon-[0-9]+ = <desktop-name>;<icon>
; NOTE: The desktop name needs to match the name configured by the WM
; You can get a list of the defined desktops using:
; $ xprop -root _NET_DESKTOP_NAMES
icon-0 = 1;
icon-1 = 2;
icon-2 = 3;
icon-3 = 4;
icon-4 = 5;
icon-9 = 9;
icon-default = 

; Available tags:
;   <label-monitor>
;   <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
; Default: <label-state>
format = <label-state>

; Available tokens:
;   %name%
; Default: %name%
label-monitor = %name%

; Available tokens:
;   %name%
;   %icon%
;   %index%
; Default: %icon%  %name%
label-active = " %index% %icon% "
label-active-foreground = #3f3f3f
label-active-background = #ffffff
label-active-underline = #fba922

; Available tokens:
;   %name%
;   %icon%
;   %index%
; Default: %icon%  %name%
label-occupied = %icon%
label-occupied-background = #3f3f3f
label-occupied-underline = #ffffff

; Available tokens:
;   %name%
;   %icon%
;   %index%
; Default: %icon%  %name%
label-urgent = %icon%
label-urgent-foreground = #000000
label-urgent-background = #bd2c40
label-urgent-underline = #9b0a20

; Available tokens:
;   %name%
;   %icon%
;   %index%
; Default: %icon%  %name%
label-empty = " %index% %icon% "
label-empty-foreground = #999
label-empty-background = #3f3f3f

Polybar commit: a5bdce981150e244a6fab37b3bc22ccc1182e9b1

I think I solved this in #882 / #1444 (well, I committed what others hinted me at).
@willprice @jonhoo Could give that version a try and see if it works for you as well?

I actually haven't seen this segfault for a while! It still happens very occasionally, but I haven't been able to actively reproduce it like before. @kronn is #882 in a place where you think it can be used as the standard polybar build now?

@kronn, I've tested your fork and can confirm I've not had any issues. I'll try the latest master version on this repo to and see if I can reproduce the segfaults.
Thanks @kronn and @jonhoo for the help.

Hi @jonhoo,
I can still reproduce this on commit 6ca4f0678506276d1ccc508296bf174901126ab2 by cycling through videos very quickly on vlc (hitting 'n' and 'p') and toggling through windows.
$ gdb --args ./polybar bar
GNU gdb (GDB) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./polybar...done.
(gdb) run
Starting program: /home/will/src/polybar/src/polybar/build/bin/polybar bar
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff1c23700 (LWP 20149)]
warn: Monitor "DP2-2-8" not found, reverting to fallback "eDP1"
[New Thread 0x7fffed422700 (LWP 20150)]
[New Thread 0x7fffecc21700 (LWP 20151)]
[Thread 0x7fffecc21700 (LWP 20151) exited]
[New Thread 0x7fffdbfff700 (LWP 20152)]
[New Thread 0x7fffdb7fe700 (LWP 20153)]
[Thread 0x7fffdbfff700 (LWP 20152) exited]
[New Thread 0x7fffdaffd700 (LWP 20154)]
[New Thread 0x7fffda7fc700 (LWP 20155)]
[New Thread 0x7fffd9ffb700 (LWP 20156)]
[New Thread 0x7fffd97fa700 (LWP 20157)]
[New Thread 0x7fffd8ff9700 (LWP 20158)]
[New Thread 0x7fffbffff700 (LWP 20159)]
[New Thread 0x7fffbf7fe700 (LWP 20160)]
[New Thread 0x7fffbeffd700 (LWP 20161)]
[New Thread 0x7fffbe7fc700 (LWP 20162)]
[New Thread 0x7fffbdffb700 (LWP 20163)]
[New Thread 0x7fffbd7fa700 (LWP 20164)]
[New Thread 0x7fffbcff9700 (LWP 20165)]
[New Thread 0x7fffaffff700 (LWP 20166)]
[Thread 0x7fffbcff9700 (LWP 20165) exited]
[New Thread 0x7fffaec46700 (LWP 20167)]
[Thread 0x7fffaec46700 (LWP 20167) exited]

Thread 19 "polybar" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffaffff700 (LWP 20166)]
0x0000555555925f14 in std::__shared_ptr<polybar::v3_2_0_60_g6ca4f067::drawtypes::label, (__gnu_cxx::_Lock_policy)2>::get (
    this=0x10) at /usr/include/c++/8.2.1/bits/shared_ptr_base.h:1286
1286          { return _M_ptr; }
(gdb) backtrace
#0  0x0000555555925f14 in std::__shared_ptr<polybar::v3_2_0_60_g6ca4f067::drawtypes::label, (__gnu_cxx::_Lock_policy)2>::get (
    this=0x10) at /usr/include/c++/8.2.1/bits/shared_ptr_base.h:1286
#1  0x0000555555a48d24 in polybar::v3_2_0_60_g6ca4f067::modules::xworkspaces_module::build (this=0x555555bf0480,
    builder=0x555555bee5c0, tag="<label-state>") at /home/will/src/polybar/src/polybar/src/modules/xworkspaces.cpp:294
#2  0x0000555555a4ae1a in polybar::v3_2_0_60_g6ca4f067::modules::module<polybar::v3_2_0_60_g6ca4f067::modules::xworkspaces_module>::get_output[abi:cxx11]() (this=0x555555bf0480) at /home/will/src/polybar/src/polybar/include/modules/meta/base.inl:160
#3  0x0000555555a486f7 in polybar::v3_2_0_60_g6ca4f067::modules::xworkspaces_module::get_output[abi:cxx11]() (this=0x555555bf0480)
    at /home/will/src/polybar/src/polybar/src/modules/xworkspaces.cpp:264
#4  0x0000555555a4a5d9 in polybar::v3_2_0_60_g6ca4f067::modules::module<polybar::v3_2_0_60_g6ca4f067::modules::xworkspaces_module>::contents[abi:cxx11]() (this=0x555555bf0480) at /home/will/src/polybar/src/polybar/include/modules/meta/base.inl:82
#5  0x000055555593cb08 in polybar::v3_2_0_60_g6ca4f067::controller::process_update (this=0x555555bca7f0, force=false)
    at /home/will/src/polybar/src/polybar/src/components/controller.cpp:481
#6  0x000055555593bef8 in polybar::v3_2_0_60_g6ca4f067::controller::process_eventqueue (this=0x555555bca7f0)
    at /home/will/src/polybar/src/polybar/src/components/controller.cpp:394
#7  0x0000555555947010 in std::__invoke_impl<void, void (polybar::v3_2_0_60_g6ca4f067::controller::*)(), polybar::v3_2_0_60_g6ca4f067::controller*> (
    __f=@0x555555c53480: (void (polybar::v3_2_0_60_g6ca4f067::controller::*)(polybar::v3_2_0_60_g6ca4f067::controller * const)) 0x55555593bb90 <polybar::v3_2_0_60_g6ca4f067::controller::process_eventqueue()>, __t=@0x555555c53478: 0x555555bca7f0)
    at /usr/include/c++/8.2.1/bits/invoke.h:73
#8  0x0000555555942c70 in std::__invoke<void (polybar::v3_2_0_60_g6ca4f067::controller::*)(), polybar::v3_2_0_60_g6ca4f067::controller*> (
    __fn=@0x555555c53480: (void (polybar::v3_2_0_60_g6ca4f067::controller::*)(polybar::v3_2_0_60_g6ca4f067::controller * const)) 0x55555593bb90 <polybar::v3_2_0_60_g6ca4f067::controller::process_eventqueue()>, __args#0=@0x555555c53478: 0x555555bca7f0)
    at /usr/include/c++/8.2.1/bits/invoke.h:95
#9  0x0000555555954f69 in std::thread::_Invoker<std::tuple<void (polybar::v3_2_0_60_g6ca4f067::controller::*)(), polybar::v3_2_0_60_g6ca4f067::controller*> >::_M_invoke<0ul, 1ul> (this=0x555555c53478) at /usr/include/c++/8.2.1/thread:244
#10 0x0000555555954f0f in std::thread::_Invoker<std::tuple<void (polybar::v3_2_0_60_g6ca4f067::controller::*)(), polybar::v3_2_0_60_g6ca4f067::controller*> >::operator() (this=0x555555c53478) at /usr/include/c++/8.2.1/thread:253
#11 0x0000555555954e24 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (polybar::v3_2_0_60_g6ca4f067::controller::*)(), polybar::v3_2_0_60_g6ca4f067::controller*> > >::_M_run (this=0x555555c53470) at /usr/include/c++/8.2.1/thread:196
#12 0x00007ffff69b7063 in std::execute_native_thread_routine (__p=0x555555c53470)
    at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
#13 0x00007ffff6740a9d in start_thread () from /usr/lib/libpthread.so.0
#14 0x00007ffff6670b23 in clone () from /usr/lib/libc.so.6
(gdb)

Let me know if the core dump would be of any help.
I've yet to be able to reproduce the issue with @kronn's branch so I'll stick with that.


Adding tutorial links to documentation

With this pull request some links to the ESMValTool tutorial are added to the documentation.
Closes #1926

Automated checks pass, status can be seen below the pull request:

[x] Circle/CI tests pass. If the tests are failing, click the Details link to find out why.
[ ] Preferably Codacy code quality checks pass, however a few remaining hard to solve Codacy issues are still acceptable. If there is an error, click the link to find out why. If you suspect Codacy may be wrong, please ask by commenting.
[x] The documentation is building successfully on readthedocs and looks well formatted, click the Details link to see it.

If you need help with any of the items on the checklists above, please do not hesitate to ask by commenting in the issue or pull request.

Thanks for the suggestions, @SarahAlidoost!
I have changed the wording in the two cases you suggested, and I also added the link to the Tutorial for the installation part of the documentation.

Hey @axel-lauer, can you merge this? Not sure if I could/should do it myself. Thanks!


Micropython support (RPi Pico)

This looks like a nice and complete library. Thank you for creating it!
I'm however not that much interested in using it for a "regular" RPi's. I would be great if there could be a port to MicroPhyton. I found a older post from 18, but maybe MicroPhyton has matured enough by now and the Pi Pico is a very nice platform.
Currently the Pi Pico is lacking decent oled libraries. The libraries that are out there are a bit basic, and dont support that many displays. For example the SSD1233 that i like to use.
Would a port be possible?

Marking as a duplicate of #216


Nylas-mail without Nylas ID

Hi all,
I'm looking for a smart mail for a Linux environment for a long time. Nylas looks still very promising to me. But the lack of support and the enforcement to use a Nylas ID is clearly holding me up.
As you obviously plan to bring that tool back to life, is there a plan to make it completely independently and freely usable without registering a Nylas ID?
Thanks a lot,
Karlsoost

+1 disabling the ID requirement shouldn't be difficult

Just a heads up, the use of the Nylas API is still being discussed in Slack. Once that is figured out, this can be approached.

Still figuring out the meaning of the phrase

But the local sync engine in Nylas Mail means you don't need sync-engine.

From here nylas/sync-engine#448

Closing this issue in favor of the more productive conversation on #30


Improve datetime functions

This PR ensures all dates used are in the PST timezone, and adds associated tests to ensure the behaviour of these functions is correct.
Closes #50
Would recommend testing it locally to make sure caching is still working as intended before merging.

Hold off before merging, this is not fully integrated with parser.js and timeseries.js

@qgolsteyn can we do #48 as part of this? For cache as well.

I opened #194 and I see there is work already here. What I recommend:

Use ISO 8601 standard, as detailed in #194. This is an industry standard human readable data function, with very well tested parsing and writing functions in all date libraries in all programming languages.
We should not roll our own date methods.
I recommend Luxon the recommended library from Moment.js developers. Think of it as a modern version of Moment.js.
We should use UTC dates everywhere.

Luxon has .toISODate() and .fromISO(), super well tested methods.

We should not roll our own date methods.
Yeah uhg, I should have started with moment or Luxon, but I was lazy.

Would like to suggest Spacetime as an alternative. Super lightweight and pretty flexible. Example impl: https://github.com/covidatlas/covidatlas/blob/master/src/shared/utils/get-date.js

Please see my comment here. Moment and Luxon (and Spacetime AFAICT) all replicate the JS date object's original sin of forcing you to attach times and time zones to your dates, which makes everything much more complicated than it needs to be.

@ryanblock I don't see what does Spacetime bring over luxon. Luxon is super stable and well tested. In Spacetime I don't even see the basic fromISO() and toISO() and toISODate() methods.

#228 mentioned using js-joda. This library provides a LocalDate, which represents a date with no time and no time zone in the ISO-8601 calendar system. It does not use the Date object, does not force you to set a timezone. Could be an interesting option.

Closing, this may not be the right approach. #42 for the up-to-date conversation.


Add info endpoint to provide information about CZERTAINLY application

Add /info endpoint to provide information about running CZERTAINLY application. It should provide following

current version of Core as stated in pom.xml
DB system and version (e.g. Postgres 12.1)

Note: It is worth to explore functionality provided by Actuator. If information provided by library are suitable for our needs, we should utilize it.

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."


DOM Lag while inputing (over 80 or 100  component in one template and every component has a watcher )

Version
2.6.10
Reproduction link
https://codepen.io/LeoKi12/pen/jRoWwE
Steps to reproduce
how do i fix the issue about dom laggin .
What is expected?
smoothing inputing
What is actually happening?
I have a problem for this every time i input, checking box, or selecting radio. the dom is lagging or delay response.
every component has this kind of code.
<template>
    <div>
       ..some temp ex. over 50 to 70+ input with radio and checkbox
       <input v-model="someData.name"/>
    </div>
</template>

<script>
import { mapActions } from "vuex"
export default ({
  data: () => ({
       someData: {}
  }),
  watch:{
      someData:{
        handler(obj){
         this.putDataToVuex({ someData: obj })
       }
     }
  },
  methods:{
     ...mapActions(`vuexname`,["putDataToVuex"])
  }
})
</script>

thanks.

Hello ..
Thank your for your interest in this project.
However, your issue is a usage/support question, and the issue tracker is reserved exclusively for bug reports and feature requests (as outlined in our Contributing Guide).
We encourage you to ask it on the forum  , Stack Overflow or on our Discord chat and are happy to help you out there.


Cassandra driver

This PR introduces Cassandra driver, so it's now possible to load federation data directly from Cassandra cluster!
To use it, database section in config.toml should look like this:
[database]
type = "cassandra"
cluster = ["<IP_ADDRESS>:32768"] # Array of cluster IPs
keyspace = "federation"
proto-version = 4

More information in updated README file.
Please note that Cassandra driver supports only memo_type equal text for now. It's impossible to alias the column that does not exist in a query.

Closing old PRs.


Header styling

For the below link the styling is missing.
http://getbootstrap.com/docs/4.0/examples/

Sorry I don't see that on Chrome (60.0.3112.113) with Win10

The link has "http". When its "https" it works fine. Sorry, I should have checked.


container: Let some time before to force kill a container process

Using force kill when we want to stop a container should only be
called after we left some time to make sure nothing has been killing
the container process. Indeed, signals can sometime take a few seconds
to terminate a process. In this case, we don't want to SIGKILL this
process, otherwise it would return with the exit code 137. Instead, we
want to leave it some time (10 seconds) so that it can properly end.
After those 10 seconds, we consider the previous signal didn't get the
expected effect and we force kill the container process. Indeed, we
still want to try to kill the container.
Fixes #606
Depends-on: github.com/clearcontainers/runtime#1003
Signed-off-by: Sebastien Boeuf<EMAIL_ADDRESS>

LGTM


Parallax sample app does not look good in dark mode

The parallax sample app in the test harness does not look nice in dark mode.
ref: #2161

FIxed


How to use JET.jl on nightly

See full CI run with stacktrace here.
Excerpt:
ERROR: LoadError: MethodError: no method matching Core.Compiler.InferenceParams(::Core.Compiler.InferenceParams; ipo_constant_propagation::Bool, aggressive_constant_propagation::Bool, unoptimize_throw_blocks::Bool, max_methods::Int64, union_splitting::Int64, apply_union_enum::Int64, tupletype_depth::Int64, tuple_splat::Int64)

Closest candidates are:
  Core.Compiler.InferenceParams(::Core.Compiler.InferenceParams; max_methods, max_union_splitting, max_apply_union_enum, max_tuple_splat, tuple_complexity_limit_depth, ipo_constant_propagation, aggressive_constant_propagation, unoptimize_throw_blocks, assume_bindings_static) got unsupported keyword arguments "union_splitting", "apply_union_enum", "tupletype_depth", "tuple_splat"
   @ Core compiler/types.jl:153
  Core.Compiler.InferenceParams() got unsupported keyword arguments "ipo_constant_propagation", "aggressive_constant_propagation", "unoptimize_throw_blocks", "max_methods", "union_splitting", "apply_union_enum", "tupletype_depth", "tuple_splat"
   @ Core compiler/types.jl:153
  Core.Compiler.InferenceParams(::Int64, ::Int64, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool, ::Bool, ::Bool) got unsupported keyword arguments "ipo_constant_propagation", "aggressive_constant_propagation", "unoptimize_throw_blocks", "max_methods", "union_splitting", "apply_union_enum", "tupletype_depth", "tuple_splat"
   @ Core compiler/types.jl:131
  ...

 Something seems to be holding it back, I realize it is not the latest. I will try to figure out CI so that I test using the latest release, and report back.

I realized JET now upper bounds Julia at 1.8.3, so when I use it for CI on nightly I get an older version.
Not sure what a good solution would be, I read the motivation for #419.

If you want to use JET with nightly version, it would be better to use JET's master branch rather than any released version.

It is possible to query JET-supported Julia versions programmatically? We could then just hide JET tests behind a version check.

@Drvi: Yes, that would be a reasonable workaround.

It is possible to query JET-supported Julia versions programmatically?

Well, that sounds like equivalent to looking at compatible Julia version declared in JET's Project.toml right? It would still doesn't allow using JET on nightly CI (since we intentionally did so in #419). I think the only workaround here is either of:

dev to the latest master of JET on package side
reverts #419 on JET side

For me the issue is not using JET on nightly, but simply knowing when to skip it in CI.

Can't you do @static isempty(VERSION.prerelease) && [...]?


Transform camelcase names for params into snake case

Parmeters such as hitsPerPageshould be tranformed into camel case => hits_per_page to respect Rails convention

Closed by #49


Run Hello Wrold Error

Operate according to the readme, when running the last step, an error appears

How to handle it？

act@haiguang-157:~$ uname -r
5.10.0-051000-generic
act@haiguang-157:~$ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   48 bits physical, 48 bits virtual
CPU(s):                          128
On-line CPU(s) list:             0-127
Thread(s) per core:              2
Core(s) per socket:              32
Socket(s):                       2
NUMA node(s):                    8
Vendor ID:                       HygonGenuine
CPU family:                      24
Model:                           3
Model name:                      Hygon C86 7390 32-core Processor
Stepping:                        1
CPU MHz:                         2907.111
BogoMIPS:                        5400.09
Virtualization:                  AMD-V
L1d cache:                       2 MiB
L1i cache:                       4 MiB
L2 cache:                        32 MiB
L3 cache:                        128 MiB
NUMA node0 CPU(s):               0-7,64-71
NUMA node1 CPU(s):               8-15,72-79
NUMA node2 CPU(s):               16-23,80-87
NUMA node3 CPU(s):               24-31,88-95
NUMA node4 CPU(s):               32-39,96-103
NUMA node5 CPU(s):               40-47,104-111
NUMA node6 CPU(s):               48-55,112-119
NUMA node7 CPU(s):               56-63,120-127
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and _user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full AMD retpoline, IBPB conditional, STIBP disabled, RSB
filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse3
6 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdts
cp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid amd_dcm
aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe p
opcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm
sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_c
ore perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibp
b vmmcall sev_es fsgsbase bmi1 avx2 smep bmi2 adx smap clflushopt sha
ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lb
rv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists p
ausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor
smca
act@haiguang-157:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.10.0-051000-generic root=UUID=815fc90b-8fd7-4819-bacc-c8c2ce7e9e23 ro memmap=8G$0x100000000 iommu=off intremap=off no5lvl
and The dmesg
dmesg.txt

Hi @1140380820 , the secure memory is not enough(8G), try to increase it to 256G by following the instructions here:
https://github.com/asterinas/hyperenclave?tab=readme-ov-file#step-1-get-the-full-system-memory-size-and-reserve-secure-memory-for-hyperenclave-in-kernels-command-line