[BUG] RecursiveJsonSplitter split result has mixed other input's cached output with different input json_data

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
import json
from langchain_text_splitters import RecursiveJsonSplitter

print('json 1: ')
json_1 = '{"position": 2, "song": {"song_id":<PHONE_NUMBER>, "name": "Whatever She Wants", "artist_name": "Bryson Tiller", "present_in_top": true, "rating": "explicit", "artists_slugs": [{"artist_name": "Bryson Tiller", "artist_slug": "bryson-tiller"}], "artwork_url_small": "https://is1-ssl.mzstatic.com/image/thumb/Music116/v4/6d/c3/0c/6dc30cf7-86ee-5e87-8703-d0eb4fbddbdd/196871828352.jpg/60x60bb.jpg", "artwork_url_large": "https://is1-ssl.mzstatic.com/image/thumb/Music116/v4/6d/c3/0c/6dc30cf7-86ee-5e87-8703-d0eb4fbddbdd/196871828352.jpg/170x170bb.jpg", "release": null, "apple_music_view_url": "https://geo.music.apple.com/de/album/whatever-she-wants/1729856932?i=1729856953&app=music&mt=1&at=11l64h&ct=top-charts", "itunes_view_url": "https://geo.music.apple.com/de/album/whatever-she-wants/1729856932?i=1729856953&app=itunes&mt=1&at=11l64h&ct=top-charts", "preview_url": "https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview116/v4/2c/59/69/2c59694d-674b-f702-8d7d-010c32d86d72/mzaf_13580580607794748358.plus.aac.p.m4a", "slug": "whatever-she-wants-bryson-tiller"}}'
json_1_dict = json.loads(json_1)
print(f'before split: {json_1_dict}')

print('# ----- do the split!!')
json_splitter_1 = RecursiveJsonSplitter(max_chunk_size=1000)
split_json_1 = json_splitter_1.split_text(json_data=json.loads(json_1))
print(f'after split: ')
for sp in split_json_1:
    print(sp)
    print('# --- each split')

print('')

print('json 2: ')
json_2 = '{"position": 3, "song": {"song_id":<PHONE_NUMBER>, "name": "redrum", "artist_name": "21 Savage", "present_in_top": true, "rating": "explicit", "artists_slugs": [{"artist_name": "21 Savage", "artist_slug": "21-savage"}], "artwork_url_small": "https://is1-ssl.mzstatic.com/image/thumb/Music116/v4/de/82/b9/de82b98d-56a1-e27b-10ea-46964f4585e4/196871714549.jpg/60x60bb.jpg", "artwork_url_large": "https://is1-ssl.mzstatic.com/image/thumb/Music116/v4/de/82/b9/de82b98d-56a1-e27b-10ea-46964f4585e4/196871714549.jpg/170x170bb.jpg", "release": "2024-01-12", "apple_music_view_url": "https://geo.music.apple.com/ca/album/redrum/1724494274?i=1724494724&app=music&mt=1&at=11l64h&ct=top-charts", "itunes_view_url": "https://geo.music.apple.com/ca/album/redrum/1724494274?i=1724494724&app=itunes&mt=1&at=11l64h&ct=top-charts", "preview_url": "https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview126/v4/9f/f3/4e/9ff34eab-0ba1-3490-982d-1d761a415d0e/mzaf_170736944635699700.plus.aac.p.m4a", "slug": "redrum-21-savage"}}'
json_2_dict = json.loads(json_2)
print(f'before split: {json_2_dict}')

print('# ----- do the split!!')
json_splitter_2 = RecursiveJsonSplitter(max_chunk_size=1000)
split_json_2 = json_splitter_2.split_text(json_data=json.loads(json_2))
print(f'after split: ')
for sp in split_json_2:
    print(sp)
    print('# --- each split')

Error Message and Stack Trace (if applicable)
No response
Description
I found the bug with RecursiveJsonSplitter using the following code: different RecursiveJsonSplitter instances have mixed other input's output. Is it a singleton instance and cached previous split results?
print results with the above code:

System Info
pip packages version:
# pip freeze | grep langchain
langchain==0.1.16
langchain-community==0.0.34
langchain-core==0.1.46
langchain-text-splitters==0.0.1

# python -m langchain_core.sys_info

System Information
------------------
> OS:  Linux
> OS Version:  #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023
> Python Version:  3.10.8 (main, Nov 24 2022, 14:13:03) [GCC 11.2.0]

Package Information
-------------------
> langchain_core: 0.1.46
> langchain: 0.1.16
> langchain_community: 0.0.34
> langsmith: 0.1.52
> langchain_text_splitters: 0.0.1

Packages not installed (Not Necessarily a Problem)
--------------------------------------------------
The following packages were not found:

> langgraph
> langserve

I found @six17 fixed this issue in #19119, but I couldn't use the latest version of langchain/libs/text-splitters/langchain_text_splitters by pip install langchain-text-splitters.
After I pip uninstall langchain* and reinstall langchain==0.1.17
pip freeze | grep langchain
langchain==0.1.17
langchain-community==0.0.36
langchain-core==0.1.50
langchain-text-splitters==0.0.1

# pip install langchain-text-splitters==
Looking in indexes: http://mirrors.aliyun.com/pypi/simple
ERROR: Could not find a version that satisfies the requirement langchain-text-splitters== (from versions: 0.0.1)
ERROR: No matching distribution found for langchain-text-splitters==


SyntaxError on Install

I tried to download ethQL. I downloaded the repo, did a yarn install, and threw that error.
Here's the full log:

Hey @MaagMatthew , were you able to resolve the issue. I am facing the same issue, tried some fiddeling but couldn't start.

Hi, seems to be a problem with the latest version of nodejs, I solved it by downgrading nodejs to 10.15.3

that works @martinivanalfonso

I was also having this issue on linux. Needed to downgrade and set npm to use python2.7 for node-gyp to be happy.


Rhub check on CentOS fails because of new compilation flags

Previously I don't think -fstack-protector-strong or -Wdate-time were being injected and now that they are, CentOS gcc is having problems with them.
Here's the 0.6-6 build:
https://builder.r-hub.io/status/original/nimble_0.6-6.tar.gz-4846e2718c13468c909879b318ca4d15
For comparison here is 0.6-5:
https://builder.r-hub.io/status/original/nimble_0.6-5.tar.gz-44433fd76b554bde984c96d94dbbb9c6

Per Duncan's email info, this was caused by issues introduced with trying to avoid the -g flags.


Investigate using NonZero

All of our node pointers are non-zero because they come from a typed arena.

NonZero is still unstable as of Rust 1.0.


Verify plugin on 2024.1.6

https://blog.jetbrains.com/idea/2024/08/intellij-idea-2024-1-6/

https://github.com/ComposeGears/Valkyrie/actions/runs/10330975208/job/28600628307


C++: accessors for custom attributes

Custom attributes are only settable when building a schema. There was previously no way to get the attributes from a parsed schema. This will be useful for reading Iceberg manifests, since we'll want to pull the field ids for each type.

The name customAttributes returning the number of custom attributes seems a little weird, but I guess it matches leaves() -> leafAttributes_.size() 🤷

Yea, I'm not a fan, but you're right I did this to match the naming convention in the codebase.


builds fail, ubuntu 16 LTS

