Implement an API to auto-load commands, autocmds, and keymaps from the nvim API

Say you already have keymaps being set up another way, you just want them to be searchable with legendary.nvim.
We could load the commands, autocmds, and keymaps through the nvim APIs, as long as they have the desc key set.
Although I'm not sure how to do this effectively because right now, the API functions use the same table field definition for the description, or if no description is set, it's just the implementation, which we wouldn't wanna show as a description.

We may be able to do this for keymaps, but not commands. Keymaps have a separate desc field.

I was about to open an issue to request this. Is this the same that telescope shows whith the built in commands selector?

Yeah unfortunately there's not a great way to get descriptions and when I asked about it in the Neovim repo I was basically told "the description field isn't a description" 🤔

I'm not sure. It's something I've been thinking about a lot, but it doesn't really make sense to add items where the "description" is some long string of Lua code. The description field will be the description if one was set when defining it via the Neovim APIs, but if no description was set in the opts table, the desc field of the items returned from the API is just the Lua code or vim script string implementation of the keymap/command.
In those cases, it doesn't really make sense for Legendary to show that huge description string (it'll totally throw off formatting, not be useful, and look bad), and since the description field behaves like described above, there isn't really a way for legendary to tell whether items have an actual description, or if the description field is just the stringified implementation (Lua code or vim script string).
Here's the Neovim issue I opened about the topic if you want to take a look: https://github.com/neovim/neovim/issues/17639
Perhaps it might be worth opening a new issue and hoping someone else responds.

what about truncate the output to certain length and let the ugly stuff appear? Maybe behind a config flag. I can provide screenshot later, but this doesn't seem to be uncommon in the vim world, telescope and wich-key already do this.

Maybe. Not sure. What happens when you have a custom description registered through legendary that exceeds that length, do we really want to cut that off? I'm not sure a simple max truncation length is the solution.

What about implementing some basic heuristics to decide if the description is code or not? If it looks like a function call, it's preceded with Lua then a require etc then just don't display it? Just ideas

Heuristics to decide if the description is code or not would be far from basic.

Hi, I think it is also feasible to set a length limit to the description. And if the limit is exceeded, then the description field can be blank or "No description" or display the command itself. I think something like " (No description)" is reasonable enough.
The core problem here is that it is not possible to have automatically generated description for all commands. Therefore it might be wise to prove the command and let user to fill in the description themselves if it is necessary for them.

Closing this issue in favor of #258  (which could have a PR for it, if anyone wants to take a stab at it) and #259 (which remains blocked).


[Feature]: Reset Recent Items

Describe the feature
Can we please get a "reset recent items" button option so we can press it and all recent items go to their respective categories?
Describe the implementation
an option for a little button maybe on the title bar near the search bar

Right click the bag button. If you're on cata/classic, install "SortBags" as Blizzard has removed the sort API in older versions of WoW.


merge-ready branch missing sample-systemd

It appears the merge-ready branch is missing the sample-systemd file.
This impacts the Autostart documentation here: https://eth-docker.net/docs/Usage/Autostart

Also, when I try docker-compose up I get an error that there is no such service: eth. Is there a new way to manage this using ./ethd?

Yep systemd is gone, it was superfluous. Docs will be updated when this gets into main branch.
eth is no longer a thing. Just docker-compose up -d does the trick, or ./ethd up


Remove duplicated source attributes in cookbook_file

The resource using the leapseconds file as cookbook_file had two
sources
It is confusing and incorrect since in this case the leapfile_url is
probably nil

Description
It fixes an error when not using the leapfile from a mirror
Issues Resolved
https://github.com/chef-cookbooks/ntp/issues/197
Check List

[x] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable
[x] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

@tas50 ready for release when you get time mate

@tas50 or @Xorima do you think this could move forward?

Released as: 3.9.1


CameraRoll.saveToCameraRoll saves local videos as static images, even when video extension is .MOV or .MP4. Fails when passing video as type

Is this a bug report?
Yes
Have you read the Contributing Guidelines?
Yes
Environment
Environment:
OS:  macOS Sierra 10.12.6
Node:  6.11.3
Yarn:  1.0.2
npm:  5.3.0
Watchman:  4.9.0
Xcode:  Xcode 8.3.3 Build version 8E3004b
Android Studio:  Not Found
Packages: (wanted => installed)
react: 16.0.0-alpha.12 => 16.0.0-alpha.12
react-native: 0.48.4 => 0.48.4
Target Platform: iOS (10.2.1)
Steps to Reproduce

Create a new project
Use CameraRoll.getPhotos({first: 20,assetType: 'All'}) to retrieve camera roll items, ensure it works properly
After selecting an item, try saving a new copy to camera roll using CameraRoll.saveToCameraRoll(item)

Expected Behavior
Photo selected from camera roll would be saved as a new image in camera roll.
Video selected from camera roll would be saved as a new video in camera roll.
Actual Behavior
Videos are saved as a static photo. If 'video' type is passed to CameraRoll.saveToCameraRoll(item, type) then the video does not get saved at all. The video I'm trying to save is a .MOV file (assets-library://asset/asset.mov?id=A9479A56-998A-4E4D-92BC-97A9F60E3930&ext=mov)
Photos are saved properly as static images.
Reproducible Demo
I created an Expo Snack: https://snack.expo.io/ryJvCtFoW
The above will grab the latest video from your device and attempt to save it to camera roll. It alerts the original URI as well as the newly generated URI to show that a .MOV will be saved as a .JPG.

Here too. AlsoCameraRoll.saveToCameraRoll saves animated gif like static images.

I've just experienced this issue saving MP4s (I cannot) and the static gif problem too whilst attempting to use CameraRoll in conjunction with the Giphy API.
Is there a known fix or workaround?

Hola amigos, was having issues with downloading a video using react-native-fetch-blob, and then saving to Camera Roll. Here's how I did it.

Downloading the video to temporary storage

downloadTheVideo() {
    RNFetchBlob
    .config({
      fileCache : true,
      // by adding this option, the temp files will have a file extension
      appendExt : 'mp4'
    })
    .fetch('GET', this.props.video.url)    //<-- url here was like https://aws.s3.videofile.mp4 for example
    .then((res) => {
      this.setState({path: res.path()});
      this.saveToCameraRoll()
    })
  }

Now, the saveToCameraRoll() function I made looks like:

saveToCameraRoll() {
    CameraRoll.saveToCameraRoll(this.state.path).then(Alert.alert('Success', 'Saved to camera roll!'))
  }

Tried a few things, and this is what ended up working for my, so thought I'd share.


Licence for the Ubuntu Mono font

I think that the font files:

pico-playground/scanvideo/textmode/font10.c
pico-playground/scanvideo/textmode/font8.c
pico-playground/scanvideo/textmode/font6.c

include a rendered copy of the font "Ubuntu Mono". If so, the licence (https://ubuntu.com/legal/font-licence) for that font states:

Each copy of the Font Software must contain the above copyright notice and this licence. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.

I Am Not A Lawyer, and maybe rendering a font down to a bitmap doesn't constitute a "copy" of the font, but giving a link to Ubuntu as the source seems reasonable nonetheless. Some notes on how you rendered the font would also be handy, in case anyone wants a different font size.

Some notes on how you rendered the font would also be handy, in case anyone wants a different font size.

Based on the identifier names, it seems to be based on the same structure as https://docs.lvgl.io/latest/en/html/overview/font.html ?

added license


test: Set httpd container workid to Apache's root

It's much more convenient in case you want to log and work within the container.

Thanks @jajik


Mac M1 (arm) support

Currently the provider does not support M1 based Macs.

Hey @bourbonfgiles, it should be easy for me to add this to the goreleaser config. I'll get this included and do a new release shortly

Here you go, the 0.1.1 release provides a darwin/arm64 binary now:
https://github.com/davidsbond/terraform-provider-tailscale/releases/download/v0.1.1/terraform-provider-tailscale_0.1.1_darwin_arm64.zip

Just note there was a breaking change from a previous commit included in the release as well. In the provider block the word tailnet is used instead of domain.
Happy terraforming!

Noted, thanks! :)


How to create bulleted list?

I am trying to use hugo to create a bulleted list in the post like this using markdown.

Red
Green
Blue

It is not generating the bulleted list. How do I get a bulleted list in the generated html?
Thanks

Hi @naveensrinivasan,
Blackfriday, the Markdown processor used by Hugo, needs a blank line between the proceeding paragraph and the start of the list.
So, this would work:
Colors:

* Red
* Green
* Blue

But this doesn't:
Colors:
* Red
* Green
* Blue

Hope this helps!

Thank you! That answered my question.

You can also add two spaces after the line, instead of inserting the blank line prior to the bullet list.

@mohae two spaces did not work for me.
test
- one
- two
- three


Use changeset to handle publishing of packages

With the migration to #939 we need to change the way we handle publishes on github but also on npm.
The tool suggested by turborepo is changeset.
Changeset automates a lot of the tedious actions, for example updating the version manually or creating relevant information on what the PR does.
Changeset
Changing to changeset requires the contributor to add a changeset in its PR. A changeset A changeset is a piece of information about changes made in a branch or commit. It generates a unique file containing different information.
For example:
---
"@meilisearch/instant-meilisearch": minor
---

I did something in this PR

Version Update
When running changeset version all the files are merged into the CHANGELOG of the related package. In the case above it updates (or creates) the CHANGELOG of the @meilisearch/instant-meilisearch package (and not the others).
In our case it would generate this:
# @meilisearch/instant-meilisearch

## 0.11.0

### Minor Changes

- I did something

It also updates the version in the related package based on whether the changesets asked for a major, minor or patch update. In our case, we asked for a minor update, so the package.json of @meilisearch/instant-meilisearch has its version updated to 0.11.0.
Publish
Finally, based on the packages that saw their version updated, the publish function will only publish the affected packages.
Process
We want users to not use changeset publish or changeset version locally. This should be handled by the CI.
changesets has a dedicated github actionto handle that.
In this action we want the following:

On each push to main, the CI should update a PR it created with the updated changelogs and versions. Example
When the PR is merged, the CI should generate both a github release for the related packages (see example) and publish then on npm.

Todo

[ ] Add changesets configuration to the repo
[ ] Update the contributing guide with the new required changeset that has to be added on every PR
[ ] Update the publish CI to follow the process described above
[ ] Handle pre-releases and beta versions

fixed by #965


Update kubesphere/fluent-operator Docker tag to v2.9.0

This PR contains the following updates:

Package
Update
Change

kubesphere/fluent-operator
minor
v2.7.0 -> v2.9.0

[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

Release Notes

fluent/fluent-operator (kubesphere/fluent-operator)
v2.9.0
Compare Source
What's Changed
Features

Feat: Support elastic_data_stream (#1190) @fschlager
Feat: Add storage total limit size to es plugin (#1196) @smallc2009
Feat: Add tag parameter to forward output plugin (#1167) @fschlager
Feat: Support datadog plugin api key to allow for secret injection (#1070) @nitintecg
Feat: Add cloudId and cloudAuth parameters to elastic (#1169) @fschlager

ENHANCEMENT

Updates setup manifests to be compatible with v2.8.0 (#1161) @joshuabaird
Update index.md (#1180) @lansaloni
Upgrade fluentd to 1.17.0. (#1198) @joshuabaird
Update fluentbit to v3.0.7 (#1199) @joshuabaird
Update references to fluentd:1.17.0 image (#1200) @joshuabaird
build(deps): Bump golang.org/x/net from 0.17.0 to 0.23.0 (#1140) @dependabot
build(deps): Bump helm/kind-action from 1.9.0 to 1.10.0 (#1156) @dependabot
build(deps): Bump alpine from 3.19 to 3.20 in /cmd/fluent-watcher/fluentd (#1179) @dependabot
build(deps): Bump golang from 1.22.0 to 1.22.3 in /docs/best-practice/forwarding-logs-via-http (#1191) @dependabot
build(deps): Bump aquasecurity/trivy-action from 0.13.1 to 0.21.0 (#1192) @dependabot

BUGFIX

Fix: missing inputs and clusterInputs CRDs in setup.yaml (#1144) (#1145) @antrema
Fix: bugfix namespaced filters (#1143) @MarkusFreitag
Fix: fix release cycles for fluentd and fluentbit images manually. (#1183) @sarathchandra24
Fix: fix quotes for disable-component-controller argument string in fluent-operator deployment template. (#1160) @nickytd
Fix: fix fluentd path issues. (#1195) @sarathchandra24
Fix: fix fluent-bit image name. (#1201) @joshuabaird

Full Changelog: https://github.com/fluent/fluent-operator/compare/v2.8.0...v2.9.0
v2.9.0
Compare Source
Features

Feat: Support elastic_data_stream (#1190) @fschlager
Feat: Add storage total limit size to es plugin (#1196) @smallc2009
Feat: Add tag parameter to forward output plugin (#1167) @fschlager
Feat: Support datadog plugin api key to allow for secret injection (#1070) @nitintecg
Feat: Add cloudId and cloudAuth parameters to elastic (#1169) @fschlager

ENHANCEMENT

Updates setup manifests to be compatible with v2.8.0 (#1161) @joshuabaird
Update index.md (#1180) @lansaloni
Upgrade fluentd to 1.17.0. (#1198) @joshuabaird
Update fluentbit to v3.0.7 (#1199) @joshuabaird
Update references to fluentd:1.17.0 image (#1200) @joshuabaird
build(deps): Bump golang.org/x/net from 0.17.0 to 0.23.0 (#1140) @dependabot
build(deps): Bump helm/kind-action from 1.9.0 to 1.10.0 (#1156) @dependabot
build(deps): Bump alpine from 3.19 to 3.20 in /cmd/fluent-watcher/fluentd (#1179) @dependabot
build(deps): Bump golang from 1.22.0 to 1.22.3 in /docs/best-practice/forwarding-logs-via-http (#1191) @dependabot
build(deps): Bump aquasecurity/trivy-action from 0.13.1 to 0.21.0 (#1192) @dependabot

BUGFIX

Fix: missing inputs and clusterInputs CRDs in setup.yaml (#1144) (#1145) @antrema
Fix: bugfix namespaced filters (#1143) @MarkusFreitag
Fix: fix release cycles for fluentd and fluentbit images manually. (#1183) @sarathchandra24
Fix: fix quotes for disable-component-controller argument string in fluent-operator deployment template. (#1160) @nickytd
Fix: fix fluentd path issues. (#1195) @sarathchandra24
Fix: fix fluent-bit image name. (#1201) @joshuabaird

v2.8.0
Compare Source
What's Changed
2.8.0 / 2024-04-22
Features

Feat: feat: add multiline parser support for fluentbit (#1100) @ksdpmx
Feat: feat: enforce Fluentd tests (#1110) @antrema
Feat: feat: implement SecretLoader as interface and enforce Fluentd tests u… (#1109) @antrema
Feat: namespaced tag re_emitter parameters support (#1085) @chrono2002
Feat: LUA filter inline code support (#1081) @chrono2002
Feat: feat(disableLogVolumes): expose disableLogVolumes in helm chart (#1082) @L1ghtman2k
Feat: feat(chart): Add operator.extraArgs to add extra args to the fluent-operator container (#1074) @alexandrevilain
Feat: feat(tls): allow overwriting tls for s3  (#1078) @L1ghtman2k
Feat: feat: Emitter storage_type and mem_buf_limit config (#1069) @chrono2002
Feat: Rework fluent-bit-watcher and make use of the hot-reload mechanism (#1051) @markusthoemmes
Feat: Add clusterinput tail resource to support setting bufferMaxSize (#1052) @opencmit2
Feat: feat(1062): Configure logLevel in ClusterFluentBitConfig (#1063) @dennis-ge
Feat: feat: support s3 server side encryption (#1039) @cw-Guo

ENHANCEMENT

Helm multiline passer template and usage (#1138) @onecer
make lua scripts code and script optional (#1129) @onecer
MultilineParser achieve an effect similar to embedding by using anonymous structs (#1133) @onecer
helm template fluentbit output es support logstashPrefixKey (#1119) @onecer
Add Profile field for Fluent bit S3 output (#1127) @jeff303
auto gen plugins documentation directory (#1121) @onecer
build(deps): Bump google.golang.org/protobuf from 1.28.1 to 1.33.0 (#1091) @dependabot
build(deps): Bump actions/cache from 3 to 4 (#1055) @dependabot
build(deps): Bump actions/setup-go from 4 to 5 (#1034) @dependabot
build(deps): Bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 (#1028) @dependabot
build(deps): Bump golang from 1.21.4 to 1.22.0 in /docs/best-practice/forwarding-logs-via-http (#1077) @dependabot
build(deps): Bump helm/kind-action from 1.8.0 to 1.9.0 (#1076) @dependabot
build(deps): Bump azure/setup-helm from 3 to 4 (#1075) @dependabot
build(deps): Bump actions/setup-python from 4 to 5 (#1035) @dependabot
build(deps): Bump arm64v8/ruby from 3.2-slim-bullseye to 3.3-slim-bullseye in /cmd/fluent-watcher/fluentd (#1032) @dependabot
HostNetwork DNS Policy (#1101) @opp-svega
adds servicemonitor (#1089) @chrono2002
push image to multiple registry (#1079) @sarathchandra24
fluentbit/output/elasticsearch: Add writeOperation option (#1080) @icy
Bump fluent-bit to 2.2.2 (#1053) @markusthoemmes
Bump Golang version to 1.21 and replace slice utils with stdlib (#1049) @markusthoemmes
Add stackdriver output to the Helm Chart (#1040) @UgurcanAkkok

BUGFIX

Fix: Passing variables to es output config is fixed (#1099) @aido93
fix fluent-operator clusterrole in manifests directory (#1098) @Cajga
fix: delete remaining debug traces (#1107) @antrema
fix: ordered fluentd-config #1104 (#1106) @antrema
Fix 1090: Path issues (#1093) @sarathchandra24
fix: no Path default value for memory buffer #1103 (#1105) @antrema
fix build args fluentd image (#1095) @sarathchandra24
Fix: attach latest tag to images - DockerHub synchronize with GHCR (#1086) @sarathchandra24
fix: incorrect fields in syslog input plugin parameters (#1084) @lukasboettcher
fix(fluentd): Use custom plugin content for hash generation (#1059) @MisterMX
fix prometheus-remote-write-edge templates error (#1036) @JiaweiGithub
Fixed the .spec.loki.tls map rendering in FluentBit loki ClusterOutput (#1031) @isemichastnov

Full Changelog: https://github.com/fluent/fluent-operator/compare/v2.7.0...v2.8.0
v2.8.0
Compare Source
Features

Feat: feat: add multiline parser support for fluentbit (#1100) @ksdpmx
Feat: feat: enforce Fluentd tests (#1110) @antrema
Feat: feat: implement SecretLoader as interface and enforce Fluentd tests u… (#1109) @antrema
Feat: namespaced tag re_emitter parameters support (#1085) @chrono2002
Feat: LUA filter inline code support (#1081) @chrono2002
Feat: feat(disableLogVolumes): expose disableLogVolumes in helm chart (#1082) @L1ghtman2k
Feat: feat(chart): Add operator.extraArgs to add extra args to the fluent-operator container (#1074) @alexandrevilain
Feat: feat(tls): allow overwriting tls for s3  (#1078) @L1ghtman2k
Feat: feat: Emitter storage_type and mem_buf_limit config (#1069) @chrono2002
Feat: Rework fluent-bit-watcher and make use of the hot-reload mechanism (#1051) @markusthoemmes
Feat: Add clusterinput tail resource to support setting bufferMaxSize (#1052) @opencmit2
Feat: feat(1062): Configure logLevel in ClusterFluentBitConfig (#1063) @dennis-ge
Feat: feat: support s3 server side encryption (#1039) @cw-Guo

ENHANCEMENT

Helm multiline passer template and usage (#1138) @onecer
make lua scripts code and script optional (#1129) @onecer
MultilineParser achieve an effect similar to embedding by using anonymous structs (#1133) @onecer
helm template fluentbit output es support logstashPrefixKey (#1119) @onecer
Add Profile field for Fluent bit S3 output (#1127) @jeff303
auto gen plugins documentation directory (#1121) @onecer
build(deps): Bump google.golang.org/protobuf from 1.28.1 to 1.33.0 (#1091) @dependabot
build(deps): Bump actions/cache from 3 to 4 (#1055) @dependabot
build(deps): Bump actions/setup-go from 4 to 5 (#1034) @dependabot
build(deps): Bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 (#1028) @dependabot
build(deps): Bump golang from 1.21.4 to 1.22.0 in /docs/best-practice/forwarding-logs-via-http (#1077) @dependabot
build(deps): Bump helm/kind-action from 1.8.0 to 1.9.0 (#1076) @dependabot
build(deps): Bump azure/setup-helm from 3 to 4 (#1075) @dependabot
build(deps): Bump actions/setup-python from 4 to 5 (#1035) @dependabot
build(deps): Bump arm64v8/ruby from 3.2-slim-bullseye to 3.3-slim-bullseye in /cmd/fluent-watcher/fluentd (#1032) @dependabot
HostNetwork DNS Policy (#1101) @opp-svega
adds servicemonitor (#1089) @chrono2002
push image to multiple registry (#1079) @sarathchandra24
fluentbit/output/elasticsearch: Add writeOperation option (#1080) @icy
Bump fluent-bit to 2.2.2 (#1053) @markusthoemmes
Bump Golang version to 1.21 and replace slice utils with stdlib (#1049) @markusthoemmes
Add stackdriver output to the Helm Chart (#1040) @UgurcanAkkok

BUGFIX

Fix: Passing variables to es output config is fixed (#1099) @aido93
fix fluent-operator clusterrole in manifests directory (#1098) @Cajga
fix: delete remaining debug traces (#1107) @antrema
fix: ordered fluentd-config #1104 (#1106) @antrema
Fix 1090: Path issues (#1093) @sarathchandra24
fix: no Path default value for memory buffer #1103 (#1105) @antrema
fix build args fluentd image (#1095) @sarathchandra24
Fix: attach latest tag to images - DockerHub synchronize with GHCR (#1086) @sarathchandra24
fix: incorrect fields in syslog input plugin parameters (#1084) @lukasboettcher
fix(fluentd): Use custom plugin content for hash generation (#1059) @MisterMX
fix prometheus-remote-write-edge templates error (#1036) @JiaweiGithub
Fixed the .spec.loki.tls map rendering in FluentBit loki ClusterOutput (#1031) @isemichastnov

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update (v2.9.0). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


Python VENV path not updating

Type: Bug
I have a python script I've been working on for about a week. Last week I ran the script on Wednesday (3/27/24), but when I tried to run that script yesterday 4/1/24, VSCode could not find my Venv. The VENV can be found in the directory shared with the script. I went throught the process of pointing VSCode to the path and no error or update happens with /bin/python or /bin/python3 and just defaults to the OS version of Python. I have also removed the preview VENV and when throught the process of standing one up again. I can source the VENV via cmd line but on VSCode the syntax compliar does not see it, so you see red for missing imports.
 It looks like you may be using an old version of VS Code, the latest stable release is 1.87.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Hello, updated to the current version and still the issue persists.
On Tuesday, April 2, 2024 at 08:46:26 AM CDT, VSCode Triage Bot<EMAIL_ADDRESS>wrote:

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.87.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Please file this on the repo for the Python extension


Recall's RecallMark sign clearing code also clears all other signals in Neovim on buf enter

I initially thought this was a problem with Neogit (https://github.com/NeogitOrg/neogit/issues/1194) but it's just a bug in Recall. Oops!

Fixed in 4e844601dd1387f1dad1b4bd555ad8a2ac817d8e


12.0 multi session

related with https://github.com/it-projects-llc/pos-addons/pull/807

Please rebase to upstream to restart travis with proper configuration


[joss] Tests?

Hey! Sorry for the long delay. just started a new job and things have been hectic.
Orienting myself to the package, and I can't seem to find any tests? JOSS doesn't have a minimum test coverage requirement or anything like that, but it does ask that essential functionality is tested, and I have interpreted that in the past as meaning unit tests that cover most of the major operations described in the docs and the paper.
I'll tag all my issues from the review with [joss] and also link back to the review so we can track them from there
Part of:
https://github.com/openjournals/joss-reviews/issues/5266

Hi @sneakers-the-rat ! Thanks for your feedback! I've been wanting to add unit tests for some time (#94).
I will prioritize it so they are implemented for the main features of the library.
Otherwise, the core operations of the library can also be verified using the CLI interface: diart.stream for the microphone and individual files, and diart.benchmark to reproduce the performance that we claim (e.g. on the AMI dataset).

I'd be happy to make a pull request adding some tests as examples, if you haven't written them before :)

That would be awesome, thank you!

Here's an example test for the config:
https://github.com/sneakers-the-rat/diart/commit/b1a0ccaa35f8b36aa30f978a4bcb16db69652a42
after installing with [tests], one can run pytest from the repo root to run the tests. Gave an example of using test fixtures for random value init to test that the inputs arent being ignored and defaults substituted

I offered to help with how to write tests! So am happy to answer questions/give examples here :)

Test PR #237 has been merged and will be included in the next release (v0.10)


Refactor Handlebars logic to use new logic helpers

Commit e8d49330f2723cb4619dbd5 added the new not, and, and or logic helpers for usage in Handlebars templates. Although it modified some logic in some templates, a bunch of other templates using a complex mix of if and unless statements to evaluate logic could use also use refactoring.
Regex searches show these templates as using complicated logic, but there may be more:

[ ] account_settings.hbs
[ ] stream_settings_checkbox.hbs

For extremely complicated logic with multiple and/or/not conditionals, it might be better to just rewrite the logic in a JS function instead of making Handlebars do the work (see d2f1c84001a893c for an example).

@YJDave this is probably a good project for you.

@zulipbot claim


🔨 feat: Make helm chart for deployement

Pull Request Test Coverage Report for Build #94

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

Totals

Change from base Build #91:
0.0%

Covered Lines:
372

Relevant Lines:
373

💛  - Coveralls


Cannot import biom file in R

I am new to biome file and try to download the biom here for testing. I have click and save the raw file into my hardisk and tried to open it in R using phyloseq and biom package but it returns :
"Error in fromJSON(content, handler, default.size, depth, allowComments,  :
invalid JSON input"
I have copied and paste an example url (https://github.com/biocore/American-Gut/blob/master/data/HMP/HMPv35_100nt.biom) to some jason validator on web but it return a error.
Would you instruct on some materials that I can start with working biom files from here? Thank you so much!
Regards,
Carol

These BIOM tables conform to BIOM Format 2.1 spec. It looks like there is a
discussion on the phyloseq tracker about updated support, see here:
https://github.com/joey711/phyloseq/issues/443
I am new to biome file and try to download the biom here for testing. I
have click and save the raw file into my hardisk and tried to open it in R
using phyloseq and biom package but it returns :
"Error in fromJSON(content, handler, default.size, depth, allowComments, :
invalid JSON input"
I have copied and paste an example url (
https://github.com/biocore/American-Gut/blob/master/data/HMP/HMPv35_100nt.biom)
to some jason validator on web but it return a error.
Would you instruct on some materials that I can start with working biom
files from here? Thank you so much!
Regards,
Carol
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/American-Gut/issues/145.

As suggested in that thread, the best alternative at the moment would be
to convert the tables to JSON-formatted files.
On (Apr-11-15|14:31), Daniel McDonald wrote:

These BIOM tables conform to BIOM Format 2.1 spec. It looks like there is a
discussion on the phyloseq tracker about updated support, see here:
https://github.com/joey711/phyloseq/issues/443
I am new to biome file and try to download the biom here for testing. I
have click and save the raw file into my hardisk and tried to open it in R
using phyloseq and biom package but it returns :
"Error in fromJSON(content, handler, default.size, depth, allowComments, :
invalid JSON input"
I have copied and paste an example url (
https://github.com/biocore/American-Gut/blob/master/data/HMP/HMPv35_100nt.biom)
to some jason validator on web but it return a error.
Would you instruct on some materials that I can start with working biom
files from here? Thank you so much!
Regards,
Carol
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/American-Gut/issues/145.

Reply to this email directly or view it on GitHub:
https://github.com/biocore/American-Gut/issues/145#issuecomment-91929001

Thank you very much! It seems works!
However, I've tried to convert the biom file downloaded to the txt format and it shows the following:

biom convert -i HMPv35_100ntj.biom -o HMPv35_100nt_tab.txt --table-type "otu table"
Traceback (most recent call last):
File "/usr/bin/pyqi", line 184, in
optparse_main(cmd_obj, argv[1:])
File "/usr/lib/python2.7/site-packages/pyqi/core/interfaces/optparse/init.py", line 275, in optparse_main
result = optparse_cmd(local_argv[1:])
File "/usr/lib/python2.7/site-packages/pyqi/core/interface.py", line 39, in call
cmd_result = self.CmdInstance(**cmd_input)
File "/usr/lib/python2.7/site-packages/pyqi/core/command.py", line 137, in call
result = self.run(**kwargs)
File "/usr/lib/python2.7/site-packages/biom/commands/table_converter.py", line 219, in run
raise CommandError(convert_error_msg)
pyqi.core.exception.CommandError: Input does not look like a classic table. Did you forget to specify that a classic table file should be created from a BIOM table file?

It seems that the BIOM table file is not a classic one, how can I solve this? Thanks a lot!

Are you using biom v 1.3.1 for the conversion? If so, then you will not be able to convert a biom 2.x file. For instance, I was able to run the following just now:
$ biom convert --version
Version: biom convert 2.1.3-dev
$ biom convert -i AG.biom -o AG.biom1x --to-json --table-type='OTU table'

I'd be happy to host 1.x formatted tables on ftp.microbio.me but not within the Github repository as it is already hosting more data than it really ought to be.

@arcys, is this still an issue or can this be closed?

It is done, thx!
On Fri, Oct 23, 2015 at 1:17 AM, Daniel McDonald<EMAIL_ADDRESS>wrote:

@arcys https://github.com/arcys, is this still an issue or can this be
closed?
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/American-Gut/issues/145#issuecomment-150295265
.

Thanks!


Upgrade from 0.58.0 to 0.59.0 removed access logs from cloudwatch

Context
Hi there!
I'm using zappa on a project for more than 3 years, so first of all thanks for your hard work!
On my last deployment, I've upgraded zappa version from 0.58.0 to 0.59.0 (python 3.8/django 4.1.9/aws lambda), and form that time I stopped from see the access logs of the HTTP server in the aws cloudwatch logs

Expected Behavior
zappa tail STAGE should show access logs

Actual Behavior
zappa tail STAGE doesn't show access log, the access logs are not available in the AWS cloudwatch

Possible Fix

Steps to Reproduce

Your Environment

Zappa version used: 0.59.0
Operating System and Python version: amazon/aws-lambda-python:3.8 docker
The output of pip freeze:
Link to your project (optional):
Your zappa_settings.json:

Hi. If helpful, I believe I experience this issue too. Upgraded requirements some days ago and discovered this morning my logs in Cloudwatch from the Zappa deployment were gone. What worked for me in the end: downgrading zappa 0.59 to 0.58 again.
Expected Behavior
When I set "log_level": "INFO" in zappa_settings, INFO log records are shown in CloudWatch for both 0.58.0 and 0.59.0
Actual Behavior
When I set "log_level": "INFO" no INFO log records are shown in CloudWatch when on 0.59.0 – but they do show on 0.58.0.
Your Environment
Zappa version used: 0.59.0 -> No INFO logs here, I did spot a WARNING log though
Zappa version used: 0.58.0 -> INFO logs show as expected
Web service type: Django 4.2
Operating System and Python version: amazon/aws-lambda-python:3.8 docker
Your zappa_settings.json: These settings might be relevant, but note that I kept them consistent for the two version
        "log_level": "INFO",
        "cloudwatch_log_level": "INFO",

Downgrading fixed my problem for now, so just reporting if the extra context is helpful 👍

#1277 seems like the only logging related change in the diff in between versions. If no-one wants to dig into why this is happening perhaps that can be reverted to prevent more people pinning their zappa version?

@elip-OE   To work around this breaking change, you can copy the configured log_level from Zappa's handler.py into your root logger (app.py):
app = Flask(__name__)

# work around breaking change in https://github.com/zappa/Zappa/pull/1277
# by copying the log level from zappa's logger (now called "handler") up to the root logger
zappa_log_level = logging.getLogger("handler").level
logging.getLogger().setLevel(zappa_log_level)

logging.info("This log message should appear in the Lambda cloudwatch logs if Zappa's log_level=INFO")

This change in #1277 is no longer setting the root log level from the zappa_settings log_level.  This change also broke my application: my logs were all missing after upgrading to 0.59.0.
The system now sets the log_level on a child logger called handler, because handler.py is invoked by lambda from the root the packaged ZIP file.
Previously, the system would set the log_level for the root logger, which is behavior all my apps rely on.   This means the root logger is probably still defaulting to logging.WARNING, not a more verbose level that you may have specified in zappa_settings log_level.
Thanks to @paulclarkaranz for pointing out the P/R that introduced the breaking change happened.
I doubt that PR #1277 was intended to be a breaking change, but for all of us that use logging.info() in our app code (root logger), with Zappa's log_level="INFO", the change caused all of our logs to disappear, because Zappa is no longer setting the root log level.

Thanks @ceturc that worked great!

Hi Zappa Maintainers - any interest in merging P/R #1347  to fix this issue introduced in 0.59.0?


Date validation issue

Date validation fails in the following scenario. If we mention date like 12/31/20104 or 25/05/2014 validation is not firing.

The first one isn't a valid date and the second one fails jquery validation (which basically just tries to do new Date(val) and see if it is legal. Depending on your browser culture that second value is also not valid.


OpenApi responses

Dear all,
thanks for your great work on Javalin. I am rather new to javalin and I am currently trying to figure out what is the best way to document the response of a service I am developing. Basically, I have created two kinds of messages, error messages and success messages, which have a common structure. Both of them are records, and they have a title, status code, type, and details which is the actual response of the service. The details field in the case of the error is a map with specific errors, while in the case of success it should be the actual object that will be deserialized in json.  Specifically:
 public record ErrorResponse(String title, int status, String type, Map<String, String> details) {
     public ErrorResponse(String title, int status, String type, Map<String, String> details) {
         Objects.requireNonNull(title);
         Objects.requireNonNull(type);

         this.title = title;
         this.status = status;
         this.type = type;
         if (details == null) {
             this.details = new HashMap<>();
         } else {
             this.details = details;
         }
     }
 };

public record SuccessResponse(String title, int status, String type, Object details) {
   public SuccessResponse(String title, int status, String type, Object details) {
       Objects.requireNonNull(title);
       Objects.requireNonNull(type);

       this.title = title;
       this.status = status;
       this.type = type;
       if (details == null) {
           this.details = new Object();
       } else {
           this.details = details;
       }
   }
};

My problem is that using the OpenApi DSL I am not able to specify what kind of object is returned by the service for each different end-point that I implement, so that I can return the appropriate json representation for each class. The swagger UI for the success messages returns something like what is shown in the picture.

So, is it possible to somehow populate the types with specific values (i.e., status should be 20X, specific title) and serialize the details Object with a representation of the corresponding class that I want to return? I would like to avoid creating different records for each response
Best

It sounds like you want have a generic parameter on your SuccessResponse that would specify the detail type that could be used for the docs. Unfortunately I don't think that's possible using Java (obviously things like Jackson/Gson have typeTokens to get around type erasure, but I don't think this one does), and probably not easy using Kotlin either. We have a similar response model where we return Json objects that are always wrapped {"data": specific response model/type} .
We have ended up just making a different model per response, which is kind of annoying, but was by far the most straight forward. In our case the response models (or DTO classes) are a single line in the same file with Kotlin. The closest you could probably do in Java would be to make them an internal class? You could even add a method on the regular class called toSuccessResponse on your detail model. Make a base class for success responses etc. It's definitely going to clutter up your response models a little bit, but it's probably not much less clean than the alternative if it did exist of annotating your metod with a responses = new TypeReference<SuccessResponse<Foo>>() {};.
That said, something like the above might be there, I believe Jackson is used to generate the docs and obviously it does handle those things. If it is there it may look very similar to the above, and I'd be very interested if someone else knows how it works!

It sounds like you want have a generic parameter on your SuccessResponse that would specify the detail type that could be used for the docs. Unfortunately I don't think that's possible using Java (obviously things like Jackson/Gson have typeTokens to get around type erasure, but I don't think this one does), and probably not easy using Kotlin either. We have a similar response model where we return Json objects that are always wrapped {"data": specific response model/type} .
We have ended up just making a different model per response, which is kind of annoying, but was by far the most straight forward. In our case the response models (or DTO classes) are a single line in the same file with Kotlin. The closest you could probably do in Java would be to make them an internal class? You could even add a method on the regular class called toSuccessResponse on your detail model. Make a base class for success responses etc. It's definitely going to clutter up your response models a little bit, but it's probably not much less clean than the alternative if it did exist of annotating your metod with a responses = new TypeReference<SuccessResponse<Foo>>() {};.
That said, something like the above might be there, I believe Jackson is used to generate the docs and obviously it does handle those things. If it is there it may look very similar to the above, and I'd be very interested if someone else knows how it works!

Maybe think about it in the other direction by providing the swagger that you are hoping for / expecting to be generated (and then the question is how do I use the DSL and API to generate this swagger)?
I'm surprised to see the Object details in the success response where details as an Object type rather than using generics) but I probably am misunderstanding the question.
I think a question that might come up is whether the error response(s) are for a specific endpoint or apply to all endpoints.

Maybe think about it in the other direction by providing the swagger that you are hoping for / expecting to be generated (and then the question is how do I use the DSL and API to generate this swagger)?
I'm surprised to see the Object details in the success response where details as an Object type rather than using generics) but I probably am misunderstanding the question.
I think a question that might come up is whether the error response(s) are for a specific endpoint or apply to all endpoints.

It seems that the best way is to create the corresponding records internally in each controller and use these records for OpenApi documentation only. The responses can be created using the original SuccessResponse record by passing the appropriate instances as details.
Using TypeLiteral from Guice needs instances to bind them to types, so they can't be used in the annotations that expect constant expressions.

It seems that the best way is to create the corresponding records internally in each controller and use these records for OpenApi documentation only. The responses can be created using the original SuccessResponse record by passing the appropriate instances as details.
Using TypeLiteral from Guice needs instances to bind them to types, so they can't be used in the annotations that expect constant expressions.


[training] configurable recompute

After #366, we will have basic setup for training with recompute. However, the implemented recompute works on the whole graph only, and creates recompute nodes for each of the ops in the forward pass.
For this to be useful, we at least need a way to manually define ops (chain of ops) to be recomputed.

After this is implemented, the next step would be to have logic for automatically deciding what to recompute.


Semantically different queries generated in some cases depending on usage of comparison functions vs. operators in complex criteria

I ran into an issue in which the where clause in one of my queries didn't include parentheses to group an ORed criterion that then ANDed with another criterion.  In other words, I wanted (A | B) & C, but I got A | B & C
This resulted in a query that returned unexpected results, because the lack of parentheses meant it was interpreted as meaning A | (B & C) instead of the desired (A | B) & C, due to AND having higher precedence than OR.
The lack of parentheses seemed inconsistent with my experience with pypika so far, and when I investigated further I found that the generated SQL actually varies depending on whether the second criterion in the ORed complex criterion uses an operator (<, ==) or a function (lt(), eq()).
Here is some ugly demo code:
from datetime import datetime

from pypika import Query, Table
from pypika.functions import DateDiff
from pypika.enums import DatePart

def generate_queries():
    def print_queries():
        print('with == operator:', q_with_op)
        print('with eq function:', q_with_func)

    tbl = Table('query_tbl', schema='scm')
    base_q = Query.select(tbl.a).from_(tbl)
    date_diff = DateDiff(DatePart.minute, tbl.a, datetime.now())

    q_with_op = base_q.where(tbl.a.isnull() | date_diff == 0)
    q_with_func = base_q.where(tbl.a.isnull() | date_diff.eq(0))
    print_queries()

    q_with_op = q_with_op.where(tbl.d.isnull())
    q_with_func = q_with_func.where(tbl.d.isnull())
    print_queries()

generate_queries()

Here is the output:
with == operator: SELECT "a" FROM "scm"."query_tbl" WHERE "a" IS NULL OR DATEDIFF(MINUTE,"a",'2019-08-21T09:54:27.399709')=0
with eq function: SELECT "a" FROM "scm"."query_tbl" WHERE "a" IS NULL OR DATEDIFF(MINUTE,"a",'2019-08-21T09:54:27.399709')=0
with == operator: SELECT "a" FROM "scm"."query_tbl" WHERE "a" IS NULL OR DATEDIFF(MINUTE,"a",'2019-08-21T09:54:27.399709')=0 AND "d" IS NULL
with eq function: SELECT "a" FROM "scm"."query_tbl" WHERE ("a" IS NULL OR DATEDIFF(MINUTE,"a",'2019-08-21T09:54:27.399709')=0) AND "d" IS NULL

You can see that when I only add the two ORed criteria, the generated SQL is identical regardless of whether I use == 0 or .eq(0).  However, after I call where() again to add a new criterion, the initial complex criterion is enclosed in parentheses if it ended with a .eq() call, but not if it ended with a usage of ==.
I've reproed this with .lt() vs < as well.

this is the problem: tbl.a.isnull() | date_diff == 0
Since the | and & are viewed as bitwise operators in python, they take precedence in the order of operations, so it's going to evaluate tbl.a.isnull() | date_diff first, then the result of that ... == 0 afterwards. This is a python language spec, so there isn't much that can be done about it.
To get around this, you can wrap your python expressions in parenthesis when using the bitwise operators tbl.a.isnull() | (date_diff == 0)

Ah, makes sense. I appreciate the explanation.


Update Banner.tsx

Remove the use of --space tokens

Related to https://github.com/primer/primitives/pull/956

Changelog
Replaced space token with equal base size token.
Rollout strategy

[ ] Patch release
[ ] Minor release
[ ] Major release; if selected, include a written rollout or migration plan
[x] None; if selected, include a brief description as to why

It should have no impact on the users.
Testing & Reviewing

Merge checklist

[ ] Added/updated tests
[ ] Added/updated documentation
[ ] Added/updated previews (Storybook)
[ ] Changes are SSR compatible
[ ] Tested in Chrome
[ ] Tested in Firefox
[ ] Tested in Safari
[ ] Tested in Edge
[ ] (GitHub staff only) Integration tests pass at github/github (Learn more about how to run integration tests)

@lukasoppermann when you have a sec, could you add a changeset as a patch that talks about the changes to the CSS Custom Properties used? Thanks!

@joshblack do we want a release for this? There is no change to the output.


DOMException: Failed to execute 'remove' on 'DOMTokenList': The token provided must not be empty.

I think that the problem is most likely caused by this plugin not being up to date :-)

This is the code that creates the exception
<markdown>
            ```
            <input au-kendo-autocomplete="data-source.bind: datasource;
                                data-text-field: ProductName;
                                filter: contains;
                                min-length: 3" value.bind="value" style="width: 300px"></input>
            ```
          </markdown>

The generated output is:
<input au-kendo-autocomplete="data-source.bind: datasource;
                    data-text-field: ProductName;
                    filter: contains;
                    min-length: 3" value.bind="value" style="width: 300px">

Note the missing </input>
Here is the stack trace
DEBUG [templating] importing resources for http://localhost:3000/src/autocomplete/remote-data.html ["gooy/aurelia-markdown"]
aurelia-templating.js:3892 The @skipContentProcessing decorator is deprecated and will be removed in a future release. Please use @processContent(false) instead.
jquery.js:5562 /deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.
aurelia-logging-console.js:62 ERROR [app-router] DOMException: Failed to execute 'remove' on 'DOMTokenList': The token provided must not be empty.
    at Error (native)
    at Markdown.valueChanged (http://localhost:3000/jspm_packages/github/gooy/aurelia-markdown@0.0.3/markdown.js:65:28)
    at Markdown.attached (http://localhost:3000/jspm_packages/github/gooy/aurelia-markdown@0.0.3/markdown.js:40:16)
    at BehaviorInstance.attached (http://localhost:3000/jspm_packages/github/aurelia/templating@0.15.3/aurelia-templating.js:2539:29)
    at View.attached (http://localhost:3000/jspm_packages/github/aurelia/templating@0.15.3/aurelia-templating.js:959:22)
    at View.attached (http://localhost:3000/jspm_packages/github/aurelia/templating@0.15.3/aurelia-templating.js:964:21)
    at ViewSlot.attached (http://localhost:3000/jspm_packages/github/aurelia/templating@0.15.3/aurelia-templating.js:1349:15)
    at View.attached (http://localhost:3000/jspm_packages/github/aurelia/templating@0.15.3/aurelia-templating.js:964:21)
    at ViewSlot.add (http://localhost:3000/jspm_packages/github/aurelia/templating@0.15.3/aurelia-templating.js:1207:14)
    at RouterView.swap (http://localhost:3000/jspm_packages/github/aurelia/templating-router@0.16.1/router-view.js:68:21)error @ aurelia-logging-console.js:62log @ aurelia-logging.js:56error @ aurelia-logging.js:89processResult @ aurelia-router.js:1726(anonymous function) @ aurelia-router.js:1582run @ es6.promise.js:91(anonymous function) @ es6.promise.js:105module.exports @ $.invoke.js:6queue.(anonymous function) @ $.task.js:40run @ $.task.js:27listner @ $.task.js:31
aurelia-logging-console.js:62 ERROR [app-router] Router navigation failed, and no previous location could be restored.

Apologies - this was a false alarm, as I failed to understand that markdown custom element would not see this
<markdown>
            ```
            <input au-kendo-autocomplete="data-source.bind: datasource;
                                data-text-field: ProductName;
                                filter: contains;
                                min-length: 3" value.bind="value" style="width: 300px"></input>
            ```
</markdown>

bur rather the inner html (browser would strip <input tag). Luckily, Charles Pockert thought of a nice trick to hide the html code we wanted markdown to process (echo to the output) in a textarea element


Unclosed Statement and ResultSet Resources

After working on issue #4080, we reliazed that Statement and ResultSet resources are not properly closed inside any of the DatabaseService classes.
A Pull Request has already been made by us for the MariaDBDatabaseService class, but the same issue seems to appear on MySQLDatabaseService, SQLiteDatabaseService, etc.
Current Results

Statement and ResultSet instances are not handled properly after they are created
Expected Behavior

Statement and ResultSet resources are closed in a proper way (try-with-resources / finally-block)
Screenshots

Hey @wetneb.
I saw that you left a comment on the Pull Request created by shihlei. If you do not manage to reach her, could you please assign this issue to me?
I will provide a fix similar to the one I did before at https://github.com/OpenRefine/OpenRefine/commit/bbd7c955975557c2c5b00db44e0fdb2da82f98bf
Thanks in advance! :)

sure!


Incorrect JavaScript highlight when block comment is next to the regexp

VSCode Version: 1.23.1 d0182c3417d225529c6d5ad24b7572815d0de9ac x64
OS Version:  Manjaro 17.1.10 Hakoila

Steps to Reproduce:

Lauch with code --disable-extensions
Create an empty file with Ctrl + N
Enter var foo = /bar//* test */
Change language mode to JavaScript with Ctrl + K M

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

actually saw

This issue was moved to Microsoft/TypeScript-TmLanguage#623


Fix leaving room a room when  the split bill with multiple participants

@johncschuster , @allroundexperts
Details

Fix leaving a room from multiple devices and fix regression when splitting the bill
Fixed Issues

$ https://github.com/Expensify/App/issues/21518
$ https://github.com/Expensify/App/issues/22964
PROPOSAL: https://github.com/Expensify/App/issues/21518#issuecomment-1621007692
Tests

Open a room on the web and on another device (e.g. Android) using the same account
Click room details and click Leave Room on one of the devices (e.g. web)
The user should leave the room on both devices

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

Offline tests

Open a room on the web and on another device (e.g. Android) using the same account
disconnect the internet on both
Click room details and click Leave Room on one of the devices (e.g. web)
At this point the user should only leave a room in the web version only.
re-connect the internet connection
The user should leave the room on both devices

QA Steps

Open a room on the web and on another device (e.g. Android) using the same account
Click room details and click Leave Room on one of the devices (e.g. web)
The user should leave the room on both devices

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

PR Author Checklist

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

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

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

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

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

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

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

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

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

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

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/11847279/13f547dd-d4dd-4218-a2da-88473fee328f

Mobile Web - Chrome

https://github.com/Expensify/App/assets/11847279/87b85eea-887e-4cf9-8b12-245c42078380

Mobile Web - Safari
https://github.com/Expensify/App/assets/11847279/34aa8ec8-ee0a-4274-9438-1bd684351d13

Desktop

https://github.com/Expensify/App/assets/11847279/10a6615f-e218-44a8-b0fd-6281f17515ac

iOS

https://github.com/Expensify/App/assets/11847279/e325f208-b023-4f3d-9f6d-7e8ab3745efb

Android

https://github.com/Expensify/App/assets/11847279/f9acf3c7-e9a9-4e37-b547-8ebe377046d1

@allroundexperts I've proposed this PR to fix the regression.
I think we have to scope the logic to only a report that can be leaved, the additional logic is adopted from here:
https://github.com/Expensify/App/blob/5a07bc0de5874372bd16cec322e1bef7effece66/src/pages/ReportDetailsPage.js#L114
Please let me know your thoughts

@Nikhil-Vats will your activities will cancel/discard report creation when an error occurred? If yes then the redirection issue should be resolved once we can distinguish the type of report removal from the backend.
@allroundexperts, can we proceed with the backend change?

@allroundexperts I also wanted to confirm if you are also handling this scenario as per your comment https://github.com/Expensify/App/issues/22964#issuecomment-1646678378 -

@Nikhil-Vats @allroundexperts It seems that 404 has a different root cause and will not be directly fixed here, what we will fix is regression related to navigating to the concierge chat which should only apply after the user leaves a room. (not caused by report creation cancelation)

Moving here: https://github.com/Expensify/App/pull/24407


Extendability

Add way for new methods to be added by 3rd party extensions.
Example of use: using a custom method in a private extension.

You mean custom adapters?

Yes

Not sure all 3rd party file hosting providers use the same auth.
Any resources that could help a dev get a head start with adding other providers would be awesome. Like a tutorial for creating just an imgur source would give people an idea of what is required. If wishes were free...

@dav-is would it be sufficient to just show the adapter in the dropdown? It would be a lot more complicated to also allow the adapter to be configured within the extension..

See here

Could use an event based system for loading adapters.

@dav-is would it be sufficient to just show the adapter in the dropdown? It would be a lot more complicated to also allow the adapter to be configured within the extension..
In my case, there won't be any user configuration as all the authentication keys will be inserted into the database at install, but I'm not sure about other cases.

@dav-is your comment about Events made sense too btw. I'll take it into consideration, if you are up to it, feel free to PR it. Otherwise I'll have to make some time available to implement this a bit better.
Any ETA you need this @dav-is ?

A month or two. Not a huge rush but I appreciate your consideration! :)

@dav-is does this event suffice? It allows you to assign any adapter whenever you like using event properties for conditionals.

merged


pkg/k8s: add conversion for DeleteFinalStateUnknown objects

As k8s watchers can return DeleteFinalStateUnknown objects, cilium needs
to be able to convert those object types into DeleteFinalStateUnknown
where its internal Obj is also converted into private cilium types.
Fixes: 027ccdc31d11 ("pkg/k8s: add converter functions from k8s to cilium types")
Signed-off-by: André Martins<EMAIL_ADDRESS>

This change is

Coverage increased (+0.2%) to 44.477% when pulling 92a775a626130bcda148bc73eb3027dd4925343e on pr/fix-k8s-del-objs into 9e07a66f193d8c7cdb55f83ff6535a82a15d66f8 on master.

test-me-please

test-me-please


SDK-353: Do not export zlib/OpenSSL etc. symbols from the dylib on Mac

No asm for Linux and Darwin

https://boringssl.googlesource.com/boringssl/+/eb7d2ed1fe8a33b3e3871502ba7e12efaf94360c
https://bugs.chromium.org/p/chromium/issues/detail?id=398965
looks like boringssl dealt with this issue before
let's create an issue for restoring asm support


User-defined histogram binning

It would be nice if in FisherInformation and / or AsymptoticLimits we could use a user-defined histogram binning, rather than the equal-sized or equal-xsec binnings we support right now.

Implemented in 08620cc3e499eb3ab149cbb467bd2988f0239c2f for FisherInformation

Implemented in 9b4eea39eee4e6dc1ff58ee8caabed6e22d4e744 for AsymptoticLimits


Suggestion: config to disable potion tooltips

The mod currently adds tooltips to potions too, which should be mentioned on the modpage(s).
"display_on_books_only" seems to effect potions as well as books.

Thanks for the heads-up about the project descriptions, I've updated them to mention this fact. As for the option you're suggesting - I'm a bit bewildered why you'd want it. Given that adding descriptions to things is literally the core feature of this mod it seems a bit... counterproductive to disabled them. What's your potential use-case?
Cheers

Simply put, I have another mod that does the same: ZenithAttributes. I actually made the same issue on that repo, but the developer hasn't been very responsive to that repo's issues. Either mod adding the option would solve my particular problem

Seeing as adding descriptions is, well, the purpose of this mod and that ZenithAttributes has added an option on their side, I'll be closing this
Cheers


Add plugin loader

This PR adds a point for loading plugins which is automatically invoked during initialization of "engine" folder.
A plugin is expected to be a Python package which is installed into venv and defines entry points in setup.py (https://packaging.python.org/en/latest/guides/creating-and-discovering-plugins/#using-package-metadata):
setup(
    ...
    entry_points={'core.plugins.data_readers': 'csv = csv_reader:CSVReader'},
    ...
)

where:
core.plugins.data_readers a group that plugin is related to, right now I have defined the next groups: data_readers and data_services
csv a plugin name which will be used when registering it in the factory
csv_reader:CSVReader is a reference to the actual class that implements the plugin logic. This class must implement the interface of the factory objects.
The loader finds all plugins with relevant entrypoint groups and registers each of them in the corresponding factory.

Can we add the OperationsFactory to this before it is merged?


Storing products on client side vs querying

Is it optimal to store all products in (vuex) store?
In case of haveing huge shop, storing thunders/thousands of products is not so optimal in sense of clients memory comsumption. How about lazy loading of products, and querying products from server based on users criteria?

You're right. We can do simple pagination and lazy load when querying products. Feel free to create a pull request 👍

There is also topic on vue forum related to this issue.


Add support for 2-dimensional models and convolution

It would be great to be able to create and convolve 2-dimensional or even higher-dimensional models with probfit. Concretely at the moment I need 2D Gaussian and Constant.

I'm withdrawing this feature request.
We're using other modeling / fitting packages by now.
Of course, if someone finds this issue and wants to add things to probfit, please open an issue and make the suggestion!


[SPARK-36882][PYTHON] Support ILIKE API on Python

What changes were proposed in this pull request?

Support ILIKE (case insensitive LIKE) API on Python.
Why are the changes needed?

ILIKE statement on SQL interface is supported by SPARK-36674.
This PR will support Python API for it.
Does this PR introduce any user-facing change?

Yes. Users can call ilike from Python.
How was this patch tested?

Unit tests.

Test build #143692 has started for PR 34135 at commit 950e7c5.

Test build #143692 has finished for PR 34135 at commit 950e7c5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143692/

Test build #143693 has started for PR 34135 at commit 8478880.

Test build #143693 has finished for PR 34135 at commit 8478880.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143693/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48207/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48208/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48207/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/48207/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48208/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/48208/

@yoda-mon, FYI, there's a R linter failure going up globally that seems like an issue from external server (e.g., CRAN). So feel free to ignore it for now.

cc @MaxGekk too FYI

Test build #143701 has started for PR 34135 at commit a9a4377.

Test build #143701 has finished for PR 34135 at commit a9a4377.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
public final class TableIndex
class IndexAlreadyExistsException(indexName: String, table: Identifier)
class NoSuchIndexException(indexName: String)

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143701/

Test build #143703 has started for PR 34135 at commit 886a5f0.

Test build #143703 has finished for PR 34135 at commit 886a5f0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143703/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48216/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48217/

I'll leave it to @sarutak.

Merged to master. Thank you @yoda-mon @HyukjinKwon @MaxGekk !

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48216/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/48216/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48217/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/48217/


Can’t run android after installing lib

After installing lib, I faced with the problem after runing android app, in result I have this error Could not find react-native-photos-framework’s native module. It seems it’s not linked correctly in your xcode-project.. How to resolve this issue? I want to use this lib only for ios, but for android - default CameraRoll from RN. Thanks for any help.
p.s. IOS works fine

https://github.com/olofd/react-native-photos-framework/pull/61

Fix merged. Will close.


No recipe for copper chests

There is no recipe for the copper chests from the iron chest mod, in order to craft any of the iron chests, the copper chest needs to be obtainable

This has been fixed in the 0.7 update with the following recipe


[Feature]: Player's Nick Names

🎮 feature Request

Description: Taking the player's nicknames at the beginning and using that at the end to display the <Player Name> Won!, since we have the player names, we generate a link to share on social media.
Logic: The names can be taken at the HomePage. Those names will be stored temporarily and used to display score. At the end a link will be available to use to share on social media.

Point down the features

Take Player's Nicknames
Share the results on social media

Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

How do you want this to work? What about situations where we say we want up to 3 or 4 players?

I will put my thought process here please let me know @Lovelyfin00 if you think I am missing anything here.

We already need to ask the number of players. So this will decide how many name fields to render.
We can take the names using the form, in a similar manner that we have taken rows and columns as input.
Once the names are stored in a variable we can use them instead of hard-coded Player 1 names.

Now for the sharing part, I am not very clear on it yet, but take Wordle for example, at the end we get an option to share the result with others.

So we can generate a message that

Player X won with x points against Player Y in a game of Dot-Box. You can challenge Player X here - link to the game page

Along with this message, we can add options to share on WhatsApp, email, or somewhere else. This will help in generating more crowds on the website.
If you would agree I think at this point this issue could be broken into two separate parts but the latter will be dependent on the former.

If you have any doubt you can directly send message on our discord (https://discord.gg/rZb46cCMmK), we have created separate channels for all projects...
Thank you :)

@ayush-t02 Please can you assign me this issue. i will work on it if anyone else is not working.

@ayush-t02 Please can you assign me this issue. i will work on it if anyone else is not working.

Sure
You can work on this since nothing has been heard from @gobbledy-gook for a while now. Each feature should be treated in separate PRs


Windows: check all file watchers work as expected.

Follow up from #1904.
Need a Windows cloud instance to test.
This should be part of cross-platform end-to-end testing.

https://github.com/microsoft/vscode-discussions/discussions/9

Saw this whilst running an experiment in the demo project:
ERROR: Error running 'checkpoint' task, 'stage: 'train'' will be aborted - [WinError 5] Access is denied: 'C:\\Code\\vscode-dvc\\demo\\misclassified.jpg'
SUCCESS: The process with PID 1624 (child process of PID 7020) has been terminated.
SUCCESS: The process with PID 7020 (child process of PID 4984) has been terminated.
SUCCESS: The process with PID 4984 (child process of PID 6480) has been terminated.

Things tested:

[x] Running experiments - all the things update
[x] Reset the workspace
[x] Checkout of individual items
[x] Making commits
[x] Changing branches
[x] Open params file from experiments webview


ChartMarker not working?

Hi, I've added drawMarkers: true to my chart view
but it seems like ChartMarker not working?
render() {
    const config = {
      dataSets: [{
        values: [1000, 1100, 1205],
        colors: ['#45af28', '#45af28', '#45af28' ],
        highlightEnabled: true,
        drawValues: false,
        drawDescription: true,
        drawMarkers: true,
      }],
......

how should I fix it?

@mitshit
How do you solve this problem ?


list index out of range IndexError

Thanks for your error report and we appreciate it a lot.
Checklist

I have searched related issues but cannot get the expected help.
I have read the FAQ documentation but cannot get the expected help.
The bug has not been fixed in the latest version.

Describe the bug
list index out of range

Reproduction

What command or script did you run?

python "/home/ranim/Documents/mmdet/mmdetection/tools/test.py" \
          "/home/ranim/Documents/mmdet/models/second_model_conf.py" \
          "/home/ranim/Documents/mmdet/models/second_model_checkpoint.pth" \
              --format-only \
              --options jsonfile_predix="/home/ranim/Documents/mmdet/media.

Did you make any modifications on the code or config? Did you understand what you have modified?
I used the coco dataset. I changed the classes and num_classes in the config file

What dataset did you use?
Custom dataset
Environment

Please run python mmdet/utils/collect_env.py to collect necessary environment information and paste it here.

You may add addition that may be helpful for locating the problem, such as

How you installed PyTorch [e.g., pip, conda, source]
Other environment variables that may be related (such as $PATH, $LD_LIBRARY_PATH, $PYTHONPATH, etc.)

Error traceback
If applicable, paste the error trackback here.
A placeholder for trackback.

Bug fix
If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!

It seems your len of your inference output is 0. In my situation, the len of results is equal to num_images.  Can you show the full log when you execute the code? Maybe you don't inference any image in your test.

It seems your len of your inference output is 0. In my situation, the len of results is equal to num_images. Can you show the full log when you execute the code? Maybe you don't inference any image in your test.

This is the error log i faced this problem before also when i was working with google colab and i couldn't solve it.
I've used inference_detector() function and it worked fine.
I think that the inference is done but the problem is in saving the result because the error is the result2json function.
/home/ranim/Documents/mmdet/mmdetection/tools/test.py:101: UserWarning: --options is deprecated in favor of --eval-options   warnings.warn('--options is deprecated in favor of --eval-options') loading annotations into memory... Done (t=0.01s) creating index... index created! /home/ranim/Documents/mmdet/mmdetection/mmdet/core/anchor/builder.py:15: UserWarning: ``build_anchor_generator`` would be deprecated soon, please use ``build_prior_generator``    warnings.warn( Use load_from_local loader completed: 0, elapsed: 0sTraceback (most recent call last):   File "/home/ranim/Documents/mmdet/mmdetection/tools/test.py", line 237, in <module>     main()   File "/home/ranim/Documents/mmdet/mmdetection/tools/test.py", line 219, in main     dataset.format_results(outputs, **kwargs)   File "/home/ranim/Documents/mmdet/mmdetection/mmdet/datasets/coco.py", line 345, in format_results     result_files = self.results2json(results, jsonfile_prefix)   File "/home/ranim/Documents/mmdet/mmdetection/mmdet/datasets/coco.py", line 276, in results2json     if isinstance(results[0],list): IndexError: list index out of range

It seems your len of your inference output is 0. In my situation, the len of results is equal to num_images. Can you show the full log when you execute the code? Maybe you don't inference any image in your test.

Also forgot to mention the annotation file for the test data is empty it contains only the categories and the test data contains only one image.

Hello,
I just referred to an older question and it turned out that the problem is from the annotation file i only included the categories and not the images: ids and file_names that's why he was giving me the error.
Thank you for your help. #5548


Changing 3D collision shape when running physics on separate thread crashes

Godot version
v4.0.rc.custom_build [aa6ec7631]
System information
Arch Linux, Radeon RX 6700 XT, Ryzen 5 3600
Issue description
Using the example of a crouching mechanic, changing the collision shape for the crouch on a CharacterBody3D will cause it to suddenly crash.
Sometimes it just says realloc(): invalid next size in the console, and no other error. Sometimes it gives a crash like this:
ERROR: FATAL: Index p_index =<PHONE_NUMBER> is out of bounds (count = 2).
   at: operator[] (./core/templates/local_vector.h:168)

================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.0.rc.custom_build (aa6ec763179e5bf1d1300aa72dc5f4172d810efa)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /usr/lib/libc.so.6(+0x38f50) [0x7fa5c131df50] (??:0)
[2] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.editor.x86_64(+0x4382f17) [0x556db496bf17] (??:0)
[3] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.editor.x86_64(+0x43878e1) [0x556db49708e1] (??:0)
[4] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.editor.x86_64(+0xb5a787) [0x556db1143787] (??:0)
[5] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.editor.x86_64(+0x4352960) [0x556db493b960] (??:0)
[6] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.editor.x86_64(+0x46d9625) [0x556db4cc2625] (??:0)
[7] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.editor.x86_64(+0x4fb5b23) [0x556db559eb23] (??:0)
[8] /usr/lib/libc.so.6(+0x85bb5) [0x7fa5c136abb5] (??:0)
[9] /usr/lib/libc.so.6(+0x107d90) [0x7fa5c13ecd90] (??:0)
-- END OF BACKTRACE --
================================================================

Steps to reproduce

Have a character body with two collision shape, with one disabled
Add gravity, WASD, camera movement etc.
Use a e.g. crouch key to switch between the collision shapes
Turn on physics/3d/run_on_separate_thread
Especially common when standing on a pile of RigidBodies
Enjoy

Minimal reproduction project
Relatively stripped away reproduction project:
https://drive.google.com/uc?export=download&id=1shYnp3GkVMfHOSKFQtUpA3YUW23QJBZY

Backtrace
WARNING: Info : multithread BVH access detected (benign)
     at: BVHLockedFunction (./core/math/bvh.h:784)
ERROR: FATAL: Index p_index = 270437280 is out of bounds (count = 24).
   at: operator[] (./core/templates/local_vector.h:168)

================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.0.rc.custom_build (f2a2e470099c83ea8a5a1f78c910cbdd11ab4998)
Dumping the backtrace. Please include this when reporting the bug to the project developer.

[25] /lib64/libc.so.6(+0x8b12d) [0x7fd6cb7ce12d] (??:0)
[26] /lib64/libc.so.6(+0x10cbc0) [0x7fd6cb84fbc0] (??:0)
-- END OF BACKTRACE --
================================================================
[1]    72661 IOT instruction (core dumped)  bin/godot.linuxbsd.editor.x86_64 --path ~/Downloads/CollisionChangeCrash/

Standing on top of all the cylinders without crouching also causes a heavy slowdown (noticeable if you rotate the camera while on the cylinders).

==73423==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000fe12d0 at pc 0x00001cf3143e bp 0x7fff8d9ec5b0 sp 0x7fff8d9ec5a0
core/templates/local_vector.h:74:4: runtime error: store to null pointer of type 'struct Link'
WRITE of size 16 at 0x603000fe12d0 thread T0

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.rc.custom_build (8c7b98d4526c6ba66d7f1636abb71ccbe54727c6)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
    #0 0x1cf3143d in LocalVector<BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::Link, unsigned int, false, false>::push_back(BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::Link) (/usr/bin/godot4s+0x1cf3143d)
    #1 0x1cf21bf1 in BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::add_pair_to(BVHHandle, void*) (/usr/bin/godot4s+0x1cf21bf1)
    #2 0x1cf0d35f in BVH_Manager<GodotCollisionObject3D, 2, true, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, AABB, Vector3, true>::_collide(BVHHandle, BVHHandle) (/usr/bin/godot4s+0x1cf0d35f)
    #3 0x1cf02168 in BVH_Manager<GodotCollisionObject3D, 2, true, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, AABB, Vector3, true>::_check_for_collisions(bool) (/usr/bin/godot4s+0x1cf02168)
    #4 0x1cefc726 in BVH_Manager<GodotCollisionObject3D, 2, true, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, AABB, Vector3, true>::create(GodotCollisionObject3D*, bool, unsigned int, unsigned int, AABB const&, int) core/math/bvh.h:127
    #5 0x1cef8dce in GodotBroadPhase3DBVH::create(GodotCollisionObject3D*, int, AABB const&, bool) servers/physics_3d/godot_broad_phase_3d_bvh.cpp:38
    #6 0x1cf42032 in GodotCollisionObject3D::_update_shapes() servers/physics_3d/godot_collision_object_3d.cpp:177
    #7 0x1cf4579f in GodotCollisionObject3D::_shape_changed() servers/physics_3d/godot_collision_object_3d.cpp:234
    #8 0x1a9967f2 in GodotPhysicsServer3D::_update_shapes() servers/physics_3d/godot_physics_server_3d.cpp:1735
    #9 0x1a979e4b in GodotPhysicsServer3D::body_test_motion(RID, PhysicsServer3D::MotionParameters const&, PhysicsServer3D::MotionResult*) servers/physics_3d/godot_physics_server_3d.cpp:918
    #10 0x1cd563ed in PhysicsServer3DWrapMT::body_test_motion(RID, PhysicsServer3D::MotionParameters const&, PhysicsServer3D::MotionResult*) servers/physics_server_3d_wrap_mt.h:265
    #11 0x16577f11 in PhysicsBody3D::move_and_collide(PhysicsServer3D::MotionParameters const&, PhysicsServer3D::MotionResult&, bool, bool) scene/3d/physics_body_3d.cpp:117
    #12 0x165c4907 in CharacterBody3D::_move_and_slide_grounded(double, bool) scene/3d/physics_body_3d.cpp:1280
    #13 0x165c0bc7 in CharacterBody3D::move_and_slide() scene/3d/physics_body_3d.cpp:1228
    #14 0x4fe6ff5 in void call_with_ptr_args_ret_helper<__UnexistingClass, bool>(__UnexistingClass*, bool (__UnexistingClass::*)(), void const**, void*, IndexSequence<>) core/variant/binder_common.h:324
    #15 0x4fd2fcf in void call_with_ptr_args_ret<__UnexistingClass, bool>(__UnexistingClass*, bool (__UnexistingClass::*)(), void const**, void*) core/variant/binder_common.h:572
    #16 0x4fbf41b in MethodBindTR<bool>::ptrcall(Object*, void const**, void*) const core/object/method_bind.h:478
    #17 0x687fd21 in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Callable::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_vm.cpp:1894
    #18 0x618a4fc in GDScriptInstance::callp(StringName const&, Variant const**, int, Callable::CallError&) modules/gdscript/gdscript.cpp:1826
    #19 0x142e8bf8 in bool Node::_gdvirtual__physics_process_call<false>(double) scene/main/node.h:239
    #20 0x1424a87b in Node::_notification(int) scene/main/node.cpp:61
    #21 0x42318d9 in Node::_notificationv(int, bool) scene/main/node.h:46
    #22 0x4f408c8 in Node3D::_notificationv(int, bool) scene/3d/node_3d.h:52
    #23 0x15c8d226 in CollisionObject3D::_notificationv(int, bool) scene/3d/collision_object_3d.h:38
    #24 0x16663fb2 in PhysicsBody3D::_notificationv(int, bool) scene/3d/physics_body_3d.h:43
    #25 0x1667a63c in CharacterBody3D::_notificationv(int, bool) scene/3d/physics_body_3d.h:344
    #26 0x1f911b62 in Object::notification(int, bool) core/object/object.cpp:790
    #27 0x143b0ec1 in SceneTree::_notify_group_pause(StringName const&, int) scene/main/scene_tree.cpp:874
    #28 0x143a1030 in SceneTree::physics_process(double) scene/main/scene_tree.cpp:428
    #29 0x2a8b091 in Main::iteration() main/main.cpp:3121
    #30 0x27e2277 in OS_LinuxBSD::run() platform/linuxbsd/os_linuxbsd.cpp:880
    #31 0x27bdb44 in main platform/linuxbsd/godot_linuxbsd.cpp:73
    #32 0x7efec122350f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #33 0x7efec12235c8 in __libc_start_main_impl ../csu/libc-start.c:381
    #34 0x27bd4f4 in _start (/usr/bin/godot4s+0x27bd4f4)

0x603000fe12d0 is located 0 bytes to the right of 32-byte region [0x603000fe12b0,0x603000fe12d0)
allocated by thread T0 here:
    #0 0x7efec1eb4887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x1e007c4b in Memory::alloc_static(unsigned long, bool) core/os/memory.cpp:75
    #2 0x1e0082b2 in Memory::realloc_static(void*, unsigned long, bool) core/os/memory.cpp:99
    #3 0x1cf31133 in LocalVector<BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::Link, unsigned int, false, false>::push_back(BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::Link) (/usr/bin/godot4s+0x1cf31133)
    #4 0x1cf21bf1 in BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::add_pair_to(BVHHandle, void*) (/usr/bin/godot4s+0x1cf21bf1)
    #5 0x1cf0d35f in BVH_Manager<GodotCollisionObject3D, 2, true, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, AABB, Vector3, true>::_collide(BVHHandle, BVHHandle) (/usr/bin/godot4s+0x1cf0d35f)
    #6 0x1cf02168 in BVH_Manager<GodotCollisionObject3D, 2, true, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, AABB, Vector3, true>::_check_for_collisions(bool) (/usr/bin/godot4s+0x1cf02168)
    #7 0x1cefc726 in BVH_Manager<GodotCollisionObject3D, 2, true, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, AABB, Vector3, true>::create(GodotCollisionObject3D*, bool, unsigned int, unsigned int, AABB const&, int) core/math/bvh.h:127
    #8 0x1cef8dce in GodotBroadPhase3DBVH::create(GodotCollisionObject3D*, int, AABB const&, bool) servers/physics_3d/godot_broad_phase_3d_bvh.cpp:38
    #9 0x1cf42032 in GodotCollisionObject3D::_update_shapes() servers/physics_3d/godot_collision_object_3d.cpp:177
    #10 0x1cf4579f in GodotCollisionObject3D::_shape_changed() servers/physics_3d/godot_collision_object_3d.cpp:234
    #11 0x1a9967f2 in GodotPhysicsServer3D::_update_shapes() servers/physics_3d/godot_physics_server_3d.cpp:1735
    #12 0x1a979e4b in GodotPhysicsServer3D::body_test_motion(RID, PhysicsServer3D::MotionParameters const&, PhysicsServer3D::MotionResult*) servers/physics_3d/godot_physics_server_3d.cpp:918
    #13 0x1cd563ed in PhysicsServer3DWrapMT::body_test_motion(RID, PhysicsServer3D::MotionParameters const&, PhysicsServer3D::MotionResult*) servers/physics_server_3d_wrap_mt.h:265
    #14 0x16577f11 in PhysicsBody3D::move_and_collide(PhysicsServer3D::MotionParameters const&, PhysicsServer3D::MotionResult&, bool, bool) scene/3d/physics_body_3d.cpp:117
    #15 0x165c4907 in CharacterBody3D::_move_and_slide_grounded(double, bool) scene/3d/physics_body_3d.cpp:1280
    #16 0x165c0bc7 in CharacterBody3D::move_and_slide() scene/3d/physics_body_3d.cpp:1228
    #17 0x4fe6ff5 in void call_with_ptr_args_ret_helper<__UnexistingClass, bool>(__UnexistingClass*, bool (__UnexistingClass::*)(), void const**, void*, IndexSequence<>) core/variant/binder_common.h:324
    #18 0x4fd2fcf in void call_with_ptr_args_ret<__UnexistingClass, bool>(__UnexistingClass*, bool (__UnexistingClass::*)(), void const**, void*) core/variant/binder_common.h:572
    #19 0x4fbf41b in MethodBindTR<bool>::ptrcall(Object*, void const**, void*) const core/object/method_bind.h:478
    #20 0x687fd21 in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Callable::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_vm.cpp:1894
    #21 0x618a4fc in GDScriptInstance::callp(StringName const&, Variant const**, int, Callable::CallError&) modules/gdscript/gdscript.cpp:1826
    #22 0x142e8bf8 in bool Node::_gdvirtual__physics_process_call<false>(double) scene/main/node.h:239
    #23 0x1424a87b in Node::_notification(int) scene/main/node.cpp:61
    #24 0x42318d9 in Node::_notificationv(int, bool) scene/main/node.h:46
    #25 0x4f408c8 in Node3D::_notificationv(int, bool) scene/3d/node_3d.h:52
    #26 0x15c8d226 in CollisionObject3D::_notificationv(int, bool) scene/3d/collision_object_3d.h:38
    #27 0x16663fb2 in PhysicsBody3D::_notificationv(int, bool) scene/3d/physics_body_3d.h:43
    #28 0x1667a63c in CharacterBody3D::_notificationv(int, bool) scene/3d/physics_body_3d.h:344
    #29 0x1f911b62 in Object::notification(int, bool) core/object/object.cpp:790

SUMMARY: AddressSanitizer: heap-buffer-overflow (/usr/bin/godot4s+0x1cf3143d) in LocalVector<BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::Link, unsigned int, false, false>::push_back(BVH_Tree<GodotCollisionObject3D, 2, 2, 128, GodotBroadPhase3DBVH::UserPairTestFunction<GodotCollisionObject3D>, GodotBroadPhase3DBVH::UserCullTestFunction<GodotCollisionObject3D>, true, AABB, Vector3>::ItemPairs::Link)

CC @lawnjelly

Will take a look. :+1:
This isn't entirely surprising, the BVH was originally designed as single threaded, I added a simple multithreaded mode later with a mutex to investigate whether threaded access was causing a bug in 3.x (which turned out to be unrelated I think) .. but historically the multithreaded BVH mode has never been fully tested, so may well contain a bug (maybe I missed a function that bypasses the mutex for example).


Metadata are not parsed when content does not exist

Input:
const path = join(tmpdir(), 'markdown.md')
const content = '---\ntitle: fake title\nauthor: fooBar\n---'
fs.writeFileSync(path, content)

const source = fs.readFileSync(path, 'utf8')
const result = markdownParser(source)
console.log(result)

Result:
{
  metadata: {},
  content: '---\ntitle: fake title\nauthor: fooBar\n---'
}

Works fine when content is defined.
Input:
 const path = join(tmpdir(), 'markdown.md')
 const content = '---\ntitle: fake title\nauthor: fooBar\n---\nContent goes here'
 fs.writeFileSync(path, content)

 const source = fs.readFileSync(path, 'utf8')
 const result = markdownParser(source)
 console.log(result)

Result:
{
  metadata: { title: 'fake Title', author: 'fooBar' },
  content: 'Content goes here'
}

I've released version 2.0.1 which covers also this use case.