I don't know why someone develops in JavaScript,
i never done a successful build with it.
I go with IPFS   :(

This is actually a problem with your local machine's NPM config, unrelated to dat specifically.
Try this guide for solving it: https://docs.npmjs.com/getting-started/fixing-npm-permissions

i installed dat now.
how can i use it?

I dont speak german, but it looks like it's instructing you to install liballegro4. I dont use ubuntu so I'm not sure why, but try running sudo apt install liballegro4-dev as it instructed

Hi @alugarius, what command did you use to install it? It looks like dat did not get installed globally (which allows you to run it as a command). To install it globally, use:
npm install -g dat

If you have trouble installing it with that command, please see our troubleshooting guide which will help fix the issue you posted.

I dont speak german, but it looks like it's instructing you to install liballegro4. I dont use ubuntu so I'm not sure why, but try running sudo apt install liballegro4-dev as it instructed

@pfrazee liballegro4-dev is another library that uses the dat command so linux thinks that is what isn't installed. But its an unrelated and unneeded package. 😞

Looks like your npm bin folder isn't inside $PATH. Run npm bin --global to find it and add it, then see if you still can't run dat.
@joehand yeah ubuntu doesn't find dat and advises to install the other software instead. You read that german correctly :)

Hi @alugarius, let us know if you still have trouble trying the suggestions above. We are still on improving our installation process but ubuntu should be covered for now (since we run our travis tests on linux).


cannot access /dev/fd/1 from UID!=0

/kind bug
Description
When trying to run supervisord inside a container with podman and UID!=0 you get:
IOError: [Errno 13] Permission denied: '/dev/fd/1'
Steps to reproduce the issue:

podman run image

Describe the results you received:
https://gist.github.com/thoraxe/0139d451ba627b488683a83204ddf6e7
Describe the results you expected:
Image runs
Additional information you deem important (e.g. issue happens only occasionally):
https://github.com/openshift/openshift-cns-testdrive/blob/ocp4-dev/Dockerfile
This used to work in previous versions of Podman.
Output of podman version:
Version:            1.8.0
RemoteAPI Version:  1
Go Version:         go1.13.6
OS/Arch:            linux/amd64

Output of podman info --debug:
debug:
  compiler: gc
  git commit: ""
  go version: go1.13.6
  podman version: 1.8.0
host:
  BuildahVersion: 1.13.1
  CgroupVersion: v2
  Conmon:
    package: conmon-2.0.10-2.fc31.x86_64
    path: /usr/bin/conmon
    version: 'conmon version 2.0.10, commit: 6b526d9888abb86b9e7de7dfdeec0da98ad32ee0'
  Distribution:
    distribution: fedora
    version: "31"
  IDMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  MemFree: 934690816
  MemTotal:<PHONE_NUMBER>4
  OCIRuntime:
    name: crun
    package: crun-<IP_ADDRESS>-1.fc31.x86_64
    path: /usr/bin/crun
    version: |-
      crun version <IP_ADDRESS>
      commit: cd7cea7114db5f6aa35fbb69fa307c19c2728a31
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  SwapFree:<PHONE_NUMBER>6
  SwapTotal:<PHONE_NUMBER>2
  arch: amd64
  cpus: 8
  eventlogger: journald
  hostname: t490s-festive-local
  kernel: 5.3.18-300.fc31.x86_64
  os: linux
  rootless: true
  slirp4netns:
    Executable: /usr/bin/slirp4netns
    Package: slirp4netns-0.4.0-20.1.dev.gitbbd6f25.fc31.x86_64
    Version: |-
      slirp4netns version 0.4.0-beta.3+dev
      commit: bbd6f25c70d5db2a1cd3bfb0416a8db99a75ed7e
  uptime: 41h 33m 25.56s (Approximately 1.71 days)
registries:
  search:
  - docker.io
  - registry.fedoraproject.org
  - registry.access.redhat.com
  - registry.centos.org
  - quay.io
store:
  ConfigFile: /home/thoraxe/.config/containers/storage.conf
  ContainerStore:
    number: 2
  GraphDriverName: overlay
  GraphOptions:
    overlay.mount_program:
      Executable: /usr/bin/fuse-overlayfs
      Package: fuse-overlayfs-0.7.5-2.fc31.x86_64
      Version: |-
        fusermount3 version: 3.6.2
        fuse-overlayfs: version 0.7.5
        FUSE library version 3.6.2
        using FUSE kernel interface version 7.29
  GraphRoot: /home/thoraxe/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 17
  RunRoot: /run/user/1000/containers
  VolumePath: /home/thoraxe/.local/share/containers/storage/volumes

Package info (e.g. output of rpm -q podman or apt list podman):
podman-1.8.0-2.fc31.x86_64```

**Additional environment details (AWS, VirtualBox, physical, etc.):**
T460
Linux t490s-festive-local 5.3.18-300.fc31.x86_64 #1 SMP Wed Dec 18 20:13:38 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

@rhatdan @giuseppe @vrothberg I feel like this happened before, but I can't seem to find details. Any ideas?

I was previously using F28 and it worked there, so whatever podman version was present in F28 as of a few months ago it worked. You can use quay.io/openshiftroadshow/lab-ocp-ocs:ocp4-prod to test with

this may have something to do with no tty being allocated...
podman run --rm quay.io/openshiftroadshow/lab-ocp-ocs:ocp4-prod
fails
podman run --rm -t quay.io/openshiftroadshow/lab-ocp-ocs:ocp4-prod
works (well for me)

had a bit more of a poke about on this, possibly a crun problem, think it's creating fifos with incorrect ownership.
with crun:
podman run --rm --user 1000:1000 fedora:31 /bin/bash -c 'ls -lah /dev/fd/1; while true; do echo "test" > /dev/fd/1; sleep 2; done;'
fails with permission denied, if i use lsof on the host to find the underlying fifo that's being used that fifo is owned uid 1000, the symlink to it is owned by 100999
with runc:
podman run --rm --user 1000:1000 fedora:31 /bin/bash -c 'ls -lah /dev/fd/1; while true; do echo "test" > /dev/fd/1; sleep 2; done;'
works without issue, if i use lsof on the host to find the underlying fifo that's being used that fifo is owned uid 100999 as is the symlink to it.
so guessing that somewhere in the crun code ownership is not being set correctly after the fifo is created

that should be fixed with conmon 2.0.11: https://github.com/containers/conmon/pull/112

@giuseppe @jnovy @lsm5 Looks like conmon-.2.0.11 is built for F31, but not in updates testing?

we have an updated conmon for Fedora 31 now.  Closing the issue


Add Language, Device, iOS Version

I started the implementation but not sure where to put these information between 3 options:

Up in the document
Copied for each activity
The client is responsible for sending them (at launch for instance)

So far, for each activity.


Please update web link for auto-update

When a new beta version is available, the link takes you to the old page (https://code.google.com/p/sws-extension/downloads/list).
It should take the user straight to the download page. (Even when I follow the series of links, I can't find the actually beta binaries to download.)

Can't duplicate (too old SWS version probably)


where is the history of auto-suggestions located? can i modify myself to make my own suggestions?

the title is pretty straight forward.
sorry if duplicate.
thanks in advance.

Yeah it uses the standard zsh history, so any modifications you make to your zsh history will be reflected in the suggestions made going forward. Run echo $HISTFILE to see where your zsh history is being stored.

> echo $HISTFILE
/home/alexzander/.config/zsh/.zsh_history

yeah. i got it now. thanks

its very nice it uses the standard zsh history file, instead of creating another one.


Error with fallback signature and/or README documentation

This seems to be a known issue and one that, in theory, has already been addressed (see #16). But I'm still having issues with the signature for, and invocation of, the fallback function.
The README indicates that the fallback functions's signature should match
(<BreakerError, (fallbackArg1, fallbackArg2,...)>) -> Void

(Unless I'm missing something, the angle brackets are a typo in the README.)
and that the run method on CircuitBreaker should be called as follows:
breaker.run(commandArgs: (a: 10, b: 20), fallbackArgs: (msg: "Something went wrong."))

However, if I create a fallback with the signature (BreakerError, String) -> Void and try to invoke run as indicated above, I get the following error message:
error: cannot convert value of type '(msg: String)' to expected argument type 'String'
breaker.run(commandArgs: (a: 12, b: 13), fallbackArgs: (msg: "This is a test"))
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
                                                                           as! String

Further, if I create a fallback with the signature (BreakerError, String, String) -> Void and try to invoke run with breaker.run(commandArgs: (a: 10, b: 20), fallbackArgs: (msg, "First Message", msg2: "SecondMessage:)) I receive the following error:
error: cannot convert value of type '(Int, Int) -> Int' to expected argument type '(_) -> (_)'
let breaker = CircuitBreaker(command: myFunc, fallback: myFallback)
                                  ^~~~~~

(Note: the error is with parsing the command, not the fallback.)
I can, however, successfully invoke run as follows:
 breaker.run(commandArgs: (a: 10, b: 20), fallbackArgs: "Something went wrong.")

I haven't yet finished working my way through the source, so that might clear up some mis-understanding on my part. Nevertheless, it seems that the README is definitely incorrect.
Also, it would be very useful to actually be able to pass more than one argument to the fallback function.

@profburke Thanks for reaching out. Yes, we did have a few documentation issues in the README. We just made a few changes to address those.
Let’s say you have the following command and fallback functions:
func sum(a: Int, b: Int, c: String) -> Void {
    print(a + b)
    sleep(40)
}

func fallbackFunction(error: BreakerError, str: String) -> Void {
    print("str: \(str)")
}

Then instantiating a CircuitBreaker instance and running it would look like this:
let breaker1 = CircuitBreaker(command: sum, fallback: fallbackFunction)
let str1: String = "str1"
breaker1.run(commandArgs: (30, 49, str1), fallbackArgs: str1)

If you have the following command and fallback functions (i.e. need to pass multiple parameters passed to the fallback function after the BreakerError parameter):
func sum(a: Int, b: Int, c: String) -> Void {
    print(a + b)
    sleep(40)
}

func anotherFallback(error: BreakerError, strs: (str1: String, str2: String)) -> Void {
    print("str1: \(strs.str1), str2: \(strs.str2)")
}

Then instantiating a CircuitBreaker instance and running it would look like this:
let breaker2 = CircuitBreaker(command: sum, fallback: anotherFallback)
let str2: String = "str2"
breaker2.run(commandArgs: (a: 40, b: 100, str1), fallbackArgs: (str1: str1, str2: str2))

In other words, if you need your fallback function to receive more than one value for the second parameter (C), then you need to define a tuple and pass the values inside the tuple (as shown above.
Hope this helps. Let us know if you have any more questions.

Thanks for the response. I did puzzle out sending a tuple as the second parameter to my fallback function, but it's good to know that's the "proper" solution.
I do have some questions regarding using the library. Is there a forum or mail list somewhere? Or should I just open more issues on the repo?

@profburke You can reach us on slack @ https://swift-at-ibm-slack.mybluemix.net/. Feel free to contact me directly over there or use the general channel. You can use GH issues as well.

Thanks. I'll reach out on Slack.


Merge the two quickstart notebooks?

Currently we have two quickstart notebooks:

Learn Optax: https://optax.readthedocs.io/en/latest/optax-101.html , featured from the "Getting started" section
Quickstart with Optax: https://optax.readthedocs.io/en/latest/_collections/examples/quick_start.html , linked only from the Example gallery (but not from the Getting started section).

Since both notebooks are not too long, I think it would be a good idea to merge both, or at least put them together in the same section.
CC @holounic @mtthss @rosshemsley : curious to get your thoughts on this one

True! It seems like the notebooks are practically identical. They both mention GradientTransformation, optax.chain, schedulers, and use generated data to fit a model. Therefore, we can keep one of them.
I suggest that if we choose to keep optax-101, we move it to the examples directory for consistency and add the open in Colab button for easy accessibility from GitHub repo.
On the other hand, if we decide to keep the quick start one, we should probably make the model multilayered (and hence the parameters will become dict). This would demonstrate the more common parameters format.
Additionally, we should link the selected example to the "Getting Started" section.


Do not use BUILD_ID for RELEASE

We aren't going to bother using BUILD_ID for RELEASE. RELEASE will be set by Prow job to shortened SHA1.

/test kubernetes-1-19-presubmit

/test kubernetes-1-19-presubmit

/test kubernetes-1-19-presubmit

/test kubernetes-1-19-presubmit

It could be this change actually broke the 1.19 presubmit, but hard to imagine how

The failing tests are the upstream's top flaky tests. Ill rerun one more time then will manually merge.

/test kubernetes-1-19-presubmit

Confirmed failures are flakes, merge manually.


WurstEclipse Special highlight for hotdoc

Maybe make it blue like in JDT, it should somehow be different - else you can't really tell if it's hotdoc or not.

Additionally the *-star chars at the left side should be added automatically and the hotdoc itself should be somehow formatted/indented so you don't always have to do it yourself.
Typing "/**"+ ENTER should automatically create the "*/"

I already changed the color a long time ago. Here is the new ticket for a formatter: https://github.com/peq/WurstScript/issues/415


MOARdVPlus Compatibilty

hey just curious how I can access the MAS FASA Command models iva via reviva iva features or how I can get to thoses layouts on the BDB Apollo Command Pod again. just curious since updating to 1.0.0 I seem to have lost the ability todo the aforementioned. thanks

Hi @jordanj334 , as always please include your ksp.log file with bug reports.
This works fine for me.

OH wait, I think I see what happened.  There are two internals with the same name..

Huh, well I'm pretty sure the two "FASA" options there were the ones from MOARDVPlus, but the original FASA IVA was missing (although it's terrible).  So now it should be a little more clear and include that one too.


Need a way to exclude folder in R solution

Under C++/C# project, right click on the file/folder, there is an exclude from project option.

Related #359. R Project is pretty different from C++/C# projects as it does not require project file and simply shows what is in the folder. R project file does not maintain list of files. So to exclude folder it'd need some sort of view filter.

I remember someone else posted a workaround for this problem. Rather than creating an R project, create a C++ or C# project and add R files to it. It's in one of the issues here but I can't find it right now.

@MikhailArkhipov I`m using VS 15.5.1
I understand you may not add the exclude feature. But could you tell if a folder contains a lot of large csv files will hurt the performance in terms of editor intellisense?  My editor goes really slow sometimes.

Editor performance does not depend on number of files in the project, especially if they are not code files. There are couple of issues fixed recently: #4187, #4232. If these are not the case, I'd like to learn more what becomes slow and when.


Map Layers - Reference Layers

Miro reference

Tap Reference Layers text within Map Layer panel to see available layers
Tap to turn layer(s) on/off
Tap ? for reference layer legend (TBD for BLM CadNSDI)
Same layers as desktop
Active layers highlighted

replaced by layer list


Fix CI

What
Fix CI's start timing.
Why
If don't fix it, CI publish to npm repo every time master is updated

Sorry I wrong to rebase ...


Take Payment revamps

Several comments on taking payment

There were a lot of data entry problems around that; people selecting Cash for credit card transactions, etc. Several improvements:

Replace the Cash/Credit Card/Check dropdown with buttons for each
Only show the text box for credit card auth numbers if Credit Card or Check is chosen
Make it obvious which one was chosen - big icon or something?
Don't forget to have a back button to change the payment type.

For cash, add a "change" field that will show how much change is due. For example, if someone takes $80 on a $65 order, it should display $15.
Only prompt to add another payment if the first payment doesn't cover the entire amount of the order

Done in 4d684f8


Do not panic the ping go routine if an error is returned from ping command.

This code change is for fixing bug #65 that I reported.
To fix this, I am Returning an empty string to indicate error. which will be handled in HandlePing() and nothing is added in tsdb for error case.

There is one cleaner way of catching/indicating error -> Pass 2 channels to CLIPing() one result channel and one error channel. if error occurs, we can send error code through error channel and check it in HandlePing(). Let me know your thoughts on this.

Thanks for your interest in the project. Will review asap.

@Pratik32 Please have a look at https://github.com/zairza-cetb/bench-routes/issues/65#issuecomment-540111584 for more details regarding the PR.
Please follow the DCO rules while making commits to get the DCO tests passed. For more information about DCO click here.

updated the PR. Followed the DCO rule for the new PR. the old commit is till without 'signed-off-by' :)

@Pratik32 you could discuss here. That would be really appropriate

@Pratik32 please pull latest commits and resolve the conflicts.


Add OpenSearch metrics

Description
This PR is to

add a rest high level client wrapper for operations around the original rest high level client using the Decorator Pattern, considering RestHighLevelClient itself is not extensible.
add spark metrics source for flint
integrate the client wrapper to be the aspect for collecting opensearch metrics

Approaches
There are three approaches to achieving aspect-oriented programming (AOP) to provide metrics within Flint: AspectJ library, dynamic proxies, and wrapper (decorator).
AspectJ

AOP Implementation: AspectJ is a robust AOP solution that enables the seamless and enhanced integration of cross-cutting concerns without altering the existing code base. It employs bytecode weaving (either at compile-time or load-time) to provide a wide range of AOP capabilities such as method interception, behavior modification, and even class structure change. PoC: https://github.com/opensearch-project/opensearch-spark/pull/219.
Performance: Because AspectJ alters the bytecode directly, method calls perform virtually natively. This makes it ideal for high-performance and high-throughput applications.
Use Cases: Ideally suited for complicated applications with several cross-cutting concerns. AspectJ is especially handy when requiring advanced AOP features that extend beyond simple method interception.
Challenge: The official sbt-aspectj plugin, https://github.com/sbt/sbt-aspectj, is less maintained. More effort is needed to adapt the AspectJ configuration for the Flint repository.

Java Dynamic Proxies
AOP Implementation: Dynamic proxies make it easier to implement AOP by intercepting methods via reflection. They are limited to interfaces and cannot directly change class behavior or attributes.
Code example:
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.logging.Logger;

public class RestClientInvocationHandler implements InvocationHandler {
    private static final Logger LOG = Logger.getLogger(RestClientInvocationHandler.class.getName());
    private final Object target;

    public RestClientInvocationHandler(Object target) {
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        long startTime = System.currentTimeMillis();
        try {
            Object result = method.invoke(target, args);
            logMetric("success", System.currentTimeMillis() - startTime);
            return result;
        } catch (Throwable t) {
            logMetric("failure", System.currentTimeMillis() - startTime);
            throw t;
        }
    }

    private void logMetric(String status, long duration) {
        LOG.info("Method " + status + ": " + duration + "ms");
    }
}

import org.opensearch.client.RestHighLevelClient;
import java.lang.reflect.Proxy;

public class RestClientProxyFactory {

    public static RestHighLevelClient createProxy(RestHighLevelClient client) {
        return (RestHighLevelClient) Proxy.newProxyInstance(
            client.getClass().getClassLoader(),
            new Class<?>[]{RestHighLevelClient.class},
            new RestClientInvocationHandler(client)
        );
    }
}

RestHighLevelClient realClient = new RestHighLevelClient(...);
RestHighLevelClient client = RestClientProxyFactory.createProxy(realClient);

Performance: Because of the usage of reflection, they have a larger overhead than AspectJ approach. However, for many common applications, this expense is insignificant.
Use cases: Suitable for applications in which the AOP requirements are confined to method interception and interfaces are the norm. It's a suitable alternative for basic AOP scenarios and projects where introducing a dependency like AspectJ isn't ideal.
Wrapper (Decorator) Approach implemented in this PR
AOP Implementation: This approach doesn't use AOP in the traditional sense but can mimic some aspects of it, like method interception, by manually wrapping classes. It's more of a design pattern than an AOP solution and requires explicit coding for each method and class.
Performance: The wrapper approach introduces additional method calls, but these are usually direct and thus have less overhead than dynamic proxies. The performance impact is generally minimal, but it's more than AspectJ.
Use Cases: Best for situations where you need to wrap a limited number of classes or methods, and the interface of the classes is stable. It's straightforward and easy to understand, making it a good choice for smaller projects or when simplicity is key.
Overall Comparison
Performance Hierarchy: AspectJ > Wrapper Approach > Dynamic Proxies. AspectJ is typically the fastest due to direct bytecode manipulation, followed by the wrapper approach with its direct method calls, and finally dynamic proxies with the overhead of reflection.
Complexity and Flexibility: AspectJ is the most complex but also the most flexible and powerful. Dynamic proxies offer a balance between simplicity and flexibility, suitable for medium complexity needs. The wrapper approach is the simplest but the least flexible, especially for large-scale or changing codebases.
Suitability: AspectJ is ideal for large, complex applications with extensive cross-cutting concerns. Dynamic proxies are good for medium-scale applications or where interface-based programming is predominant. The wrapper approach is best for smaller applications or when you need a straightforward solution without extra dependencies or complexities.
Issues Resolved
https://github.com/opensearch-project/opensearch-spark/issues/220
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks for the changes.


Failed building wheel for xformers

问题描述 / Problem Description
安装依赖报错 ERROR: Failed building wheel for xformers
复现问题的步骤 / Steps to Reproduce

执行 (chatchat) MacBook-Pro:Langchain-Chatchat aaron$ pip install -r requirements.txt

实际结果 / Actual Result
`
(chatchat) MacBook-Pro:Langchain-Chatchat aaron$ pip install -r requirements.txt
......
https://mirrors.aliyun.com/pypi/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl (103 kB)
Building wheels for collected packages: xformers
Building wheel for xformers (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [1591 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-cpython-311
creating build/lib.macosx-10.9-x86_64-cpython-311/xformers
copying xformers/version.py -> build/lib.macosx-10.9-x86_64-cpython-311/xformers
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:13:
  /usr/local/opt/llvm/bin/../include/c++/v1/__chrono/system_clock.h:35:10: error: reference to unresolved using declaration
     35 |   static time_t to_time_t(const time_point& __t) _NOEXCEPT;
        |          ^
  /usr/local/opt/llvm/bin/../include/c++/v1/ctime:67:1: note: using declaration annotated with 'using_if_exists' here
     67 | using ::time_t _LIBCPP_USING_IF_EXISTS;
        | ^
  In file included from /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/matmul.cpp:1:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/ATen.h:7:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/Context.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/CPUGeneratorImpl.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/core/Generator.h:3:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:192:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:13:
  /usr/local/opt/llvm/bin/../include/c++/v1/__chrono/system_clock.h:36:33: error: reference to unresolved using declaration
     36 |   static time_point from_time_t(time_t __t) _NOEXCEPT;
        |                                 ^
  /usr/local/opt/llvm/bin/../include/c++/v1/ctime:67:1: note: using declaration annotated with 'using_if_exists' here
     67 | using ::time_t _LIBCPP_USING_IF_EXISTS;
        | ^
  In file included from /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/matmul.cpp:1:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/ATen.h:7:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/Context.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/CPUGeneratorImpl.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/core/Generator.h:3:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:192:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:16:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__mutex/mutex.h:13:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__threading_support:40:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/math.h:380:
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:145:30: error: unknown type name 'ldiv_t'
    145 | inline _LIBCPP_HIDE_FROM_ABI ldiv_t div(long __x, long __y) _NOEXCEPT { return ::ldiv(__x, __y); }
        |                              ^
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:145:82: error: no member named 'ldiv' in the global namespace
    145 | inline _LIBCPP_HIDE_FROM_ABI ldiv_t div(long __x, long __y) _NOEXCEPT { return ::ldiv(__x, __y); }
        |                                                                                ~~^
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:147:30: error: unknown type name 'lldiv_t'
    147 | inline _LIBCPP_HIDE_FROM_ABI lldiv_t div(long long __x, long long __y) _NOEXCEPT { return ::lldiv(__x, __y); }
        |                              ^
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:147:93: error: no member named 'lldiv' in the global namespace
    147 | inline _LIBCPP_HIDE_FROM_ABI lldiv_t div(long long __x, long long __y) _NOEXCEPT { return ::lldiv(__x, __y); }
        |                                                                                ~~^
  In file included from /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/matmul.cpp:1:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/ATen.h:7:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/Context.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/CPUGeneratorImpl.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/core/Generator.h:3:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:192:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:16:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__mutex/mutex.h:13:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__threading_support:40:
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:31: error: use of undeclared identifier 'FP_NAN'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:39: error: use of undeclared identifier 'FP_INFINITE'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                       ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:52: error: use of undeclared identifier 'FP_NORMAL'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                    ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:63: error: use of undeclared identifier 'FP_SUBNORMAL'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:77: error: use of undeclared identifier 'FP_ZERO'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                                             ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:31: error: use of undeclared identifier 'FP_NAN'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:39: error: use of undeclared identifier 'FP_INFINITE'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                       ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:52: error: use of undeclared identifier 'FP_NORMAL'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                    ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:63: error: use of undeclared identifier 'FP_SUBNORMAL'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:77: error: use of undeclared identifier 'FP_ZERO'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                                             ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:402:31: error: use of undeclared identifier 'FP_NAN'
    402 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:402:39: error: use of undeclared identifier 'FP_INFINITE'
    402 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                       ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:402:52: error: use of undeclared identifier 'FP_NORMAL'
    402 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                    ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  [2/13] /usr/local/opt/llvm/bin/clang++ -MMD -MF /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/build/temp.macosx-10.9-x86_64-cpython-311/xformers/csrc/attention/cpu/spmm.o.d -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/chatchat/include -fPIC -O2 -isystem /opt/anaconda3/envs/chatchat/include -I/usr/local/opt/libomp/include -Xpreprocessor -fopenmp -I/private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/torch/csrc/api/include -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/TH -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/THC -I/opt/anaconda3/envs/chatchat/include/python3.11 -c -c /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/spmm.cpp -o /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/build/temp.macosx-10.9-x86_64-cpython-311/xformers/csrc/attention/cpu/spmm.o -O3 -fopenmp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_clang"' '-DPYBIND11_STDLIB="_libcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1002"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17
  FAILED: /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/build/temp.macosx-10.9-x86_64-cpython-311/xformers/csrc/attention/cpu/spmm.o
  /usr/local/opt/llvm/bin/clang++ -MMD -MF /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/build/temp.macosx-10.9-x86_64-cpython-311/xformers/csrc/attention/cpu/spmm.o.d -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/chatchat/include -fPIC -O2 -isystem /opt/anaconda3/envs/chatchat/include -I/usr/local/opt/libomp/include -Xpreprocessor -fopenmp -I/private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/torch/csrc/api/include -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/TH -I/opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/THC -I/opt/anaconda3/envs/chatchat/include/python3.11 -c -c /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/spmm.cpp -o /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/build/temp.macosx-10.9-x86_64-cpython-311/xformers/csrc/attention/cpu/spmm.o -O3 -fopenmp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_clang"' '-DPYBIND11_STDLIB="_libcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1002"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17
  In file included from /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/spmm.cpp:1:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/ATen.h:7:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/Context.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/CPUGeneratorImpl.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/core/Generator.h:3:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:192:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:13:
  /usr/local/opt/llvm/bin/../include/c++/v1/__chrono/system_clock.h:35:10: error: reference to unresolved using declaration
     35 |   static time_t to_time_t(const time_point& __t) _NOEXCEPT;
        |          ^
  /usr/local/opt/llvm/bin/../include/c++/v1/ctime:67:1: note: using declaration annotated with 'using_if_exists' here
     67 | using ::time_t _LIBCPP_USING_IF_EXISTS;
        | ^
  In file included from /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/spmm.cpp:1:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/ATen.h:7:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/Context.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/CPUGeneratorImpl.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/core/Generator.h:3:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:192:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:13:
  /usr/local/opt/llvm/bin/../include/c++/v1/__chrono/system_clock.h:36:33: error: reference to unresolved using declaration
     36 |   static time_point from_time_t(time_t __t) _NOEXCEPT;
        |                                 ^
  /usr/local/opt/llvm/bin/../include/c++/v1/ctime:67:1: note: using declaration annotated with 'using_if_exists' here
     67 | using ::time_t _LIBCPP_USING_IF_EXISTS;
        | ^
  In file included from /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/spmm.cpp:1:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/ATen.h:7:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/Context.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/CPUGeneratorImpl.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/core/Generator.h:3:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:192:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:16:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__mutex/mutex.h:13:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__threading_support:40:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/math.h:380:
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:145:30: error: unknown type name 'ldiv_t'
    145 | inline _LIBCPP_HIDE_FROM_ABI ldiv_t div(long __x, long __y) _NOEXCEPT { return ::ldiv(__x, __y); }
        |                              ^
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:145:82: error: no member named 'ldiv' in the global namespace
    145 | inline _LIBCPP_HIDE_FROM_ABI ldiv_t div(long __x, long __y) _NOEXCEPT { return ::ldiv(__x, __y); }
        |                                                                                ~~^
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:147:30: error: unknown type name 'lldiv_t'
    147 | inline _LIBCPP_HIDE_FROM_ABI lldiv_t div(long long __x, long long __y) _NOEXCEPT { return ::lldiv(__x, __y); }
        |                              ^
  /usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:147:93: error: no member named 'lldiv' in the global namespace
    147 | inline _LIBCPP_HIDE_FROM_ABI lldiv_t div(long long __x, long long __y) _NOEXCEPT { return ::lldiv(__x, __y); }
        |                                                                                ~~^
  In file included from /private/var/folders/ry/yjxnkwt12kl6d1d13q5cz6wc0000gn/T/pip-install-8r4emd8c/xformers_c0c7745ea5d0496abde73f7706cf755e/xformers/csrc/attention/cpu/spmm.cpp:1:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/ATen.h:7:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/Context.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/CPUGeneratorImpl.h:3:
  In file included from /opt/anaconda3/envs/chatchat/lib/python3.11/site-packages/torch/include/ATen/core/Generator.h:3:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:192:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__condition_variable/condition_variable.h:16:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__mutex/mutex.h:13:
  In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__threading_support:40:
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:31: error: use of undeclared identifier 'FP_NAN'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:39: error: use of undeclared identifier 'FP_INFINITE'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                       ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:52: error: use of undeclared identifier 'FP_NORMAL'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                    ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:63: error: use of undeclared identifier 'FP_SUBNORMAL'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:392:77: error: use of undeclared identifier 'FP_ZERO'
    392 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                                             ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:31: error: use of undeclared identifier 'FP_NAN'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:39: error: use of undeclared identifier 'FP_INFINITE'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                       ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:52: error: use of undeclared identifier 'FP_NORMAL'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                    ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:63: error: use of undeclared identifier 'FP_SUBNORMAL'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:397:77: error: use of undeclared identifier 'FP_ZERO'
    397 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                                             ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:402:31: error: use of undeclared identifier 'FP_NAN'
    402 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                               ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:402:39: error: use of undeclared identifier 'FP_INFINITE'
    402 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                       ^
  /usr/local/opt/llvm/bin/../include/c++/v1/math.h:402:52: error: use of undeclared identifier 'FP_NORMAL'
    402 |   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __x);
        |                                                    ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for xformers
Running setup.py clean for xformers
Failed to build xformers
ERROR: Could not build wheels for xformers, which is required to install pyproject.toml-based projects
`
环境信息 / Environment Information

Mac Monterey
langchain-ChatGLM 版本/commit 号：2c146aff74bac427f0a4921971d8472097410bdf
Python 版本 / Python version: Python 3.11.8

我也遇到了同样的问题，后面解决了吗老哥

我也遇到了同样的问题，后面解决了吗老哥
这个上面没有了
https://github.com/deeptest-com/Langchain-Chatchat

后面不打算 mac 跑了，准备用云服务器跑
---- Replied Message ----
| From | Aaron @.> |
| Date | 06/17/2024 18:38 |
| To | chatchat-space/Langchain-Chatchat @.> |
| Cc | Forbesdytto @.>,
Comment @.> |
| Subject | Re: [chatchat-space/Langchain-Chatchat] Failed building wheel for xformers (Issue #4014) |
我也遇到了同样的问题，后面解决了吗老哥
这个上面没有了
https://github.com/deeptest-com/Langchain-Chatchat
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

我也遇到了同样的问题，后面解决了吗老哥

我mac也这样，可以conda install去安装，但是安装后无法调试


Added checks for getObject calls.

XPDO::getObject doesn't always return an object, for various reasons. Not having checks for these calls resulted in 500 errors under certain circumstances.

Thanks! I'm surprised people use this :D


[BUG]: Tollbar flickering in pushed Stack with headerShown: true

Describe the bug
Using the Basic example editor
The toolbar is flickering while typing. View with editor is pushed onto the stack layout with header enabled.
Basic example editor is working fine in main index Stack or if I disable header inside the pushed stack.

We also have an example here lmk if it helps https://github.com/10play/10tap-editor/blob/main/example/src/Examples/NavigationHeader.tsx


fix(semantic): allow root_node to be empty for empty trees.

related to #3082, #3030 and #3069

@Boshen is this a false positive? I can't see how it would change the performance by this much unless it is because of memory layout. I'll mark it as draft until I find out.

CodSpeed Performance Report
Merging #3084 will degrade performances by 3.17%
Comparing 04-24-fix_semantic_allow_root_node_to_be_empty_for_empty_trees (38d4013) with main (8de7399)
Summary
❌ 1 regressions ✅ 29 untouched benchmarks

⚠ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown
Benchmark 	main 04-24-fix_semantic_allow_root_node_to_be_empty_for_empty_trees 	Change
❌ 	semantic[pdf.mjs] 	138.2 ms 	142.7 ms 	-3.17%

@Boshen is this a false positive? I can't see how it would change the performance by this much unless it is because of memory layout. I'll mark it as draft until I find out.

CodSpeed Performance Report
Merging #3084 will degrade performances by 3.17%
Comparing 04-24-fix_semantic_allow_root_node_to_be_empty_for_empty_trees (38d4013) with main (8de7399)
Summary
❌ 1 regressions ✅ 29 untouched benchmarks

⚠ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown
Benchmark 	main 04-24-fix_semantic_allow_root_node_to_be_empty_for_empty_trees 	Change
❌ 	semantic[pdf.mjs] 	138.2 ms 	142.7 ms 	-3.17%

flaky test, just ignore.


diff of parameters

Sorry for all the feature requests.
It would be really useful for the diff method to show the changes in stack parameters of the current stack vs new.

No problem, keep them coming :)
That sounds like a useful feature, should be possible. Do you think it's best implemented as a separate command or as an extension to the existing "diff"?
Also I was thinking of making the diff show only a few lines of context each side of the changes rather than dump the whole template - thoughts?

I like the idea of a context diff - similar to "git diff" output.
For the parameter diff in the same diff output but with a marker eg
------------------
<stack json context diff>

parameter diff
------------------
<parameters content diff>

I'm working towards getting this done. Have added a --context switch to specify amount of context around the diff (default is 3). Have also added a new command bora parameters <stack> which shows you the parameters of any stack. Next step is to get this into the diff.


Class methods

This is great! Have you thought about adding support for methods on classes/objects?

Thank you for the recommendation 👍
I'm not likely to do much with this CLI in the coming year (busy with my Video Hub App) 😁
But this might be the solution for classes https://github.com/Deskbot/TS-Call-Graph


Add prepossessing rule

The domain specified in the config file has been added for processing
See https://github.com/lighttiger2505/lab/issues/76

Coverage decreased (-2.7%) to 50.379% when pulling d77d0d00f83c54910fb81f0beaa186a5000710a1 on add-virtual-gitlab-domain-feature into bfa7d23362e8bd06d2478dc555953535b8f15d7c on master.


[eslint] eslint-plugin-lit

https://www.npmjs.com/package/eslint-plugin-lit is excellent, but we don't include it in our config. Our config should work also when you're not using lit, but since it's our default recommendation I think we should offer this somehow.
How shall we do this? A separate package? I don't think an eslint config can have multiple exports, right?
The create package would also need to update and include the correct linting configuration

What if we added it to the eslintrc for the generators, but not to the @open-wc/eslint-config package?

I feel that people would still miss out. Also, the lit plugin requires some configuration regarding best practices. Id say lets make a separate package.

What if in addition to adding it to the docs we added it to the eslintrc for the generators, but not to the @open-wc/eslint-config package?

That used to be the case, but looking at the generator now, I dont see it there anymore. I guess it got lost in the refactor.
I'd be up for having a lit configuration, but we have to be very clear in how we communicate we have a vanilla config and a lit config.

Now that I think about it, how bad is it to just include this plugin in the default config? Most of it's users will use lit, and for those who don't the plugin just won't do anything. There are lots of linting options that won't ever apply to many people.
Our linting doesn't include that much special anyway, it's easy for people to assemble their own.
The lit plugin isn't lit-element specific either, so for example people using haunted will benefit from it as well.

@daKmoR I tried adding this to our linting config, and now it's giving errors for tests where we're doing things like html`<${tagName}></${tagName}`. The linter doesn't like that, of course :)
I know this is something you use a lot for tests, how do you think we should handle this? Should we still add these linting rules to our default config, and then projects should overwrite it if needed?

i think we have two options

override for our tests
add an exception for tests to the plugin

Can you disable specific linting rules per package? I think option 1 is ok for now, it's a more specialist use case anyway.


SeekBar Progress

It is not an issue all ok but want seekbar progress for every songs is it possible. I try currenplayback position but not working . Kindly help me out this. ThankYou.

You can create an extension like this
fun Media.currentPosition(): PublishSubject<Long> {
      return RxMusicPlayer.position
}

And in your PlayerActivity subscribe to currentPosition and update the seekbar
 media!!.currentPosition().subscribe {
       seekBar.progress = it.toInt()/1000
  }


HTTP exceptions should by-default use the semantically correct code.

Where an HTTP error response needs to be sent back to the client, it would help if it was easier to link exceptions with the right responses. I suggest that

The default parameter for each HTTPException be set to that error code.
An HTTP_CODE constant be added to each HTTPException class.

Along with #1, this would allow an application to use this pattern:
try {
  $app->run();
} catch(HTTPException $e) {
  $code = $e->getCode();
  if ($code < 400 || $code > 599) $code = $e::HTTP_CODE;
  sendAnError($code, $e->getMessage()); //Send back the right semantic response.
} catch(Exception $e) {
  sendAnError(500, $e->getMessage()); //Not sure, send back server error
}

Makes sense, you can open a PR with those changes if you want or wait for me to do it, but right now, i've got A LOT on my shoulders, so i don't know when i'll be able to do them. It shouldn't be a really long PR to create seriously.

https://github.com/crazycodr/standard-exceptions/tree/version2

Hey, looks good!
I read through https://github.com/crazycodr/standard-exceptions/compare/version2 to get an idea of what the changes were.
Couple of things I would suggest that'll make your life easier;

'const' can be overriden. You can set const HTTP_CODE=-1 in BaseErrorException, const HTTP_CODE=400 in ClientErrorException and etc, and override for each concrete class.
getHttpCode() can be static. You don't need an instance to call it, and you can call static methods as instance methods without any issue.
You can reference the HTTP_CODE with static::HTTP_CODE - that'll work with all the class heirarchy properly.

I'm happy to put this together as a pull request - just give me a few days. :-)

I'm still refactoring, don't fork version 2 yet, it's a major WIP. I agree for the static attribute to the function calls but i wouldn't define a const HTTP_CODE = -1 because it breaks/violates Liskov principle a that point. Thats why i have an interface that defines the methods at the low level but the data is not avail until it makes sense to have it.

Version 2 ready but not merged yet. Tell me what you think!
There might be some slight changes like adding tag interfaces or documentation changes, but overall it is what i had envisioned a few months ago!

Fixed by https://github.com/crazycodr/standard-exceptions/releases/tag/2.0.0


feat(material): grid system missing in @angular/material

Feature Description
Hi,
Angular material is listed for example in this article as the most used and top ui lib. for angular. I personally like it 👍
If i compare @angular/material to ngx-bootstrap or ng-prime or even salesforce. I see a missing part 'the grid system'.
bootstrap: https://getbootstrap.com/docs/4.0/layout/grid/
prime: https://www.primefaces.org/primeng-flexgrid/
salesforce/lightning: http://www.lightningdesignsystem.com/utilities/grid/
material.io website describes a grid system here.
The request:
If it's @angular/flex-layout then it should be linked in the documentation of the github repo. as official grid-system.
Or I think personally that @angular/material should add it's own with css classes and not directives => like other libs do.
side notes:

https://blog.logrocket.com/css-grid-or-css-frameworks/
Css grid is not used everywhere. A lot incorp. are still using a grid system from css-frameworks.

I see some teams in companies including bootstrap only for the grid system on top of @angular/material.

Thank you

Nowadays CSS grid should be preferred to JS grid systems like bootstrap since you can achieve pretty much the same and its performance is much better. I don't see much value in this feature.

This is something we intentionally don't want to add. In particular, we don't want to get into the layout business, especially with so many options already out there (CSS flexbox, CSS grid, etc.). Our focus will continue to be on just the UI components.

thanks. Pretty clear 👍


AMQP multiple receivers (not exclusive Queue)

The actual carbon configuration only allow the user to specify the exchange used to bind a private queue created by carbon on startup and this queue is deleted when you stop the carbon process. So the metrics on those queue are lost.
Attempting to improve our metrics availability, handle better maintenance window and metric traffic spikes without loosing metrics, we have setup all our collectors to send metrics to graphite through AMQP, and did a small patch that allow user to define a queue_name on carbon.conf. That way we don't loose metrics on startup and also could have multiple receivers on the same queue.
I have did that because I didn't found any better way to achieve my goals, would this patch be valuable to the project ?

I found that almost nobody using carbon with AMQP - maybe because that
issue even (or lack of documentation).
So, IMO, if you find some time to make an PR - it will be great!
On Mon, 30 Nov 2015 at 17:45, biancalana<EMAIL_ADDRESS>wrote:

The actual carbon configuration only allow the user to specify the
exchange used to bind a private queue created by carbon on startup and this
queue is deleted when you stop the carbon process. So the metrics on those
queue are lost.
Attempting to improve our metrics availability, handle better maintenance
window and metric traffic spikes without loosing metrics, we have setup all
our collectors to send metrics to graphite through AMQP, and did a small
patch that allow user to define a queue_name on carbon.conf. That way we
don't loose metrics on startup and also could have multiple receivers on
the same queue.
I have did that because I didn't found any better way to achieve my goals,
would this patch be valuable to the project ?
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/issues/481.

Which branch should I use as base 0.9.x ?
On 30/11/2015 15:25, Denis Zhdanov wrote:

I found that almost nobody using carbon with AMQP - maybe because that
issue even (or lack of documentation).
So, IMO, if you find some time to make an PR - it will be great!
On Mon, 30 Nov 2015 at 17:45, biancalana<EMAIL_ADDRESS>wrote:

The actual carbon configuration only allow the user to specify the
exchange used to bind a private queue created by carbon on startup
and this
queue is deleted when you stop the carbon process. So the metrics on
those
queue are lost.
Attempting to improve our metrics availability, handle better
maintenance
window and metric traffic spikes without loosing metrics, we have
setup all
our collectors to send metrics to graphite through AMQP, and did a small
patch that allow user to define a queue_name on carbon.conf. That way we
don't loose metrics on startup and also could have multiple receivers on
the same queue.
I have did that because I didn't found any better way to achieve my
goals,
would this patch be valuable to the project ?
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/issues/481.

—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/issues/481#issuecomment-160696078.

Nah, 0.9.x is in maintenance mode, we have no plans to add new features
there. Please use master.
On Mon, 30 Nov 2015 at 19:22, biancalana<EMAIL_ADDRESS>wrote:

Which branch should I use as base 0.9.x ?
On 30/11/2015 15:25, Denis Zhdanov wrote:

I found that almost nobody using carbon with AMQP - maybe because that
issue even (or lack of documentation).
So, IMO, if you find some time to make an PR - it will be great!
On Mon, 30 Nov 2015 at 17:45, biancalana<EMAIL_ADDRESS>wrote:

The actual carbon configuration only allow the user to specify the
exchange used to bind a private queue created by carbon on startup
and this
queue is deleted when you stop the carbon process. So the metrics on
those
queue are lost.
Attempting to improve our metrics availability, handle better
maintenance
window and metric traffic spikes without loosing metrics, we have
setup all
our collectors to send metrics to graphite through AMQP, and did a
small
patch that allow user to define a queue_name on carbon.conf. That way
we
don't loose metrics on startup and also could have multiple receivers
on
the same queue.
I have did that because I didn't found any better way to achieve my
goals,
would this patch be valuable to the project ?
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/issues/481.

—
Reply to this email directly or view it on GitHub
<
https://github.com/graphite-project/carbon/issues/481#issuecomment-160696078
.

—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/issues/481#issuecomment-160713930
.

 It is very convenient to have a buffer in case of maintenance or problem on the back-office servers.
Using several queues would allow users to have separated data sources: one per DMZ for example.


Issue with MCASInstallDocker.sh on CentOS 8

Deployment failing on following line, commenting out or removing fast resolves.
yum makecache fast > /dev/null 2>&1 || exit_on_error "Failed adding repo"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e21ac1e4-295d-74f4-8217-087203c54bb7
Version Independent ID: 229ddf62-fd89-8e05-a55a-6a894a57c13a
Content: Configure automatic log upload using on-premises Docker
Content Source: CloudAppSecurityDocs/discovery-docker-ubuntu.md
Service: cloud-app-security
Product: ****
Technology: ****
GitHub Login: @shsagir
Microsoft Alias: shsagir

@k-e-v-i-n-c-o-s-t-e-r  Thanks for contacting Microsoft about your issue.
As we understand it, you're describing a problem with the product itself and not with the product documentation. Please open a support ticket or Send feedback so that we can investigate.


[jsx] add jsx support to playground

Add JSX support to playground to support the Lit Labs React package.

excellent :) i think this is ready for a review, next up syntax highlighting


[SDP-1151] Polish the single-tenant to multi-tenant migration guide

Preview is available here:http://developers-pr511.previews.kube001.services.stellar-ops.com


Exclude current document from similarity search

When using the similar method on an index, the current document is returned as a similar document. This should be excluded.

In #22 I made this a concern of the Wagtail Vector Index, not the backend's. That does mean if all the similar documents are returned for the same object, then we may get no results.
Should the issue say "Exclude current indexable object from similarity search" given that each object can have one or more documents (Embedding instances)?
It would be nice if the backends had awareness of documents being linked and returning collections of documents, not documents. I don't think this would be possible but I did not look very deeply into it.
We could also look at making follow-up queries until we get a desired count of unique objects ("document collections") to make the results a bit more useful.


(doc) Add documentation for apt::key parameters and apt::pin parameters

Add documentation for apt::key parameters and apt::pin parameters.
Fix minor spelling error

@cmurphy @mhaskel @cyberious @hunner Could you have a look at why Travis is saying:
/home/travis/.rvm/rubies/ruby-1.8.7-p374/bin/ruby -I/home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib:/home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-support-3.2.0/lib /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/exe/rspec --pattern spec/\{classes,defines,unit,functions,hosts,integration\}/\*\*/\*_spec.rb --color
/home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:512:in `all_hooks_for': return from proc-closure (LocalJumpError)
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:564:in `process'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/flat_map.rb:11:in `map'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/flat_map.rb:11:in `flat_map'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:563:in `process'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:429:in `register_globals'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:394:in `set_it_up'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:361:in `subclass'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:253:in `describe'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/dsl.rb:43:in `__send__'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/dsl.rb:43:in `describe'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/dsl.rb:82:in `__send__'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/dsl.rb:82:in `describe'
	from /home/travis/build/puppetlabs/puppetlabs-apt/spec/classes/apt_spec.rb:2
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1226:in `load'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1226:in `load_spec_files'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1224:in `each'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1224:in `load_spec_files'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:97:in `setup'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:85:in `run'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:70:in `run'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:38:in `invoke'
	from /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/exe/rspec:4
/home/travis/.rvm/rubies/ruby-1.8.7-p374/bin/ruby -I/home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/lib:/home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-support-3.2.0/lib /home/travis/.rvm/gems/ruby-1.8.7-p374/gems/rspec-core-3.2.0/exe/rspec --pattern spec/\{classes,defines,unit,functions,hosts,integration\}/\*\*/\*_spec.rb --color failed

Lovely.... >.<

Ya. I'm not getting it either :frowning:.

Looks like it's happening on apache, mysql, and vcsrepo too.

It has to be the rspec-core upgrade to 3.2.0. It got released yesterday when everything started breaking. The previous version was 3.1.7 released in October last year.

http://rspec.info/blog/2015/02/rspec-3-2-has-been-released/

this should be a trivial upgrade for anyone already using RSpec 3.0 or 3.1, but if we did introduce any regressions, please let us know, and we'll get a patch release out with a fix ASAP.

I'd say we found a regression :smile:.

I've submitted an issue and pinned rspec-core, so a rebase should fix this. Or since it's just a docs change @daenney or @mhaskel could probably merge it as-is.

Yeah, that's a pretty good idea. Done.


Vers 2

@gr2m Can you please help me with where the issue params are supposed to go when I send the POST to the create issue api? I tried to put them in the issueRequest but didn't work. This is the error I'm getting, but didn't find anything after googling it or reading the api docs. Don't mind that token for auth, I already deactivated it. I'm using my auth and one of repos to try creating the issue.
{ message: 'Invalid request.\n\nFor \'links/0/schema\', nil is not an object.',
  documentation_url: 'https://developer.github.com/v3/issues/#create-an-issue' }

@gr2m nevermind! I got it!

@gr2m I'm able to create an issue! Right now I hardcoded the URL to one of my repos, but for the bot, should the issue be created in the hoodiehq/camp repo?

hey @agonzalez0515 sorry that I didn’t get to review the PR yet, probably won’t get to it today either :( but will do by Monday latest

so I finally get to catch up with Hoodie, I’m so sorry to let you wait for so long.
To answer your question: yes, create issues on the hoodiehq/camp repo 👍

I was not able to create an issue with the latest version (https://github.com/hoodiehq/first-timers-only-bot/pull/6/commits/d40efa39f1e07f90889ab4cab2ac5413af1fc283) of the bot myself. Do you have any changes local that you have not yet pushed maybe?

I just pulled the latest version into another of my computers, didn't touch
any of the code except to remove the .env, and used my token from the
command line and it worked.
https://github.com/hoodiehq/first-timers-only-bot/issues/9
These are the scopes I have for my token:
repo
Full control of private repositories

repo:status

Access commit status

repo_deployment

Access deployment status

public_repo

Access public repositories
On Fri, Jun 9, 2017 at 3:04 AM, Gregor Martynus<EMAIL_ADDRESS>wrote:

I was not able to create an issue with the latest version (d40efa3
https://github.com/hoodiehq/first-timers-only-bot/commit/d40efa39f1e07f90889ab4cab2ac5413af1fc283)
of the bot myself. Do you have any changes local that you have not yet
pushed maybe?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hoodiehq/first-timers-only-bot/pull/6#issuecomment-307350068,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUEV4h0K-piaMVkoG0l3FSVIgqdaqvLTks5sCRjKgaJpZM4NS6V6
.

--
Angelica R. Gonzalez
Software Engineer
linkedin.com/in/angelica-r-gonzalez
github.com/agonzalez0515 http://github.com/agonzalez0515
310-292-0098

confirmed, that worked. Good thinking with the token scopes. I forgot to give it the public_repo access, the others are not needed. We should handle that error though, I’ll make an issue so we don’t forget


Not all the gear items

Not all of the gear items are in the loadout calculator. Also the brand affinity is wrong on Toni Kensa and Annaki.

Thank you for reporting this! Updating the gear to v4.5 data is still in progress. Weapons and Shirts have been updated, but Hats and Shoes have not. Confirmed the brand affinity values are wrong and will update them as well. I'm going to open a separate issue for the brand affinity bug since it's a much smaller fix than adding the remaining new gear.

 Brand Affinity Bug

 Add Missing Gear Data

 Brand Affinity Bug

dea49e8e931886b073eb6a0cba0bdc81d9164e47 Fixed the brand affinities. Remaining gear will be added in a later update.

e4d1058d79bc6cae7ff20c9f218c0d97df5a7b05 Added all hats through v4.6. Shoes are next.

28e67b42949fc9ce23b1326bfed2db0df31d8465 Added all shoes through v4.6. Also added any missing gear.


[Bug]: Strange HMR bug after removing <style> in Vue SFC

Version
System: Window
Browser: Edge
vue: 2/3
and others node js 18/20

Details
i just create a pure project with pnpm create rsbuild@latest.
And then run the project with pnpm run dev . it's ok and i dont edit anything.
when i delete <style></style element in App.vue. It will throw an error writting "Cannot read properties of undefined (reading 'call')". Then i stop the HMR and run the project again. It will be OK.
I think that it has some strange problem with HMR
Reproduce link
not link
Reproduce Steps
pnpm create rsbuild@latest
cd project
pnpm i
pnpm run dev
delete style element in App.vue

i cant reproduce with rspack.
after debugging with rsbuild, I find vue style query triggers vue-loader before the vue file does, which is difference from the correct orders in rspack. The vue loader throws errors since there is no style block in the descriptor when handling the style query.

I reproduce with the following rspack config:
const rspack = require('@rspack/core');
const { VueLoaderPlugin } = require('vue-loader');

/** @type {import('@rspack/cli').Configuration} */
const config = {
  entry: './src/index.js',
  plugins: [
    new VueLoaderPlugin(),
    new rspack.HtmlRspackPlugin({}),
    new rspack.CssExtractRspackPlugin({
      runtime: false,
    }),
  ],
  // experiments: {
  //   css: true,
  // },
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: [
          { loader: rspack.CssExtractRspackPlugin.loader, options: {} },
          'css-loader',
        ],
        type: 'javascript/auto',
      },
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          // Note, for the majority of features to be available, make sure this option is `true`
          experimentalInlineMatchResource: true,
        },
      },
    ],
  },
};
module.exports = config;

My guess of about the process:
CssExtractRspackPlugin loader calls this.importModule, which introduce an extra module that derives from the css module generated by vue-loader (App.vue?type=style). This extra module is handled by ModuleExecutor. When the style block in the vue file is removed, rspack calls ModuleExecutor::hook_before_make to rebuild the extra module before rebuilding  others. When vue-loader processes the extra module, error is thrown since there is no style block in the vue descriptor.

this should be fixed in https://github.com/web-infra-dev/rspack/pull/7878 and released in 1.0.5, @CPunisher can you help verify it

@ZhangTaibin please try 1.0.5

1、It' OK with project creating by pnpm create rspack@latest

It' done when use Rspack CLI to create project.
When use<EMAIL_ADDRESS>to create project. If i change CSS content, it's done.
But it's not done When i delete <style></style> tag or clear all CSS content. Throw error Cannot read properties of undefined (reading 'content')
System: Windows 11

delete style tag  & throw Cannot read properties of undefined (reading 'content') error in Rsbuild 1.0.4

+1. It can also be reproduced in the rsbuild example.
https://github.com/web-infra-dev/rsbuild/tree/main/examples/vue

Rspack Cli is done. But Rsbuild is not done.
This use Rsbuild:

This use Rspack Cli:

Let's say module A imports module B by one of A's loaders with importModule:
In the initial build, when A is being built, B is executed so everything is ok.
In the hmr rebuild, B is being rebuilt before A by the following code. But actually B should not be built since there's no style block in A. https://github.com/web-infra-dev/rspack/blob/30509316e514e50768ffa86169026769a8b468f9/crates/rspack_core/src/compiler/module_executor/mod.rs#L68
I come up with 3 solutions:

Add undefined checks for vue-loader, which is the most easy way.
Merge the executor artifact into the main artifact. This solution was once rejected.
Do not rebuild B ahead. Instead, let A introduce B again. I'm not sure this solution introduces other problems.


Test script swallows stack trace

Recently started receiving CI failures where the only info from the CI was an assertion error that the command failed, but lacked any context for what caused the failure.  It took considerable effort to determine the cause of the failure, which couldn't be reproduced locally.
The test script needs to preserve errors and output them.

Environment summary
Install Method (e.g. pip, interactive script, apt-get, Docker, MSI, edge build) / CLI version (az --version) / OS version / Shell Type (e.g. bash, cmd.exe, Bash on Windows)
azure-cli (2.0.30)

acr (2.0.22)
acs (2.0.28)
advisor (0.5.0)
appservice (0.1.29)
backup (1.0.7)
batch (3.1.11)
batchai (0.1.6)
billing (0.1.7)
cdn (0.0.13)
cloud (2.0.12)
cognitiveservices (0.1.11)
configure (2.0.14)
consumption (0.2.2)
container (0.1.19)
core (2.0.30)
cosmosdb (0.1.19)
dev-tools (0.1.1)
dla (0.0.18)
dls (0.0.19)
eventgrid (0.1.11)
eventhubs (0.1.0)
extension (0.0.10)
feedback (2.1.0)
find (0.2.8)
interactive (0.3.17)
iot (0.1.18)
keyvault (2.0.20)
lab (0.0.17)
monitor (0.1.3)
network (2.0.25)
nspkg (3.0.2)
profile (2.0.20)
rdbms (0.1.0)
redis (0.2.11)
reservations (0.1.1)
resource (2.0.25)
role (2.0.20)
servicebus (0.1.0)
servicefabric (0.0.11)
sql (2.0.23)
storage (2.0.27)
testsdk (0.1.0)
vm (2.0.28)

Python location '/home/trpresco/env/bin/python'
Extensions directory '/home/trpresco/.azure/cliextensions'

Python (Linux) 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609]

After creating a fresh virtual environment and re-running dev_setup, I don't see this behavior anymore. If it resurfaces, I'll reopen.


Add support to run ansible-navigator with execution environment

Fixes https://github.com/ansible/vscode-ansible/issues/468

Add settingManager to extract execution-environment settings for the extension
Modify ansible-navigator command line execution in terminal to update EE parameters if EE is enabled
Add support to run playbook with virtual env enabled

Currently, there are no test cases at all for the terminal run feature using ansible-playbook and ansible-navigator run. It might take some time to add the test suite and I will do it in a follow-up PR


Do not save configurations after close the app and then reopening it

Describe the bug

[x] Do not save config Show zero balance

To reproduce the behavior
Version test: v1.0.1(140)
Device test: IP 11
Steps:

Go to the Customization screen
Show zero balance = OFF
Close the app
Re-open the app
Go to the Customization screen then observe the information displayed

Actual: Do not save config Show zero balance
https://user-images.githubusercontent.com/117999489/236722756-714a8ac9-5c93-4c3f-9aba-3f8c598880c6.mp4
Expect: Save config Show zero balance

[x] Do not save Manage dApp access

Version test: v1.0.1(142)
Devices: IP 11
Validation passed.


Document performance tips on second run of Qodana

This is something we've done locally for Qodana and I'm willing to share this information:
First, run

Mount /root/.cache into Qodana container
Execute the first clean run of Qodana (--save-report), first run will be very slow because IDEA needs to index everything and - parse everything
After a successful run, run archivation of the idea folder, which is located in a folder that was mounted to /root/.cache, and save artifact into shared-storage (in our case it's minio)

Second run

Download artifact and unpack it, you should have an "idea" folder
Mount /root/.cache into Qodana container
Second run will be much faster as IDEA has a cache and does not need to index/parse everything again

Ref.: https://youtrack.jetbrains.com/issue/QD-697

Hi @oleg-andreyev,
Thank you for sharing your tips!
Starting from version v2021.1.17-eap Qodana supports --cache-dir argument. Please find more information here.
Please be informed that the Github Issues section in this repository will be disabled as of April 5, 2021. Contact us at<EMAIL_ADDRESS>or via our issue tracker. We are eager to receive your feedback on the existing Qodana functionality and learn what other features you miss in it.


updating build scripts to use new korebuild and adding a hack to fix …

…build

@brentschmaltz

:shipit:


Update label-on-approval.yml

Which Issue(s) This PR Fixes(Closes)

Fixes #issue_id
Brief Description

How Did You Test This Change?

🚀Thanks for your contribution🎉. CodeRabbit will review your code first🔥


AssemblyScript

This is largely an experiment and learning experience. I know almost nothing about AssemblyScript so far.
TODO:

[ ] Can we avoid the @assemblyscript/loader dependency? Looking to have zero dependencies

I'm thinking of abandoning this. AS seems to be an early stage language with a lot of missing features. It's not the drop in replacement that I hoped it would be.


Add Recruitment Event Attendance Page

Create a page that will allow taking attendance of candidates at recruitment events. This can just be a simple form of name, year, email, major, etc. Use preloading, such that if a candidate came to a previous event and starts typing their name, it should pop up and they can just prefill their information. Similarly, when applying, if a user exists from a recruitment event, pull their information to prefill some of the form.

[ ] Create routings
[ ] React Component with Form to create account/log attendance
[ ] API Post Request [FRONT END]
[ ] API Post Request [BACK END]
[ ] API Get Request (By name for autofill)
[ ] Implement Autofill Box/Button on Attendance Form
[ ] Implement Autofill Box/Button on Application Form

Implemented in https://github.com/BUUPE/Inquisitor/tree/improvements/3.0


gcc / gfortran 13

@LKedward thanks again for this excellent work. Do you plan to make a new release with most recent gcc compilers, e.g., gfortran-13 or newer if available by the time?
Can you also confirm if you intend to keep the binary file name fixed for the foreseeable future? This would be good for installation automation to find the binary file with the same name always at: https://github.com/LKedward/quickstart-fortran/releases/latest regardless of the release version.

Also, is it possible to add commonly used linux binaries like make and wget in the release?


21.05 & Unstable Unable to emulate TPM with libvirt

Describe the bug
When creating a VM with virt-manager and adding a TPM2 device the following errror occurs:
Error starting domain: Unable to find 'swtpm' binary in $PATH: No such file or directory

Traceback (most recent call last):
  File "/nix/store/s7hs76h96ilg58b4ch401r09lv3lv2lp-virt-manager-3.2.0/share/virt-manager/virtManager/asyncjob.py", line 65, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/nix/store/s7hs76h96ilg58b4ch401r09lv3lv2lp-virt-manager-3.2.0/share/virt-manager/virtManager/asyncjob.py", line 101, in tmpcb
    callback(*args, **kwargs)
  File "/nix/store/s7hs76h96ilg58b4ch401r09lv3lv2lp-virt-manager-3.2.0/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn
    ret = fn(self, *args, **kwargs)
  File "/nix/store/s7hs76h96ilg58b4ch401r09lv3lv2lp-virt-manager-3.2.0/share/virt-manager/virtManager/object/domain.py", line 1329, in startup
    self._backend.create()
  File "/nix/store/8liinkhdjmwdkiwg5d001d3avn68ibrd-python3.8-libvirt-7.0.0/lib/python3.8/site-packages/libvirt.py", line 1353, in create
    raise libvirtError('virDomainCreate() failed')
libvirt.libvirtError: Unable to find 'swtpm' binary in $PATH: No such file or directory

It seems like libvirt depends on calling swtpm to perform some TPM actions. This is "important" if one wishes to run Windows 11 in a virtual machine.
Steps To Reproduce
Steps to reproduce the behavior:

Enable libvirt
Install virt-manager
Create a VM
Add an emulated TPM device
Start the VM

Expected behavior
libvirt depends on swtpm for this functionality, we should also depend on it.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 5.10.76, NixOS, 21.05.3990.372e59d2af7 (Okapi)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.16`
 - channels(root): `"nixos-21.05.3990.372e59d2af7, nixos-hardware, unstable-21.11pre327669.b67e752c29f"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
https://github.com/NixOS/nixpkgs/blob/nixos-21.05/pkgs/development/libraries/libvirt/default.nix
# a list of nixos modules affected by the problem
module:
https://github.com/NixOS/nixpkgs/blob/nixos-21.05/nixos/modules/virtualisation/libvirtd.nix

@fpletz
@globin

https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualisation/libvirtd.nix#L51

Also: https://search.nixos.org/options?channel=unstable&show=virtualisation.libvirtd.qemu.swtpm.enable&from=0&size=50&sort=relevance&type=packages&query=swtpm

@thiagokokada I was certain I searched unstable, must've had a brainfart. Thanks for the correction.


Add to Thread default_options

Why doesn't just defining default_options work?

I've added a failing test here https://github.com/lcpriest/bigcommerce_api/compare/master...threadsafety

Just added a more relevant test. Yay, it still works!

@bradleypriest I merged 2 tests into one commit, ready for you to push the button

Yeah, this should do it. LGTM

Just reran the test without the modifications and it broke, so we are definitely fixing something here

Aye Aye Sir

:+1:


Review conversions and ensure consistency

Continued from https://github.com/PyO3/pyo3/pull/3197#discussion_r1225910628
We would like to ensure that we're consistent in how conversions from Python objects to Rust objects select for what's allowed.
I think the right approach would be to do something like https://github.com/PyO3/pyo3/blob/main/guide/src/conversions/tables.md where for each Rust type we state what Python types will convert to it (i.e. FromPyObject), and what Python type(s) it will convert back into (i.e. IntoPy<PyObject>).
That information does live on that page, but perhaps it can benefit from being rearranged.
In general we seem to be preferring conversions which are allow the user to be a bit loose with typing (e.g. string for IP address). So I think we should ensure we stick to this philosophy everywhere (e.g. maybe we should accept int for bool, or even all truthy types)?
We may also wish to consider a "strict" mode where only the exact Python type can be input (e.g. Python bool <-> Rust bool).

Can I take it?

Sure thing, please do! Is there any extra information you need to get started?

Hey! If this is still open and something that requires improvement, I would be interested to a take look. Hopefully, I could contribute more in the future.

Hello, thank you for your interest! Yes, this is absolutely still open to improvement.
First, I'd suggest starting with updating the conversions documentation in tables.md as I wrote in the original post above.
Second, if you're interested in going beyond collecting what's currently implemented to make things better, I think we would like to go down the path of having "default" conversions which allow a range of inputs and also a user-facing attribute to control when they want exactly a specified type.
I wrote about this topic most recently in https://github.com/PyO3/pyo3/pull/3638#issuecomment-1858583166
We called the option #[pyo3(noconvert)] in that PR.


[Turbo] Unable to use function service in Attribute Broadcast

Hi,
I would like to use the service function in the Broadcast attribute. Example:
#[Broadcast(topics: ['@=service("App\\Service\\Generator").generate("songs_by_artist_" ~ entity.getId())'])]

But it doesn't work. I have the following error:
The function "service" does not exist around position 1 for expression container('App\\Service\\Generator').generate().

Hi,
This issue is still ongoing.


ambiguous qualifier 'd' (debug,die)

hello I have this issue
└─$ chaos -d uber.com 1 ⨯
Warning: ambiguous qualifier 'd' (debug,die)
Died: Unknown qualifier -d

@karim-jpg this doesn’t look like an error from chaos client project, could you confirm if you installed the correct binary?


Why don't you have Korean version of language guide?

Hello, I'm Korean student who are studying programming.
I think there are many Korean people who are interested in programming.
So, if wren has  Korean version of language guide, many Koreans would be wren user.
I added part of Korean version of language guide, and if you like it I will add more!
Why don't you have Korean version of language guide?
Have a good day :)

Thank you for the initiative to translate the docs 😄
Please, use git rebase -i origin/master command to organize your commits, then git push --force-with-lease to update your PR.

I mentioned this on the other PR too. I love the idea of having this translation, but I think you'll be able to move faster by doing it in its own repo. :)


Bump required cmake to 3.14

This should have gone into PR #366, since file(CREATE_LINK) was introduced in cmake 3.14, not sure how it slipped through the CI.

I'm fine with this for main. In fact, if we're going to bump cmake, I would recommend going to 3.15 -- among other things, the new-to-3.15 -B and -S arguments make for much simpler instructions when explaining how to build the project to people unfamiliar with cmake (no more "mkdir build ; cd build ; cmake .." dance).
But I think we should be very careful about backporting this to released branches. Most projects try to avoid changing minimal build dependency requirements for existing release families.

I'm not sure what to do regarding a v3.1.11 release. The risk seems low, since it's likely that anyone restricted to a pre-3.14 CMake won't adopt a new release of Imath, but possibly that's not a good assumption.
The next minor release of Imath might be quite a while, I'd prefer to move forward, but if that's bad policy, I'm fine being conservative and not release this in a patch.

I decided to wait for the next minor release for this, so it's not going into 3.1.11.
And I'll submit another bump to 3.15 that also updates the documentation in reference to -S and -B.


feature: add capital A to add all current panes

The purpose of the feature is to add all current panes to the list.
By having many panes opened before using the plugin, you have to manually switch to each tab and add it one by one.
It's a little bit painfull, especially by launching zellij with layouts that have many panes at the beginning.
So with A you can add them all at once.

Nice! Great idea :)


Sanity check of user login page

I see nothing to do on the login page, it behaves exactly how I would expect and it has no code I would change (there isn't much code in the first place).


raftstore: disable PreVote

There is a bug when we enable both check_quorum and prevote, which leads no leader. In order to release a stable 2.1-beta, we should disable prevote temporary.
See more: https://github.com/coreos/etcd/issues/9586

LGTM

You may need to update the template.

LGTM

/run-all-tests

/run-unit-test