Make ClientRequestBase mock friendly

Description
I was mocking WebClient and I found some issues related to null pointers and unable to mock relevant methods.
This was the method I had:
    private WebClient mockWebClient(Status status) {
        WebClient webClient = Mockito.mock(WebClient.class);
        HttpClientRequest request = Mockito.mock(HttpClientRequest.class);
        HttpClientResponse response = Mockito.mock(HttpClientResponse.class);
        doReturn(request).when(webClient).post(anyString());
        doReturn(request).when(request).header(any(HeaderName.class), anyString());
        doReturn(response).when(request).submit(any(Object.class));
        doReturn(OpenAiChatResponse.create(null, null, 0, null, null, null, List.of(), null)).when(response).as(OpenAiChatResponse.class);
        when(response.status()).thenReturn(status);
        return webClient;
    }

Some issues:
java.lang.NullPointerException: Cannot invoke "io.helidon.http.Method.equals(Object)" because "this.method" is null
	at io.helidon.webclient.api.ClientRequestBase.rejectHeadWithEntity(ClientRequestBase.java:484)
	at io.helidon.webclient.api.ClientRequestBase.submit(ClientRequestBase.java:267)
	at io.helidon.ai.openai.OpenAiChatClientTest.mockWebClient(OpenAiChatClientTest.java:66)

Invalid use of argument matchers!
0 matchers expected, 1 recorded:
-> at io.helidon.ai.openai.OpenAiChatClientTest.mockWebClient(OpenAiChatClientTest.java:67)

This exception may occur if matchers are combined with raw values:
    //incorrect:
    someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
    //correct:
    someMethod(anyObject(), eq("String by matcher"));

For more info see javadoc for Matchers class.

	at io.helidon.webclient.api.ClientRequestBase.submit(ClientRequestBase.java:269)
	at io.helidon.ai.openai.OpenAiChatClientTest.mockWebClient(OpenAiChatClientTest.java:67)

Documentation
NA

I have added a test. This is without the head fix:
[ERROR] io.helidon.webclient.tests.WebClientMockTest.useMock  Time elapsed: 0.287 s  <<< ERROR!
java.lang.NullPointerException: Cannot invoke "io.helidon.http.Method.equals(Object)" because "this.method" is null
	at io.helidon.webclient.api.ClientRequestBase.rejectHeadWithEntity(ClientRequestBase.java:484)
	at io.helidon.webclient.api.ClientRequestBase.submit(ClientRequestBase.java:267)
	at io.helidon.webclient.tests.WebClientMockTest.mockWebClient(WebClientMockTest.java:54)
	at io.helidon.webclient.tests.WebClientMockTest.useMock(WebClientMockTest.java:41)

And this is without the final remove:
[ERROR] io.helidon.webclient.tests.WebClientMockTest.useMock  Time elapsed: 0.296 s  <<< ERROR!
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:

Invalid use of argument matchers!
0 matchers expected, 1 recorded:
-> at io.helidon.webclient.tests.WebClientMockTest.mockWebClient(WebClientMockTest.java:54)

This exception may occur if matchers are combined with raw values:
    //incorrect:
    someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
    //correct:
    someMethod(anyObject(), eq("String by matcher"));

For more info see javadoc for Matchers class.

	at io.helidon.webclient.api.ClientRequestBase.submit(ClientRequestBase.java:269)
	at io.helidon.webclient.tests.WebClientMockTest.mockWebClient(WebClientMockTest.java:54)
	at io.helidon.webclient.tests.WebClientMockTest.useMock(WebClientMockTest.java:41)

@tomas-langer @romain-grecourt could you approve this before the new release of Helidon?. We need ot for AI.


README: Sort methods alphabetically

:abc: Incremental refactoring of README content, step 1, based on discussion in #92 (this specific comment).
No change to content, with these few exceptions:

Split demand() and require() for sorting consistency, with an explicit anchor added to demand() title and a link to it used in require() docs
Add .wrap(70) to example code in .locale() docs, in order to remove unnecessary horizontal scroll in npm
Add .wrap(null) to example code in .updateLocale() docs, to remove horizontal scroll in npm

Everything else should be identical. To see the new README content in action, look at my branch.
Hopefully this makes it easier for folks to jump around and find stuff when reading through the docs.

@nexdrew awesome this looks great, :shipit: at will.

@nexdrew rebased and merged here: https://github.com/bcoe/yargs/pull/217


Add scripts/extract_documentation.py

See #653

Codecov Report
Patch coverage has no change and project coverage change: +0.44% :tada:

Comparison is base (da1b79e) 79.82% compared to head (2784865) 80.26%.

:exclamation: Current head 2784865 differs from pull request most recent head 0d5e2f7. Consider uploading reports for the commit 0d5e2f7 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #656      +/-   ##
==========================================
+ Coverage   79.82%   80.26%   +0.44%
==========================================
  Files          78       77       -1
  Lines        4937     4885      -52
==========================================
- Hits         3941     3921      -20
+ Misses        996      964      -32

see 15 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

As for the first question, it was originally in the other project but then it was suggested that we should be running the extraction on every SDDB commit so our chatbot is always up to date, so I moved it back here.


Add a more user-friendly message when a session is not found

It would be nice to have a better 404 message when a session cannot be found.
Right now, it displays:
NotFoundError: Couldn't find session
    at createResoniteApiError (/usr/src/app/routes/index.js:26:12)
    at handle (/usr/src/app/routes/index.js:36:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)

Which can be interpreted as an error by users, I think a text like:
Whoops, this session cannot be found.
Check that the link is valid, that the session didn't end or that the session is visible publicly.

Would do better.

Updated!
Thank you: https://github.com/Yellow-Dog-Man/go.resonite.com/blob/main/routes/index.js#L26


Missing file scripts/llava/zero3.json

When I run bash scripts/llava/train.sh,
I got the error
ValueError: Expected a string path to an existing deepspeed config, or a dictionary, or a base64 encoded string. Received: scripts/llava/zero3.json.
Maybe the authors should upload the zero3.json file into the repository? Thanks!

Uploaded.
There have been many updates to the toolkit recently. We will soon check if the previous training code still runs.


Adding textType option for SSML

This enabled specifying SSML input instead of plaintext with the hardcoded text value for TextType.
Use: specify ... textType: "ssml" ... in the options object when using polly.textToSpeech().

looks fine, however this will only give basic ssml support as the xml will probably not always encoded correctly - but not sure at the moment


Wrap around MpDeviceLoader all the time

This PR wraps the dataloader with MpDeviceLoader all the time in order to mark step even in the single worker setting.
Fixes: #310

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!


update ubi for openssl fix --- DO NOT MERGE

Closing this PR, as it is not required. The ubi image is already upgraded as part another PR https://github.com/IBM/ibm-iam-operator/pull/277

Closing this PR, as it is not required. The ubi image is already upgraded as part another PR https://github.com/IBM/ibm-iam-operator/pull/277


drivers: spi: spi_nrfx_spim: Add support for RX buffer from RAM region

This patch adds support for RX buffer placed by a linker in memory region defined in SPIM devicetree node. The buffer is placed in memory region defined as devicetree node. The memory region node's reference is then stored in memory-regions property of SPIM node.
Added build time assertion to check if CONFIG_SPI_NRFX_RAM_BUFFER_SIZE Kconfig symbol has value greater than 0 when given SPIM node has memory-region property.

cc @anangl

@anangl please take a look

@tbursztyka @teburd please review the PR


Watch other directory

Use case:

I build a binary in a/
I launch watchexec in b/

I want watchexec to watch a/ and b/. I think a switch to add an other file/directory would be fine.

This used to exist, but it raises lots of questions about semantics. For example, when you watch a/ and b/, where do you load ignore files from?
Right now you can launch watchexec twice to cover this scenario.

Not really. My use case is that I build rustc in it's source directory, and use it to build a crate. I could add a symlink in the crate directory to the source directory, but that's not really convenient.

Okay, I'm on board with working on this. I'm going to take it slow to make sure the ignore file handling is sane, however. Look for it in 1.7.

Cool!
Just so that you know: I use watchexec even when not programming like latex. I even find it better that carco watch ;)

We have similar issue in our project: there are several directories especially node_modules and .vagga with a lot of subdirectories (up to 100K and more). So it would be nice to be able to run watchexec with specific directories and files to reduce number of watches.
Possibly there should be --watch-dir option (and opposite --no-watch-dir).

Noted. The ignore functionality is in a much better place now and that was the primary blocker for this task. Will try to hack on it this weekend.

As of e16a6b3a24f8661d214a547a992847b13ea9f410, this is supported. .gitignore files are loaded from each watched path, and path filtering only consults the .gitignore files that cover those paths.
I need to update docs, but if you want to try it out early you can pull from master. This will be in 1.7.0.

You rock!

1.7.0 has been pushed to Cargo.

Just recently we've used watchexec in our company. Thank you!

Glad to hear it! Let me know if there are other things that keep you from being productive with watchexec!

Another non-obvious thing to grasp is how to watch the folder without watching its subfolders?


Embed catapult as submodule

What?
Let's embed catapult as a submodule.
Beforehand, let's double check its license, usage, and deployment strategy.
Comment history
Moved from [third_party] Add catapult as submodule

@dayo09 , have you checked the license for the cataplut project?
If you want to introduce an external module, it is better to create a separate issue for it, check and organize all matters including the license, and proceed with PR only after taking appropriate measures.
Let's create an issue first!

Originally posted by @lemmaa in https://github.com/Samsung/ONE-vscode/issues/1613#issuecomment-1668934482

When I checked the license of catapult module, this project is BSD-3-Clause license even though the LICENSE file in the catapult-project is Chromium. SOSHub said that we can use this project under the license compliance.
https://opensource.sec.samsung.net/view/search?searchword=Y2F0YXB1bHQ
/cc @lemmaa

Originally posted by @jyoungyun in https://github.com/Samsung/ONE-vscode/issues/1613#issuecomment-1668941245

@jyoungyun , my other concern is when deploying. Actually, this tool should be distributed and used. What kind of package structure will it have then?

Originally posted by @lemmaa in https://github.com/Samsung/ONE-vscode/issues/1613#issuecomment-1668948429

@lemmaa As @jyoungyun said, I checked that the license is okay.
About deployment, yes it must include the whole repository for runtime service.
I think another possible approach is to make the 3000+ lines of trace2html of catapult as an npm package and I distribute it.

@dayo09  how about https://www.npmjs.com/package/traceviewer ?

@lemmaa Thanks for the suggestion!
I tried traceviewer and it's missing some directories (py_vulcanize) that trace2html uses. Relacted comment
Now I tried trace2html-cli and got the similar problem.
./node_modules/trace2html-cli/catapult/tracing/bin/trace2html ./res/samples/traces/sample.timeline.json
Traceback (most recent call last):
  File "/home/dayo/git/ONE-vscode/./node_modules/trace2html-cli/catapult/tracing/bin/trace2html", line 13, in <module>
    from tracing_build import trace2html
ModuleNotFoundError: No module named 'tracing_build'

catapult/tracing/tracing_build directory exists in an original project, but it is not included in this npm distribute for some reason.

I stripped the source code to include the files required to run trace2html. (I am not 100 percent sure that it's perfectly stripped). You can see https://github.com/Samsung/ONE-vscode/pull/1612. It's removed some build/infra/test files and third party tools. I can distribute this version of catapult with npm registry.

https://github.com/Samsung/ONE-vscode/issues/1614#issuecomment-1669238696
Yes, it seems that the last publish of both projects was outdated 7 years ago. It wasn't a good choice. :(
Anyway, as long as we follow LICENSE well, I don't think it matters either way.
Therefore, the next thing to consider is the convenience of distribution and installation. In my rough measurements, this package was around 5MB~6MB. I expect #1612 the one you stripped off is probably smaller. Depending on which method you choose, consider the following.
1. Installing with npm

When installing/uninstalling an extension, is it natural for it to be installed/uninstalled as an npm package?
Wouldn't it be burdensome to publish and manage this as an npm package?
Are there any difficulties in testing?
...

2. Included in the extension package as a submodule

When packaging, how can we filter out the necessary parts like #1612 from the entire source?
Will there be any difficulties in testing?
...

In both cases, the catapult project's top-level LICENSE file(https://github.com/catapult-project/catapult/blob/main/LICENSE) will need to be distributed together. (#1612 seems to be missing it.)

@lemmaa
0. Project size

before strip : 1.2G

du -h --max-depth=1 .                                                        1 ↵  9437  12:46:19
60K     ./infra
5.9M    ./dashboard
160K    ./catapult_build
12K     ./bin
228K    ./trace_processor
7.5M    ./telemetry
836K    ./systrace
1.6M    ./devil
664K    ./netlog_viewer
223M    ./tracing
169M    ./dist
5.3M    ./experimental
16K     ./hooks
441M    ./.git
330M    ./third_party
128K    ./skia_bridge
5.8M    ./common
1.2M    ./docs
4.0K    ./build
200K    ./web_page_replay_go
140K    ./perf_issue_service
112K    ./.cipd
256K    ./dependency_manager

after strip : 29M

 du -h --max-depth=1 .                             1 ↵  9447  12:49:45
13M     ./tracing
16M     ./third_party
104K    ./common

1. Installing with npm

When installing/uninstalling an extension, is it natural for it to be installed/uninstalled as an npm package?

As ONE-vscode's dependencies are managed with npm, it's easy to use current test / deployment stages.
It can be added as 'dependencies' (not dev-dependencies) slot so that it is used by extension users.

Wouldn't it be burdensome to publish and manage this as an npm package?

It seems once it's published, there is no addtional / regular distribution required to maintain the package. (I mean, no expiration date exists in npm registry)
And publishing npm registry looks so simple, you need to only configure npm package.json to a minimal level and hit 'npm login '& 'npm publish'
However, catapult-project/catapult git repository is actively maintained, so we may need to update it for a new features someday. I will leave a bash script so that we can do it easily someday.

Are there any difficulties in testing?

I plan to test it inside our extension by simply running the trace2html and checking if the output comes.
It can be done by our current mocha testing infra.
2. Included in the extension package as a submodule

When packaging, how can we filter out the necessary parts like https://github.com/Samsung/ONE-vscode/pull/1612 from the entire source?
Will there be any difficulties in testing?

There is no way I found to use a submodule in its part.
I guess in many part npm distribution is much reasonable. We are now managing all of our dependencies with npm, so there will be much advantage in maintenance.

In both cases, the catapult project's top-level LICENSE file(https://github.com/catapult-project/catapult/blob/main/LICENSE) will need to be distributed together. (https://github.com/Samsung/ONE-vscode/pull/1612 seems to be missing it.)

Sure :-D thanks for the point!

FYI, I'm guessing https://github.com/catapult-project/catapult/blob/main/tracing/trace_viewer.gni is the full list of files required by trace_viewer.

@lemmaa @jyoungyun
I have published catapult-trace2html project, which is a stripped catapult project version only for trace2html tool.
Git repository
https://github.com/dayo09/catapult-trace2html

There are git tags in sync with npm publish.
I added the project discription into README.md and attached the original README.md below.

NPM Registry
https://www.npmjs.com/package/catapult-trace2html?activeTab=readme

I checked that it works well with the DRAFT #1616
LICENSE The npm package's license is set to BSD-3-Clause (itentical to the original catapult project)
AUTHORS, OWNERS files are remained.

[ ] Q. Should I remove 'OWNERS' as it's not directly owned by the origianal authors?

AUTHORS, OWNERS files are remained.

[ ]  Q. Should I remove 'OWNERS' as it's not directly owned by the origianal authors?

According to the third term of the BSD-3 Clause license. Maybe. I guess.


When this library is finished, get in touch with virustotal

https://www.virustotal.com/about/contact/

My library is posted here 👍


When searching by specifying a resource name through clusterpedia, the CLUSTER-IP of the svc searched out is None, and the fuzzy search is the same problem

What happened?
Search svc directly, service-nodeport has CLUSTER-IP
[root@dce-10-6-215-215 ~]# kubectl get svc -n zouzou
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service-clusterip    ClusterIP   <IP_ADDRESS>             8080/TCP         4h44m
service-headliness   ClusterIP   None                     9090/TCP         4h44m
service-nodeport     NodePort    <IP_ADDRESS>           8888:30033/TCP   4h44m
By specifying a name search in clusterpedia, the cluster IP is not searched
[root@dce-10-6-215-215 ~]# kubectl --cluster clusterpedia get svc -n zouzou -l "search.clusterpedia.io/names=service-nodeport"
CLUSTER           NAME               TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
cluster-215-215   service-nodeport   NodePort            8888:30033/TCP   4h44m

What did you expect to happen?
SVC searched through clusterpedia also shows CLUSTER-IP
How can we reproduce it (as minimally and precisely as possible)?
[root@dce-10-6-215-215 ~]# kubectl get svc -n zouzou
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service-clusterip    ClusterIP   <IP_ADDRESS>             8080/TCP         4h44m
service-headliness   ClusterIP   None                     9090/TCP         4h44m
service-nodeport     NodePort    <IP_ADDRESS>           8888:30033/TCP   4h44m
[root@dce-10-6-215-215 ~]# kubectl --cluster clusterpedia get svc -n zouzou -l "search.clusterpedia.io/names=service-nodeport"
CLUSTER           NAME               TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
cluster-215-215   service-nodeport   NodePort            8888:30033/TCP   4h44m
Anything else we need to know?
No response
Clusterpedia Version

# replace the pod name of clusterpedia apiserver
$ kubectl -n clusterpedia-system exec {clusterpedia-apiserver-pod-name} -- apiserver --version=raw
# paste output here

# replace the pod name of clusterpedia clustersynchro-manager
$ kubectl -n clusterpedia-system exec {clustersynchro-manager-pod-name} -- clustersynchro-manager --version=raw
# paste output here

Host Kubernetes version

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.20", GitCommit:"1f3e19b7beb1cc0110255668c4238ed63dadb7ad", GitTreeState:"clean", BuildDate:"2021-06-16T12:58:51Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.20", GitCommit:"7c28a83e67cb506f9df948d7b23698f8f9c279b8", GitTreeState:"clean", BuildDate:"2021-07-15T08:58:53Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

This is indeed an issue on 1.18 kube, due to the 1.22 dependency.
In 1.22 the service will use field .spec.clusterIPs to print CLUSTER-IP
https://github.com/kubernetes/kubernetes/blob/7061dbbf75f9f82e8ab21f9be7e8ffcaae8e0d44/pkg/printers/internalversion/printers.go#L1154-L1163
But in 1.18 service does not have .spec.clusterIPs.
# 1.18 kube
kubectl get svc -o json

@liuzouzou Thank you very much for discovering the issue.
Can you change the description to English so that others can view the issue?
We will fix this issue in 0.3.0, welcome to find more issues like this.

/assign

@feeltimeQ Do you have some ideas on how to solve this bug?

I didn't reproduce this in k8s 1.21, do I need to reproduce it in 1.18, sorry, I don't think I have a good idea, do you have any suggestions? @Iceber

This issue only affects the display when kubectl gets, and will be fixed in the future


CRITICAL [UX Reliability] User avatar and email does not show when using Submit it to someone to submit to a new user

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v9.0.0-9
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @danielrvidal
Slack conversation:
Action Performed:
Create an account on chrome.
Select Track and Budget Expense
Input your name, etc.
Global Create > Track Expense
Input the amount, description > Track
This will take you to your DM
Select Submit it to someone in the actionable whispers
Input the email
Submit it to them
It creates a weird DM where the avater is missing and their email
If I go back to home It also still looks like my DM but without the (you)
If I click into the erroneous DM, it then loads a proper DM where I submitted an IOU.
Expected Result:
The avatar and email of the user you've submitted an expense to shows in the new transaction comment
Actual Result:
The avatar and email are missing
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos

View all open jobs on GitHub

Hey @Kicu do you think this is related to your avatar changes? Or is this due to the lack of accountID for an unknown user

hey @grgia  not sure about avatars yet, however what I know for sure is that I have in no way modified how an email would be displayed.
So if its both missing avatar AND missing email at the same time, my guess would be the root cause is some missing data.
And yes - if accountID would be missing we always display FallbackAvatar (which I guess was the idea :D)

And yes - if accountID would be missing we always display FallbackAvatar (which I guess was the expectation when doing avatars refactor 😄 )

Thanks @Kicu!  This is what I was hoping to confirm. It seems like the main bug here is just the missing email/ first and last name. Which we should have

Proposal
Please re-state the problem that we are trying to solve in this issue.
The avatar and email are missing when "Submit it to someone"
What is the root cause of that problem?
In here, it's using allPersonalDetails which is a local stored value.
Then in HeaderView here when getting report name it will use getDisplayNameForParticipant which uses getPersonalDetailsForAccountID which use allPersonalDetails above that is outdated in this case. Thus unable to get the personal detail of the optimistically added users and title will be empty and the loading will show.
What changes do you think we should make in order to solve the problem?

In https://github.com/Expensify/App/blob/ecb2000f72e666f65c39f953f53341e865876410/src/pages/home/HeaderView.tsx#L106, put personalDetails as the another param to getReportName, then to getDisplayNameForParticipant and to getPersonalDetailsForAccountID
In getPersonalDetailsForAccountID, if personalDetails is inputted, use it here, and only uses allPersonalDetails if input personalDetails is not available.
What alternative solutions did you explore? (Optional)

@shubham1206agra please could you review @nkdengineer's proposal?

@shubham1206agra are you able to review the proposal above asap. thanks!

@grgia do you agree with the selected proposal above?

waiting on @grgia to review selected proposal

@grgia is back from ooo today, I'm sure she'll review the selected proposal

Catching up now

@muttmuure is this getting picked up soon? We're still experiencing this in the CVP flow? It feels like it should be a CRITICAL because it is an error in the core bottom up flow.

It's being worked on here: https://github.com/Expensify/App/pull/45393

@grgia please could you make getting this out your top priority this week?

I think this is now working for me, @muttmuure are you getting this with no error too?

Woohoo! Thanks @grgia, @shubham1206agra and @nkdengineer

PAYMENT SUMMARY FOR AUG 19, if no regressions

Fix: @nkdengineer [$250] OFFER
PR Review: @shubham1206agra  [$250] OFFER
Please complete checklist

@shubham1206agra can you complete checklist?

@nkdengineer Payment sent and contract ended 🎉

@shubham1206agra payment sent and contract ended - thank you! 🎉


Bermuda Stops recieving Advertisments from BT Proxys after a few minutes

Configuration

Describe the bug
I use 2 ESP32 as BT Proxys, after a short time Bermuda stops recieving Advertisments from the Proxy. After a reboot of the ESPs it works for a few minutes.
Diagnostics
I Installed the ESPs via the ESP Bluetooth Installer Website
https://esphome.io/projects/?type=bluetooth
After that i updated them to the latest Firmware via ESPHome in HA
See attached File
config_entry-bermuda-01JDYQTPGVRWN70DE9W5799XW2.json

Hi, sorry for the delay in following up with you.
The issue as you have already worked out seems to be with the esp32's, as Bermuda is seeing them fine to start with, and also still sees the local bluetooth adaptor ok.
I think the problem will be localised at the esp32 devices themselves.
The esphome ready-made projects thingie is great, but the settings aren't well-tuned for Bermuda.
When you first installed esphome onto the ESP32's, did you use an OTA update over wifi, or did you use a USB cable to serial-flash them? It's important to flash them at least once using a serial cable, as there are some flash formatting changes that only happen during a serial update (that only needs to happen once) but they can't be done via OTA updates.
Are they definitely standard ESP32 boards (not S3 or C3 variants)?
If you have any trouble doing that, or if it doesn't solve it, please post your complete esphome yaml file and we'll see what we can work out.

Thanks for your reply. And its no problem that the answer tooks a little bit longer, i`m happy about getting an answer :)
If i take a look to the data sheet of my ESP i have an ESP32 (not S3 or C3).
My ESP32s are the following ones:
diymore ESP32 Mini Development Board ESP32 NodeMCU WiFi Bluetooth ESP32 CH9102F Chip Typ C
The first time commissioning and flashing was via USB and the esp ready-made Project. After that i did an firmwareupdate via OTA to all of the ESPs.
Your named content of the section i couldn`T find in my yamls.
My have the following Content.
Proxy 1
`substitutions:
name: esp32-bluetooth-proxy-2c6b5c
friendly_name: BT_Proxy_Wohnzimmer_ESP32
packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
api:
encryption:
key: (removed for security reasons)
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password`
Proxy 2
`substitutions:
name: esp32-bluetooth-proxy-2d1d3c
friendly_name: BT_Proxy_Arbeitszimmer_ESP32
packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
api:
encryption:
key: (removed for security reasons)
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password`
Proxy 3
`substitutions:
name: esp32-bluetooth-proxy-2d4578
friendly_name: BT_Proxy_Flur_ESP32
packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
api:
encryption:
key: (removed for security reasons)
logger:
level: DEBUG
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password`
If i should flash them again via USB, i need to take a look how to do this :)

No worries. Those configs look good to me. I'd try flashing that via OTA, and see how it goes.
For a USB update, when you click "INSTALL" does it present you with a list of options like this?

The one with the arrow is probably what you want to choose for a usb serial install. The language is a bit confusing!
If you are seeing a different interface from that maybe include some screenshots and I'll see if I can work out the steps for you.

Hey,
thanks for your advice. I can see this window in my Home Assistant ESP Home Dashboard, should i choose this?
Or better what is the next step?

Yep, just choose that option. The process should then be very much like when you first flashed the board - you plug it in via usb, and it will ask you to select the device from a list of serial devices. If you unplug/plug the board at that point you should be able to tell which serial port it is.

I clicked on "Install" on ESP Home. But i think i didn`t solve the Problem. The error still occours.

Or do you think i should install a special bermuda Package?

Someone has further Ideas?
Or have i done something wrong?


n00b question : How do I handle a dynamically generated list of  so that only one gets selected at a time?

I'm trying to use SelectableItem in a dynamically generated list of local Figma styles using map:

My related questions are: 1) how can I make the one that is clicked on the only one that gets selected? 2) how can I know which one is selected in the list?

If someone can point me to an example of how this is best done, I would be very grateful. I have searched and tried for a long while now with no success, and so I thought I would ask here. Will following this example lead me in the right direction: https://codesandbox.io/s/6j1760jkjk

I figured it out


Consider using docker when running tests

It would be really nice if Marten used Docker to spin up PostGres when running tests.
I'm happy to work on this if it is wanted.

If you look at the repo https://github.com/JasperFx/marten/blob/master/docker-compose.yml, you can use this to run Postgres in docker and run your tests.


Cannot contribute to repo on Windows machines due to test assertion paths

When troubleshooting #498, I ran into the issue that some internal test assertions are looking for a *nix path (../{dir}/) which prevents users on a Windows machine from getting a successful prepublish.
1) paths .expand expands directories into their files:
     AssertionError: expected [ 'foo\\one.js', 'foo\\two.html' ] to have the same members as [ 'foo/one.js', 'foo/two.html' ]
      at test\unit\paths.js:32:47
      at next (native)
      at fulfilled (test\unit\paths.js:4:58)
      at process._tickCallback (internal/process/next_tick.js:103:7)

  2) paths .expand expands directories into index.html when present:
     AssertionError: expected [ 'bar\\index.html' ] to have the same members as [ 'bar/index.html' ]
      at test\unit\paths.js:32:47
      at next (native)
      at fulfilled (test\unit\paths.js:4:58)
      at process._tickCallback (internal/process/next_tick.js:103:7)

Arg, sorry about that. Should use path.sep or path.join(). Happy to accept a PR, otherwise we'll get to this after Polymer 2.0 is out


No file preview under windows

Hi!
I was waiting for the windows release, thanks for making that happen!
I have a couple issues/question however - I have neither file preview (regardless of file extension - tested on txt, nix, json, md, and ini) nor file editing.
Config:

Win10, latest WindowsTerminal for emulator, and pwsh for shell
yazi installed via scoop (but the problem is present on a standalone executable)
tools like vim, jq, fd, fzf, and ripgrep are present in $PATH

yazi is run with the default config - by the way, where is its config folder under windows?
Setting $env:EDITOR  does not bring back file editing upon hitting enter.
Cheers!

Hi there, thank you for giving Yazi's Windows version a try and for reporting the related issues. Your feedback is greatly appreciated, and it will be instrumental in making Yazi for Windows even better!
Regarding the issue with file preview not working, have you followed the instructions in the Wiki to install Git and manually set the PATH to the location of file(1)? You can check this by running file in Windows Terminal.
The configuration files for Windows can be placed in C:\Users\YourName\AppData\Roaming\yazi\config, and I will add this to the Wiki. You will need to edit the opener in yazi.toml to set an application for opening files, such as VSCode.

Thanks for the prompt answer!

Regarding the issue with file preview not working, have you followed the instructions in the Wiki to install Git and manually set the PATH to the location of file(1)? You can check this by running file in Windows Terminal.

Indeed, that was the missing piece. In my case, after a scoop install file the preview works as intended, thanks a lot!

The configuration files for Windows can be placed in C:\Users\YourName\AppData\Roaming\yazi\config, and I will add this to the Wiki. You will need to edit the opener in yazi.toml to set an application for opening files, such as VSCode.

I'll test that shortly, thanks!

Hi @ShrykeWindgrace, since the file preview is working now, I think it's time to close this issue.
If you have any other issues, feel free to file a new issue!


How to self-register

[Enter feedback here]
How to self-register equipment in MDM, what needs to be done on the server? Thank you
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b95868d3-c141-0038-69b2-7a6a84d817d8
Version Independent ID: b68e29a4-fe87-3c20-4abc-06ab815f33ee
Content: Azure AD and Microsoft Intune - Automatic MDM enrollment in the new Portal
Content Source: windows/client-management/mdm/azure-ad-and-microsoft-intune-automatic-mdm-enrollment-in-the-new-portal.md
Service: unspecified
GitHub Login: @nickbrower
Microsoft Alias: maricia

@officedocsbot assign @mypil

Dear @zhaijintao1qwe ,
To self-register corporate devices to MDM, you need to deploy GPO on the local AD server. More details here: Enroll a Windows 10 device automatically using Group Policy
Thank you

@zhaijintao1qwe - From our understanding, the issue you raised has been MaratMussabekov. If you feel it hasn't been answered, please re-open this issue.
Thank you for your contribution to make the docs better! Much appreciated!

@officedocsbot close


return a null sourcemap to fix warning 'sourcemap is likely to be incorrect'

Not the best solution, because a null map means the transformation does not move code.
closes #14

Codecov Report

Merging #18 (0b1004a) into master (3e39e7c) will increase coverage by 0.00%.
The diff coverage is 100.00%.

:exclamation: Current head 0b1004a differs from pull request most recent head 65bab52. Consider uploading reports for the commit 65bab52 to get more accurate results

@@           Coverage Diff           @@
##           master      #18   +/-   ##
=======================================
  Coverage   97.35%   97.36%
=======================================
  Files          25       25
  Lines         492      493    +1
  Branches      118      118
=======================================
+ Hits          479      480    +1
  Misses          2        2
  Partials       11       11

Impacted Files
Coverage Δ

src/wrappers/macroPlugin.ts
95.83% <100.00%> (+0.18%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3e39e7c...65bab52. Read the comment docs.


Possible priority inversion

After discussion with @amaltaro and @chwissing, it seems the current logic in condor job creation could lead to priority inversion:

If 110k-priority work-queue-element (WQE) has only FNAL in the whitelist, it has to wait for FNAL's free slot so that the agent can create jobs for such WQE.
If 85k-priority WQE has FNAL and other 9 sites in the whitelist, any free slot in one of 10 sites will create condor jobs for such 85k-prio WQE and assign to all 10 sites.
As a result, 85k-prio WQE can get jobs in the queue at FNAL before the 110k-prio WQE.

According to @chwissing, the agent should take priority of the current jobs at sites into account, so that only jobs of equal or higher priorities should be submitted to such sites.
More discussion is needed to sketch out the details, which is the purpose of this GH issue.

You missed some details from our discussion. Higher priority work is always pulled down by the agents, even if there are no free slots (~25% resources over commitment).
So, the agent might have lower priority jobs created in the local queue, or in the condor local queue, however, it does not mean those jobs will run before the 110k priority. Because the same agent - and all others - would have a bunch of 110k prio jobs pending in condor. The only way to get lower priority jobs running would be to fill resource gaps.
This issue has been extensively discussed and fixed a few times in the past. Around 2 years ago we got it fixed for good.
Unless you can show and prove there is priority inversion (which could happen if schedds are overloaded) originating from a flaw in WMAgent, I don't think there is any issue here.

@amaltaro where is that wiki @ticoann and you put together after all the changes we hammered on over the last years?

There is one (out of more WFs) that were submitted more than a week ago with prio 110k and not a single Condor job seems to be created for it:
TOP-RunIISummer15wmLHEGS-00421
During last week quite some WFs with prios of 95k or 85k got started (=Condor jobs were submitted), while the example one didn't. This surprises people and it would be good to understand why this happening. If the higher priority work is not submitted to Condor lower priority stuff will continue to take resources and people will complain about priority inversion.
Issues with single-core jobs are filling slots before multi-core jobs of higher priority WFs can take them are understood as such, but here we seem to have a different issue, since higher priority jobs are not released and cannot even compete on Condor level.

https://github.com/dmwm/WMCore/wiki/workflow-for-job-creation-and-submission

@thongonary I believe the PU dataset was getting delete for the request you were asking further info on Friday.
https://cmsweb.cern.ch/couchdb/workqueue/_design/WorkQueue/_rewrite/elementsInfo?request=pdmvserv_task_TOP-RunIISummer15wmLHEGS-00421__v1_T_190424_171801_4552
Looking at the first 2 GQE, their SiteWhitelist is set to T1_US_FNAL, while the PU data is only available at
"PileupData":{"/MinBias_TuneCUETP8M1_13TeV-pythia8/RunIISummer15GS-MCRUN2_71_V1_ext1-v1/GEN-SIM":["T2_IN_TIFR","T2_DE_DESY","T3_IN_TIFRCloud"]}

It does not have TrustPUSitelists set to True, so it will not run.

Even if it had TrustPUSitelists  set to True, it would run badly, reading pileup VERY remotely.

The PU was only removed on the last Friday, but the workflow has stayed in such state for more than a week.

Apparently we didn't conclude anything here. Are there any other cases such that we can keep investigating this issue? If not, then I'm afraid there isn't anything that can be done.

Given the lack of activity and more debugging data (and/or new cases), I'd like to close this issue. We can always reopen it if needed. Thanks everyone!

Given the lack of activity and more debugging data (and/or new cases), I'd like to close this issue. We can always reopen it if needed. Thanks everyone!


feat(src): limit plugin load

Pull rules from config
Find ones prefixed with 'disable-autofix'
If plugin scope exists, extract name and import etc.
If no plugin scope, assume builtin and import etc.
This solution should at least minimize packages being imported to just the ones with rules being disabled vs doing a full dir search.

New flow:
Read eslint config
Pull rules with disable-autofix/ and remove prefix
Read node modules eslint plugins
Match plugins to pulled config rules
Only import matched plugins
Disable as usual

This would be a great improvement, it's a good idea
At the moment, I can't use the plugin on my monorepo, because it's using Yarn workspaces, with all the plugins from all the different eslint setups hoisted to the root. So, when the plugin reads node_modules/, it sees all the plugins I haven't got configured on this particular .eslintrc.cjs, and tries to load them. But then those fail to load because they require non-optional configuration.

@dominics thanks for the feedback, that's a great use case to consider. This update should solve that issue and I will circle back with you after it's released to make sure.


List in-progress forms in descending order of latest to earliest timestamps

Describe your changes

Please include a summary of the changes and the related issue/task. Please also include relevant motivation and context. List any dependencies that are required for this change, including links to other pull requests/branches in other repositories if applicable.

Sorted in-progress selectable QuestionnaireForms by the QuestionnaireForm.authored timestamp from latest to earliest.
Related PRs: TBA
Before

After

Issue ticket number and Jira link

Please include the Jira Ticket Number and Link for this issue/task.
REMS-530

Checklist before requesting a review

[x] I have performed a self-review of my code
[x] Ensure the target / base branch for any feature PR is set to dev not main (the only exception to this is releases from dev and hotfix branches)

Checklist for conducting a review

[ ] Review the code changes and make sure they all make sense and are necessary.
[ ] Pull the PR branch locally and test by running through workflow and making sure everything works as it is supposed to.

Workflow
Owner of the Pull Request will be responsible for merge after all requirements are met, including approval from at least one reviewer. Additional changes made after a review will dismiss any approvals and require re-review of the additional updates. Auto merging can be enabled below if additional changes are likely not to be needed. The bot will auto assign reviewers to your Pull Request for you.

After rebasing off origin/dev:


ForeignCode not documented

The problem
ForeignCode only shows up in the Type Graph on this page: https://docs.perl6.org/type/Callable
I get the value like this:
sub just-a-sub {}
say &just-a-sub.^methods;  # -> (< anon > yada < anon > ...
&just-a-sub.^methods[0].WHAT; # -> (ForeignCode)
&just-a-sub.^methods[0].^name;  # -> ForeignCode
&just-a-sub.^methods[0].name;   # -> < anon >
What is the difference between "name" and "^name"?
And I think that "< anon >" means that the method is anonymous (as
in the "anon" keyword), but why is there 24 of them for my dummy procedure?
Suggestions
Document it?

Name is just the name of the method, ^name is equivalent to .HOW.name, that is, the name of the "Higher Order Working" that is used to build the particular class.

Yes, I think it should be documented - as it is something that is exposed.
The alternative is to "unexpose" it.

Or, you know, document that some implementations might  on occasion expose implementation specific types that are subject to change and should to all intents and purpose be ignored.  Or alternatively specify that no such implementation specific types should be exposed.

@jonathanstowe if there were, let's say, two implementations with different ways of doing this, documenting implementation specific stuff would not make a lot of sense, and it would be impractical. In general, we opt for making some kind of documentation, with all kind of caveats.

@arneson
2. It's documented that ^ == .HOW., so ^name== HOW.name
3. Removing stuff from the output is not our turf. You should go to the Rakudo repo, if you think it's necessary.

Edited. Sorry!

@JJ
Point 2 (^ == .HOW.):
Are you sure? I get an error (in 2018.12):
my $a
say $a.^name; # -> Any
say $a.HOW.name
# Too few positionals passed; expected 2 arguments but got 1
#   in block <unit> at <unknown file> line 1

Point 3: That is above my pay grade.

Actually   ^ isn't exactly the same as calling the same named method on .HOW  rather the equivalent code would be:
my $a;
say $a.^name;
say $a.HOW.name($a);

That is the LHS object is passed to the method called on the HOW object.  I'm not sure if or where this is documented.


Why is 3.2.2 tagged as latest, is that intentional?

Why is 3.2.2 tagged as latest, is that intentional? I am just wondering which version is the newest?
C:\> npm outdated
Package                   Current  Wanted  Latest  Location
@ng-web-apis/common         4.2.0   4.2.0   3.2.2  node_modules/@ng-web-apis/common
@ng-web-apis/geolocation    4.2.0   4.2.0   3.2.2  node_modules/@ng-web-apis/geolocation
C:\>

@splincode could you take a look, please?

Has been confusing here too.


Addning Codeforces problem "Non-zero" solution

Hey there!, Thanks for submitting a PR to this repo
Please complete the following checklist for your PR to be approved. Mark the items by adding an x.
Example:  - [ ] Mark me as completed
To mark: - [x] Mark me as completed

[x] My Pull Request adheres to the Contribution guidelines.
[x] I have added readme.md and solution files in the appropriate folder
[x] None of the folder and file names I have added contain any invalid characters, leading digits or trailing whitespaces
[x] The solution I have given is my own and not plagiarized in any form.
[x] My solution passes all the testcases.
[x] I have properly indented and documented my solution using comments.

If any of the above is unmarked, please make the necessary changes and then mark them so that you're PR can be approved and merged.

@Vishruth-S Please review my pull request.

@Jagannathes please Review my pull request.

@GrrrGe please Review my pull request.

@Jagannathes please Review my pull request.


Bump github.com/prometheus/client_golang from 1.11.0 to 1.11.1

Fixes https://github.com/advisories/GHSA-cg3q-j54f-5p7p.

I created this from the wrong fork, so the E2E tests won't work. :(


Add weight in frontmatter

Add weight in frontmatter of how to guides and tutorials pages. It could allow Hugo to sort the order of appearance.
See: https://gohugo.io/templates/lists#by-weight
TLDR; Lower number get higher precedence. So we shall start with 1. And I suggest to rename the file names to start with number like 01-file-name or 1-file-name so that it will show in order when viewing. And it could allow to scan the files.
It also allow us to see the files in order in the sidebar on the website.
For example:
01-installation
02-data-iterator
03-gradient-accumulation
04-fastai-lr-finder
05-time-profiling
...

cc @Priyansi @vfdev-5

So just something like:
title: How to install PyTorch-Ignite
date: 2021-08-04
weight: 1
downloads: true
sidebar: true
summary: Install PyTorch-Ignite from pip, conda, source or use pre-built docker images
tags:
  - installation

Yes, like that.


updated library sidekick

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #
Test URLs:

Before: https://main--franklin--tiseanu.hlx.live/
After: https://updates--franklin--tiseanu.hlx.live/

ok


Support proposed ES Next "|>" pipeline operator

My favourite proposal ever :(  Nowadays, we can really write this free programs.

For reference, the TC39 proposal: https://github.com/tc39/proposal-pipeline-operator

Not that the proposal is not even at stage 0 yet. If it ever is added to the language semantics and other details will likely change.

This would be a first I think (beside some oldies like Enum and the module system) but could typescript implementing this give it more visibility and boost demand for it in the rest of the ecma ecosystem?

Just wanted to share a workaround for the missing pipeline operator inspired by https://vanslaars.io/post/create-pipe-function/...
SyncPipe with synchronous reduction
// SyncPipe with synchronous reduction
type SyncPipeMapper<T, U> = (data: T | U) => U;
type SyncPipeReducer<T, U> = (f: SyncPipeMapper<T, U>, g: SyncPipeMapper<T, U>) => SyncPipeMapper<T, U>;
type SyncPipe<T, U> = (...fns: SyncPipeMapper<T, U>[]) => SyncPipeMapper<T, U>;
function createSyncPipe<T, U>(): SyncPipe<T, U> {
    const syncPipe: SyncPipeReducer<T, U> = (f: SyncPipeMapper<T, U>, g: SyncPipeMapper<T, U>) => (data: T) => g(f(data));
    return (...fns: SyncPipeMapper<T, U>[]): SyncPipeMapper<T, U> => fns.reduce(syncPipe);
}

// Example:
function testSyncPipe(num: number): number {
    const addOne: SyncPipeMapper<number, number> = (data: number): number => {
        return data + 1;
    }
    const syncPipe: SyncPipe<number, number> = createSyncPipe();
    const syncWaterfall: SyncPipeMapper<number, number> = syncPipe(
        addOne,
        addOne,
        addOne,
    );

    // Does the equivalent of num+3
    const lastnumber: number = syncWaterfall(num);
    return lastnumber;
}

AsyncPipe with asynchronous reduction
// AsyncPipe with asynchronous reduction
type AsyncPipeMapper<T, U> = (data: T | U) => Promise<U>;
type AsyncPipeReducer<T, U> = (f: AsyncPipeMapper<T, U>, g: AsyncPipeMapper<T, U>) => AsyncPipeMapper<T, U>;
type AsyncPipe<T, U> = (...fns: AsyncPipeMapper<T, U>[]) => AsyncPipeMapper<T, U>;
function createAsyncPipe<T, U>(): AsyncPipe<T, U> {
    const asyncPipe: AsyncPipeReducer<T, U> = (f: AsyncPipeMapper<T, U>, g: AsyncPipeMapper<T, U>) => async (data: T) => g(await f(data));
    return (...fns: AsyncPipeMapper<T, U>[]): AsyncPipeMapper<T, U> => fns.reduce(asyncPipe);
}

// Example:
async function testAsyncPipe(num: number): Promise<number> {
    const addOne: AsyncPipeMapper<number, number> = async (data: number): Promise<number> => {
        return data + 1;
    }
    const asyncPipe: AsyncPipe<number, number> = createAsyncPipe();
    const asyncWaterfall: AsyncPipeMapper<number, number> = asyncPipe(
        addOne,
        addOne,
        addOne,
    );

    // Does the equivalent of num+3
    const lastnumber: number = await asyncWaterfall(num);
    return lastnumber;
}

Pipe with synchronous reduction (simplified)
// Pipes with async reduction
type PipeMapper<T> = (data: T) => Promise<T>;
type PipeReducer<T> = (f: PipeMapper<T>, g: PipeMapper<T>) => PipeMapper<T>;
type Pipe<T> = (...fns: PipeMapper<T>[]) => PipeMapper<T>;
function createPipe<T>(): Pipe<T> {
    const pipePipe: PipeReducer<T> = (f: PipeMapper<T>, g: PipeMapper<T>) => async (data: T) => g(await f(data));
    return (...fns: PipeMapper<T>[]): PipeMapper<T> => fns.reduce(pipePipe);
}

I hope you will find this helpful!

@PublicParadise way too much boilerplate :p

While I would definitely like to see some variant of this operator in the language the perceived need for it comes from two different limitations of ECMAScript as it currently stands.
The first is very hard to work around or even address in the language: the inability to extend built in objects in a hygienic manner.
The second however does not need language level support at all and could in fact be rectified: the standard library can kindly be called anemic. Maximally minimal is a complete failure. Why does it take months and months of argument to get Array.prototype.flatMap in the language. That's one method it should have been there from the beginning and it should be obvious that it should be added.

By now this has a few babel implementations, which will hopefully help along the TC39 proposal:

https://github.com/michaelmitchell/babel-plugin-pipe-composition
https://github.com/miraks/babel-plugin-pipe-operator

It's in stage 1 now

So, any chances for this beauty getting into TS? It would be in-line with F#. <3

While there are exceptions, when a proposal is important to TypeScript and types, proposal are not typically implemented until they reach TC39 Stage 3 in TypeScript, as they are not stable enough to ensure that there won't be significant breakage and regressions.
While none of the core team have commented on this issue yet, it wouldn't be in my opinion important enough to be considered for implementation before Stage 3.  The best focus is to support the champion and proposal at TC39.

If only TS had an option to just pipe this operator through to allow a babel with plugins to deal with it.
Or had own syntax plugins, like post-css do. Several years waiting for a primitive operator is just too much.

@garkin: The challenge here is TS needs to understand the code to do its job of providing type safety, which doesn't combine well with random code it doesn't understand. Unless it were to get macros (#4892), in which case it'd just compile to code it does understand. But I wouldn't expect that on the roadmap quite yet, as quite a few bits of the standard library are still challenging to type atm.

Now that Babel understands typescript you could run it through Babel then
typescript
On 26 Oct 2017 19:01, "Tycho Grouwstra"<EMAIL_ADDRESS>wrote:

@garkin https://github.com/garkin: The challenge here is TS needs to
understand the code to do its job of providing type safety, which doesn't
combine well with random code it doesn't understand. Unless it were to get
macros (#4892 https://github.com/Microsoft/TypeScript/issues/4892), in
which case it'd just compile to code it does understand. But I wouldn't
expect that on the roadmap quite yet, as quite a few bits of the standard
library are still challenging to type atm.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/TypeScript/issues/17718#issuecomment-339748284,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZQTO6UiVHbrM6SRwaBhm8obaa3R7e9ks5swMkCgaJpZM4OzVEg
.

Now that Babel understands typescript you could run it through Babel then
typescript

Twice the build time though :p

Would be nice if typescript was just a Babel plugin then you'd not need to
pipe through both programs
On 26 Oct 2017 20:16, "AlexGalays"<EMAIL_ADDRESS>wrote:

Now that Babel understands typescript you could run it through Babel then
typescript
Twice the build time though :p
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/TypeScript/issues/17718#issuecomment-339769856,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZQTEArBw8jj0BcZFM2yLj5ErfbtNrgks5swNqagaJpZM4OzVEg
.

It's a nice option to have, i'll investigate this.
Unfortunately, it won't work with typescript Language Service API which is used by VisualStudioCode, Webstorm and other IDEs.

Regarding "TS plugins" one could easily achieve the desired result with, let's say, a simple (pre)transpiler for the pipe operator  that understands TS syntax and produces it's strong typed equivalent of the statement. It would compile just fine with type checking and whatnot.
A webpack configuration for that could look something like this:
module: {
		rules: [
			{ test: /\.ts$/, loader: 'ts-pipe-operator', enforce: 'pre' },
			{ test: /\.ts$/, loader: 'ts-loader' },
			...
        ]
 }

The only challenge, as pointed by @garkin, is that TS service wouldn't be able to correlate transpiled parts to the original source file, then IDEs that uses the service wouldn't work properly even if they already recognize the operator (e.g es7 or babel syntax enabled).
Perhaps if we create a NFR for TS service to support cumulative source maps to be applied between the source file and the transpiled result that is feed to the compiler, this and other plugins would be possible without affecting the rest of the community and, most importantly, without adding more complexity for the core team to deal with.

I need to say i realy appreciate calm way of introducing new proposals and prefer the monolithic Typescript and LessCss tooling much more, than Flow+Babel and Post-CSS special plugins olympics.
It's a customizabilty and a speed of getting new features in cost of bloating fragmentation and an area of expertise.
The pipe operator is just like an entry drug to the functional world, it makes me say and wish a weird things.

@PublicParadise or just use lodash's or Rambda's flow?
anyway, this would be so awesome to see to be supported in TS. I love the functional patterns JS supports (especially with TS' type inference), but some patterns don't read very nice. This would be huge as big TS libraries like RxJS and IxJS are moving towards point-free functional composition over prototype extension/inheritance, it makes for way better tree shaking and support for custom operators.

@felixfbecker You mean ramda's pipe? I need to try again but historically, ramda being a JS-first lib, it's very dynamic and hard to type (like lodash), compounded by the fact TS used to have a lot of trouble inferring from function return values.
I don't use lodash as it's poorly designed, mixing mutable and immutable functions in one big bag.

It actually works decently well if your functions and chains are not super crazy:
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/b67c928904f03d0911c99ab938b14bc2e59cad40/types/lodash/index.d.ts#L7819-L7855

It actually works decently well if your functions and chains are not super crazy

Let me qualify 'not super crazy' there: things break down if your functions have generics (see https://github.com/types/npm-ramda/issues/86), e.g. R.pipe(R.identity).

Also, let's be clear, the proposal is Stage 1.  The core team are getting even more shy about introducing things before Stage 3.  Decorators are part of the example.  Even though they were marked as experimental, we all went ahead and enabled that flag and wrote all of our production code using them.  The proposal now has bounced around and there are some fundamental breaking changes in the syntax and semantics that are going to mean we are all going to have to refactor our code which puts the core team in a tight situation, because if they only support the final syntax than everyone is broken the day they release it, or if they keep the legacy stuff, other changes in the compiler could make it challenging to support the two syntaxes, and eventually you want to get rid f the old stuff, but when... 💥 💥
So the best thing to do with standards based features like this, isn't to debate TypeScript's support or lack of support here, it is to find you friendly local TC39 rep and advocate that this feature is really important to you as well as participate in the proposal conversation linked to above on GitHub.  The quicker the semantics get resolved and the quicker it gets to Stage 3, the quicker we can all have nice things!

Now that rxjs has lettable operators this would be an awesome feature to have in Typescript
https://github.com/ReactiveX/rxjs/blob/master/doc/lettable-operators.md

Can we have someone from TS team to shed some light on this request?

The have, they have tagged it ES Next and Suggestion... I can quote you chapter and verse other locations where they have commented on ES Next proposals and when and how they implement them...
A comment from them won't change anything.  Do you think they are secretly working on it behind the scenes, waiting to spring it on the community?  They often won't input on an issue if there is nothing to add... There is nothing to add to what has already been said.

At this point I believe it would be so useful to have plugins that extend the language. Add features that they are not going to be part of the core of language would be parts of these plugins.

@aminpaks I don't really love the idea since it could quickly lead to babelification (as in the Tower of Babel not the excellent transpiler Babeljs 😀)
Since plugins would imply type level behavior, it becomes difficult to understand the meaning of programs and handling source level dependencies would require a number of complex but very useful features that TypeScript is currently lacking.

As much as I would love this to be everywhere possible, I'm glad that TS is taking a more reserved approach to implementing new features and sticking with standards. This stance makes TS more appealing overall to folks like myself who care deeply about deviating from the standard but enjoy the advanced features transpilation provides ahead of browser vendor / JS engine adoption (but not necessarily ahead of standardization). It's a delicate balancing act.

TypeScript is a babel transform now, I think there should be a way to sequence in the pipeline desugaring before the TypeScript pass. I have no idea how you'd make that work with the language server though.

I added a self-hosted implementation for TS #22816

As one of the people pushing for the pipeline operator, I beg you: Please do not implement this in TypeScript until it's advanced further. We're still debating two potential proposals, which are fundamentally incompatible with each other, so TypeScript is begging for a world a pain if it implements this too early.
If you're interested in this proposal, take a look at the repo here and get involved: https://github.com/tc39/proposal-pipeline-operator/ We'd love your feedback! And we're working on Babel plugins for the differing proposals, so you'll have an opportunity to try them out in your (non-TypeScript) projects.
But the proposal is not ready to land in something like TypeScript yet.

We're definitely not merging this.

@masaeedu Yes! This

@MeirionHughes with the partial application proposal it becomes easier:
[1,2,3] |> where(?, x=>x>2)

@bernatmv: fwiw there's something close to it that works today.

@tycho01 But not in TypeScript, not until it gets 2.8 typings: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/25067

@jeremejevs actually, R.__ has been typed using codegen in npm-ramda. Better ways using 2.8 welcome!

I'm somewhat new to Javascript and TypeScript (2 weeks) so please forgive me if there is a simpler solution out there. But below is what I've come up with in the absence of a pipeline operator. I originally tried having multiple overloads of pipe that worked with 2, 3, 4, etc. type parameters, but couldn't figure out how to get TypeScript overload resolution to work like it does in C#. We could have different functions pipe1<A,B>, pipe2<A,B,C>, and pipe3<A,B,C,D> but this would be tough to work with since you'd have to choose the function name based on how many arguments you wanted. Is there a simpler type-safe solution than what I've proposed below? Is there a recursive type definition that could accept an unlimited umber of parameters? Am I using condition types properly?
type LastOf<A, B, C, D, E, F> =
    [B] extends [never] ? A :
    [C] extends [never] ? B :
    [D] extends [never] ? C :
    [E] extends [never] ? D :
    [F] extends [never] ? E :
    F;

function pipe<A, B, C=never, D=never, E=never, F=never>(
    a: A,
    mapA: (a: A) => B,
    mapB?: (b: B) => C,
    mapC?: (c: C) => D,
    mapD?: (d: D) => E,
    mapE?: (e: E) => F): LastOf<A, B, C, D, E, F> {
    const b = mapA(a);
    switch (mapB) {
        case undefined: return b as LastOf<A, B, C, D, E, F>;
        default: {
            const c = mapB(b);
            switch (mapC) {
                case undefined: return c as LastOf<A, B, C, D, E, F>;
                default: {
                    const d = mapC(c);
                    switch (mapD) {
                        case undefined: return d as LastOf<A, B, C, D, E, F>;
                        default: {
                            const e = mapD(d);
                            switch (mapE) {
                                case undefined: return e as LastOf<A, B, C, D, E, F>;
                                default: return mapE(e) as LastOf<A, B, C, D, E, F>;
                            }
                        }
                    }
                }
            }
        }
    }
}

test("map once", () => {
    const result = pipe(
        2,
        i => i * 10);
    expect(result).toBe(20);
});

test("map twice", () => {
    const result = pipe(
        2,
        i => i * 10,
        i => `the answer is ${i}`);
    expect(result).toBe('the answer is 20');
});

test("map three times", () => {
    const result = pipe(
        2,
        i => i * 10,
        i => -i,
        i => ({ a: i, b: -i }));
    expect(result).toEqual({ a: -20, b: 20 });
});

I just looked at lodash and you are correct - the flow function accepts many parameters and is strongly typed. Iit doesn't look like it is done in pure TypeScript. They use a type definition file for all the overloads. I'm not sure if this is better or worse than trying to do it all in TypeScript.

@jmagaram all TS generally makes it easier due to inference, but if it works it works.

A somewhat simpler pure typescript alternative could look something like this.
interface IPipe<T> {
    readonly value: () => T;
    chain<R>(fn: (x: T) => R): IPipe<R>;
}

function pipe<T>(val: T): IPipe<T> {
    return {
        chain: fn => pipe(fn(val)),
        value: () => val
    };
}

Usage would still be fairly clean and strongly typed.
pipe(["Hello", "There"])
    .chain(map(x => `${x}!`))
    .chain(xs => {
        ...
    })
    .value()

I'd really appreciate the ability to add custom operators. F# has a nice approach for this.
In the meantime, here's a simpler approach without the wrapping:
function pipe<T1>(first:T1):T1
function pipe<T1, T2>(first:T1, second:(a:T1) => T2):T2
function pipe<T1, T2, T3>(first:T1, second:(a:T1) => T2, third:(a:T2) => T3):T3
function pipe<T1, T2, T3, T4>(first:()=>T1, second:(a:T1)=>T2, third:(a:T2)=>T3, fourth:(a:T3)=>T4):T4
function pipe<T1, T2, T3, T4, T5>(first:()=>T1, second:(a:T1)=>T2, third:(a:T2)=>T3, fourth:(a:T3)=>T4, fifth:(a:T4)=>T5):T5
function pipe<T1, T2, T3, T4, T5, T6>(first:()=>T1, second:(a:T1)=>T2, third:(a:T2)=>T3, fourth:(a:T3)=>T4, fifth:(a:T4)=>T5, sixth:(a:T5)=>T6):T6
function pipe<T1, T2, T3, T4, T5, T6, T7>(first:()=>T1, second:(a:T1)=>T2, third:(a:T2)=>T3, fourth:(a:T3)=>T4, fifth:(a:T4)=>T5, sixth:(a:T5)=>T6, seventh:(a:T6)=>T7):T7
function pipe<T1, T2, T3, T4, T5, T6, T7, T8>(first:()=>T1, second:(a:T1)=>T2, third:(a:T2)=>T3, fourth:(a:T3)=>T4, fifth:(a:T4)=>T5, sixth:(a:T5)=>T6, seventh:(a:T6)=>T7, eigth:(a:T7)=>T8):T8
function pipe<T1, T2, T3, T4, T5, T6, T7, T8, T9>(first:()=>T1, second:(a:T1)=>T2, third:(a:T2)=>T3, fourth:(a:T3)=>T4, fifth:(a:T4)=>T5, sixth:(a:T5)=>T6, seventh:(a:T6)=>T7, eigth:(a:T7)=>T8, ninth:(a:T8)=>T9):T9
function pipe<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(first:()=>T1, second:(a:T1)=>T2, third:(a:T2)=>T3, fourth:(a:T3)=>T4, fifth:(a:T4)=>T5, sixth:(a:T5)=>T6, seventh:(a:T6)=>T7, eigth:(a:T7)=>T8, ninth:(a:T8)=>T9, tenth:(a:T9)=>T10):T10
function pipe(first:any, ...args:Function[]):any {
    return (
        args && args.length
        ? args.reduce(
            (result, next) => next(result),
            first instanceof Function ? first() : first
        )
        : first instanceof Function ? first() : first
    );
}

This gives:

More on this my post here
That said, @graingert +1 you're right: lodash has this already for composition (but not pipe):
const getUpperName =
   _.flow(
      (p: Person) => `${p.FirstName} ${p.LastName}`,
      (s: string) => s.toUpper()
   )

Hope this helps others!

It has landed in Firefox under --enable-pipeline-operator compile flag.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Pipeline_operator

A minute of silence for the fallen hero, the bind operator ::, closed in favor of the evil |> 😢

Well I guess it's in the eye of the beholder, as I prefer |> :D

hail to the king!

And here I thought it was a pipe dream

Pipeline is essentially a simple use case of the Identity Monad. Also, pipe is usually compose in reverse whereas pipeline is more like a pipe that is invoked right away.
Anyway, looking forward to seeing this in Typescript.

Although having pipeline would be helpful, I feel it would be possible to
offer the ability to define custom operators (functions whose name may
include special chars, and whose first param is on their left) via a
compiler transformer. Anyone interested in trying this with me, or have
some background on this?
On Fri, Aug 10, 2018, 02:53 Babak<EMAIL_ADDRESS>wrote:

Pipeline is essentially a simple use case of the Identity Monad. Also,
pipe is usually compose in reverse whereas pipeline is more like a pipe
that is invoked right away.
Anyway, looking forward to seeing this in Typescript.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/TypeScript/issues/17718#issuecomment-411824741,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFXUx5rwM9wVrpAkHK2BNYkyy74HtWU5ks5uPGkNgaJpZM4OzVEg
.

--

Infix functions ftw
On Thu, 9 Aug 2018, 23:35 Ben Beattie-Hood<EMAIL_ADDRESS>wrote:

Although having pipeline would be helpful, I feel it would be possible to
offer the ability to define custom operators (functions whose name may
include special chars, and whose first param is on their left) via a
compiler transformer. Anyone interested in trying this with me, or have
some background on this?
On Fri, Aug 10, 2018, 02:53 Babak<EMAIL_ADDRESS>wrote:

Pipeline is essentially a simple use case of the Identity Monad. Also,
pipe is usually compose in reverse whereas pipeline is more like a pipe
that is invoked right away.
Anyway, looking forward to seeing this in Typescript.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/Microsoft/TypeScript/issues/17718#issuecomment-411824741
,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AFXUx5rwM9wVrpAkHK2BNYkyy74HtWU5ks5uPGkNgaJpZM4OzVEg
.

--
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/TypeScript/issues/17718#issuecomment-411919587,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZQTHHFbVY5uGCWl-La_P-HF7UN6xPsks5uPLk8gaJpZM4OzVEg
.

I know a lot of people want this really bad, but I believe TypeScript should not implement any extra operator as long as they are not in stage 3. Things can change and of course there are some exceptions.

I think it would be worth trying as a compiler transformer, just to allow the community to explore the idea, and to measure popularity. It's a well-defined feature in other functional languages, so might be quite safe to explore.

@BenBeattieHood We're in the process of implementing this in babel, so you'll be able to test it there.  If you do test it in a compiler transformer, definitely take a look at the current proposals, as there are a few forms of the pipeline operator we're considering.

I think it would need a lot of thought about how its used; specifically with regard to typing things like:
function where<T>(predicate: (x: T) => boolean) {
  return function* (items: Iterable<T>): Iterable<T> {
    for (const item of items) {
      if (predicate(item)) {
        yield item;
      }
    }
  };
}

[1, 2, 3] |> where(x=>x> 1)

at the moment with where(x => x > 1)([1,2,3]) it cannot infer what x is.

Or we can see it another way: should it get released, It will prioritize some of the inference issues TS has 👍

If you follow the spec and babel news, the spec is not set yet. There are 2 proposals. Im sure the typescript team will add support when the spec is finalized

Infix functions ftw

iirc JS calls these "methods".

iirc JS calls these "methods"

@tycho01 Your comment is probably tongue in cheek, but I think these aren't quite the same thing. You can't just export a binary function from somewhere and apply it infix to two values; knowledge about every function that's ever going to manipulate the value must be grafted onto the value itself, either as a direct property or on the prototype. This is pretty inconvenient in practical scenarios.

@BenBeattieHood We're in the process of implementing this in babel, so you'll be able to test it there. If you do test it in a compiler transformer, definitely take a look at the current proposals, as there are a few forms of the pipeline operator we're considering.

Babel parser now supports smart pipeline proposal.
https://github.com/babel/babel/pull/8289

Any updates?

Any updates?

🤦♂ TypeScript does not implement proposal until they reach Stage 3.  The pipeline operator is currently Stage 1 and has serious issues.  That information has been provided multiple times in this thread.

an example of serious issues please?

maybe...

⚠ Warning: The details of the pipeline syntax are currently unsettled. There are two competing proposals under consideration.

Yes, that is what I consider a serious issue.

Going to lock this one since all threads in Waiting for TC39 status tend to just go in circles.
Ping!

Marking this as closed since there's nothing for us to do until something happens at TC39. We're working with some other members to continue to iterate on the active proposals, so please contribute feedback there until that proposal (or its kin) reaches stage 3.


Unknown error - bf() is undefined

Observed/problematic behavior

Expected behavior

Steps to reproduce
Follow Development Setup in README.md
Other
No response

@MiniDigger
What do?

@MiniDigger
Please help...

please dont spam...
if you need help with contributing to hangar, please join our discord and provide detailed info about what you did and the exact error and full logs.
https://discord.gg/zvrAEbvJ4a


Update inventories | Natural Gas

The 2020 updated natural gas cradle-to-gate inventories are available[^1]. I assume that NG_LCI.csv found in eLCI's data directory is the same cradle-to-gate inventory.
The primary difference is that the new natural gas C2G inventories are by basin and by production (e.g., conventional, shale, tight, offshore, or CBM). Production shares are published for each, which could be used to combine production types to get "by basin" inventories, similar to what is currently used.
To accomplish this, I'd recommend creating a new process for each basin (e.g., Anadarko), take the U.S. average fractions for each production type associated with the basin (e.g., 1.83% conv, 2.64% shale, and 1.90% tight for Anadarko), normalize them (e.g., 28.7% conv, 41.4% shale, 29.8% tight), set the output as 1 MJ, run openLCA to create a system process—this would result in an inventory associated with the shares per MJ for each basin. Save each basin's results to Excel and curate into a single table that matches the style of NG_LCI.csv.
[^1]: H. Khutal, K. Kirchner-Ortiz, M. Blackhurst, N. Willems, H.S. Matthews, S. Rai, G. Yanai, K. Chivukula, Priyadarshini, M. B. Jamieson, T. J. Skone, "Life Cycle Analysis of Natural Gas Extraction and Power Generation: U.S. 2020 Emissions Profile - Appendix F: Full Inventory Results - Production through Transmission Network Boundary - using U.S. Average Transmission Network data -  File Name: 2020 Full Inventory Results_US Avg_ProdThruTrans," National Energy Technology Laboratory, Pittsburgh, July 29, 2024

Will the new natural gas baseline have a new utility map? See gas_supply_basin_mapping.csv.


How to run "estimator -c configuration.yaml" on Ubuntu ?

It works om WinOS.
But I do not know where is estimator, and how to run "estimator -c configuration.yaml" on Ubuntu.
Thanks
On Jupyter,
! cd ./examples
! estimator -c estimator/estimator_config.yaml

/bin/sh: 1: estimator: not found

Hi, it works on Ubuntu too. Please make sure that you have installed Qlib successfully.

Got it, thank you


Qdrant: Performing a similarity search results in an "AttributeError"

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.

Example Code
The code from the Qdrant documentation shows the error:
from dotenv import load_dotenv

from langchain.text_splitter import CharacterTextSplitter
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import Qdrant
from langchain_openai import OpenAIEmbeddings

load_dotenv()

loader = TextLoader("../../modules/state_of_the_union.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

embeddings = OpenAIEmbeddings()

qdrant = Qdrant.from_documents(
    docs,
    embeddings,
    location=":memory:",  # Local mode with in-memory storage only
    collection_name="my_documents",
)

query = "What did the president say about Ketanji Brown Jackson"
found_docs = qdrant.similarity_search(query)

print(found_docs[0].page_content)

The only adjustment here was how to set the OPENAI_API_KEY value (any mechanism works).
Error Message and Stack Trace (if applicable)
Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2023.1.2\plugins\python-ce\helpers\pydev\pydevd.py", line 1534, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2023.1.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:\Users\sfitts\GitHub\ag2rs\modelmgr\src\main\python\qdrant_example.py", line 26, in <module>
    found_docs = qdrant.similarity_search(query)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\sfitts\.virtualenvs\semanticsearch\Lib\site-packages\langchain_community\vectorstores\qdrant.py", line 286, in similarity_search
    results = self.similarity_search_with_score(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\sfitts\.virtualenvs\semanticsearch\Lib\site-packages\langchain_community\vectorstores\qdrant.py", line 362, in similarity_search_with_score
    return self.similarity_search_with_score_by_vector(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\sfitts\.virtualenvs\semanticsearch\Lib\site-packages\langchain_community\vectorstores\qdrant.py", line 620, in similarity_search_with_score_by_vector
    return [
           ^
  File "C:\Users\sfitts\.virtualenvs\semanticsearch\Lib\site-packages\langchain_community\vectorstores\qdrant.py", line 622, in <listcomp>
    self._document_from_scored_point(
  File "C:\Users\sfitts\.virtualenvs\semanticsearch\Lib\site-packages\langchain_community\vectorstores\qdrant.py", line 1946, in _document_from_scored_point
    metadata["_collection_name"] = scored_point.collection_name
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'ScoredPoint' object has no attribute 'collection_name'
python-BaseException

Process finished with exit code 1

Description
I'm trying to use Qdrant to perform similarity searches as part of a RAG chain.  This was working fine in langchain-community==0.0.16, but produces the error above in langchain-community==0.0.17.  The source of the break is this PR -- https://github.com/langchain-ai/langchain/pull/16608.  While it would be nice to have access to the collection name, the QDrant class ScoredPoint does not have the referenced property (and AFAICT never has).
System Info
System Information
------------------
> OS:  Windows
> OS Version:  10.0.19045
> Python Version:  3.11.4 (tags/v3.11.4:d2340ef, Jun  7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)]

Package Information
-------------------
> langchain_core: 0.1.18
> langchain: 0.1.4
> langchain_community: 0.0.17
> langchain_openai: 0.0.5
> langserve: 0.0.41

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

> langgraph

Note that the failure was originally found using langchain==0.1.5.

Same issue here. Had to rollback to :
langchain = "==0.1.4"
langchain-community = "==0.0.16"

This issue should be resolved with the v.0.1.6 release.

Resolved with https://github.com/langchain-ai/langchain/releases/tag/v0.1.6.


Question of REFER

I have these words in readme in order to install refer
sudo pip install git+https://github.com/andfoy/refer.git
sudo pip install -U git+https://github.com/taolei87/sru.git@43c85ed --no-deps
But I still meet:
Traceback (most recent call last):
File "/home/lanxiao/DMS-master/dmn_pytorch/train.py", line 23, in
from dmn_pytorch.models import DMN
File "/home/lanxiao/DMS-master/dmn_pytorch/init.py", line 12, in
from .referit_loader import ReferDataset
File "/home/lanxiao/DMS-master/dmn_pytorch/referit_loader.py", line 21, in
from referit import REFER
ImportError: cannot import name 'REFER'

Hi, thanks for your question. Which version of Python are you using?

thanks for your reply!
python3.6

What happens if you try to import the conflicting package on a Python interpreter instance? Are you executing the code with your system's Python?
PD: Have you tried to isolate your dependencies on a virtualenv/conda? If not, could you try to see if the error is reproduced?

I clone https://github.com/andfoy/refer.git  by myself
and then set :
sudo  pip install -U .
now this problem has been solved.
But I meet " No such file or directory: 'data/unc/corpus.pth" I think i need to  check my datafolder.
Thanks for your kind explanation.I learn a lot from you project!

But I meet " No such file or directory: 'data/unc/corpus.pth" I think i need to check my datafolder.
To solve this one, you just need to delete the data folder that was generated.

Thanks for your feedback on our work!


support repetitive arguments to operand

For now, there is no way to supply repetitive arguments options to the operand
I am expecting the following arguments to query pod, how to specify this in jaeger CR?
--query.additional-headers=access-control-allow-origin:blerg
--query.additional-headers=whatever:thing

spec:
  query:
    options:
      query:
         additional-headers: "whatever:thing"

AFAIK, in YAML we cannot supply the same key multiple times
https://github.com/jaegertracing/jaeger-operator/blob/v1.21.3/pkg/apis/jaegertracing/v1/options.go#L96~L99

i think something like this could be an option:
...
spec:
  query:
    options:
      query:
         additional-headers:
              -  "whatever:thing"
              -  "access-control-allow-origin:blerg"


Overall cleanup – correctness and stylistic improvements

Remove all unsafe
Fix soundness bug related to cloning an owned raw pointer
Make code more idiomatic by basing comparison on value, not address

thanks!


didnt work with streams :/

im trying to use crossorigen.me but this is not working with stream files, can u help me?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/37247778-didnt-work-with-streams?utm_campaign=plugin&utm_content=tracker%2F12536595&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F12536595&utm_medium=issues&utm_source=github).

It's not implemented at the moment. Adding it to the v2 planning board.

lovely!
thank u!

Do you have an example of a stream you'd like to access from the proxy?

its implemented now?


db_filler doesnt connect to node

we have kaspad (not rusty!) node running. deprecated db_filler works fine.
db_filler_ng doesnt work with it. do i need to start a fresh rusty-kaspa node?

Yes, rust filler uses wrpc for communicating with the node which isnt supported in golang kaspad.


Setup Doc Platform with Live Link

Description:

Set up selected platform on cloud infrastructure and have live link to access through internet.
Document version should be 1.0.0 developer preview.

Discussion

Participants - Maheshika and Mariangela
Discussed the process to get a job for the docs-apk repo

Follow-up
Sent an email with the follow-up request.
Request to create a job for the docs-apk build

Discussion
Participants - Shani and Mariangela
Topic: APK build
Action Items:

Remove certain commented code
Update the canonical URL in the build
Decide on the custom domain for the docs
Check the Remote directory and custom domain for docs

Follow-up
Sent an email with the follow-up request.
Request to create a job for the docs-apk build

Local doc site with Mkdocs 1.0.4

Local Build with latest Mkdocs 1.4.2 (latest)

Search works with vanilla Mkdocs theme

On-Hold
I am putting this task on hold as I am waiting for digi-ops to provide me the live APK docs URL, so that the docs can be tested using that URL

Update
Digi-ops replied to the email and gave us an option to access the docs internally. They are in the process of purchasing a SSL/TLS certificate for this and once they get it they will provide the public URL.

Update
Digi-ops provided the Live URL Tue, Mar 7, 6:35 PM
https://apk.docs.wso2.com/en/latest/


What if luatex85?

Try to solve compatibility issues with luatex85.

What is the problem ? How could I test it ?

What is the problem ?

Well, the problem is LuaTeX and packaging: during the transition between LuaTeX 0.x and 1.x, the developers seems to have rewritten what we could call the PDF generation API with respect to LaTeX. Locally, I use a version of LuaTeX which is 1.04, and Travis use the last one (1.07 last time I checked). Problem, since @sandhose prefers (for good reasons) to rely on the Debian packages, zds uses LuaTeX 0.95, which generates errors.
This packages is supposed to fix the incompatibility issues. If I test the pdf generation with my version, it does not seems (visually) to affect the rendering, so for me that's good.
The question is: "does it works for zds?"

How could I test it ?

Actually, I think one could try with a virtual machine and Debian Stretch (testing and sid ship the 2018 version of texlive, so probably the latest version of LuaTeX as well), which seems to be the version that zds is using, so:

Get debian stretch ;
Install those packages + librsvg2-bin and imagemagick (I don't know the exact names) ;
Clone the repository, cd latex-template/tests/, make test and then inspect the pdf files.

... Or use the latest version of texlive in the zds server, but that depends on @sandhose ;)
Personally, I'll try with a virtualbox on Sunday, I'm a bit busy before that ;)

OK, I don't have a Debian 9 available now but I'll try next days. Don't hesitate to ping me next week if you have no news, bit busy too.

Ok, tested via Debian 9, it works <3

ok ping @sandhose can you update it on beta so that I make some tests?


Support Vulkan

Although ncnn supports Vulkan, it is disabled in ncnn built with this plugin.
If Vulkan were supported, it would probably improve performance for image rotation and resizing.

The reason for disabling Vulkan at the beginning of the release was that there were problems with ncnn execution, so it was put on the back burner.

Hmmm it will take more time.
Also, supporting Vulkan would have the disadvantage of increasing the size of the app.


Fixing --host flag when configuring

Trying to compile python with iglupkg using the current build.sh will fail and say --host=$HOST_TRIPLE is needed instead of --host=$TRIPLE

This isn't correct sorry :/ it is meant to be $TRIPLE

Well how is is supposed to be compiled then? It won't complete ./configure

It worked on my system; --host=$TRIPLE to allow for cross compilation. Can you post logs?

configure: WARNING: unrecognized options: --without-ensure-pip
checking build system type... x86_64-pc-linux-musl
checking host system type... x86_64-unknown-linux-musl
checking for python3.10... python3.10
configure: error: Cross compiling required --host=HOST-TUPLE and --build=ARCH
make: no target to make.

Manually running the ./configure with the options from ./build.sh it does work so it seems it something else.

Oh well, atleast I can compile it


Feature/clang sanitize

fixes #394

Coverage remained the same at 100.0% when pulling ff3221a37573e3313d52d46fd3b94ec658ff66e8 on Daniel599:feature/clang_sanitize into d7029c37aad0e93033242123e7a7a05a1c76bed4 on nlohmann:develop.

Thanks!

Thanks!


Develop upstream sync 231002

Retest Ubuntu-GPU-multi please
Retest Ubuntu-GPU-single please

retest gpu-non-pip-multi please

I think you mean import this XLA PR (not tensorflow#6000) openxla/xla#6000 there is another changes to remove unused code openxla/xla@a202fc0

Yup. That is the one.

Retest Ubuntu-GPU-multi please
Retest Ubuntu-GPU-single please


Extract graph extraction to its own package and CLI

Other use cases than exploration consume the data about packages and their dependencies from Nix files defining derivations.
Sometimes, for other flakes than nixpkgs. This is the case for instance for NLNet founded project SBoM generation (cc @rapenne-s).
However, they are not always interested by the graph database, API and UI we provide. Even more so, their requirements forbid from using them.
In order for this project to be helpful to more people, we want to make our work usable to other parties that need the same data as we do.
In a meeting with everyone from the project (see minute), we agreed we should extract the part of the ETL that evaluates Nix code and outputs the raw graph data to its own reusable piece.
This piece should be usable

in Python (API)
in the command line (CLI)

This leads to the following tasks:

[ ] extract the Nix extraction logic to its own package
[ ] build a thin wrapper as a CLI

Since we would like to extract the graph extraction to multiple uses, we can follow an approach from https://medium.com/opendoor-labs/our-python-monorepo-d34028f2b6fa to build a monorepo-like structure.
We might create a new subdirectory called libs and move the nixpkgs-graph.nix from etl to it. A possible structure can be like this
.
├── api
├── config
├── docker
├── docker-compose.dev.yaml
├── docker-compose.yaml
├── etl
│   ├── Dockerfile
│   ├── etl.py
│   ├── example_query.py
│   ├── README.md
│   ├── requirements.txt
│   ├── test-requirements.txt
│   └── test_spec.py
├── flake.lock
├── flake.nix
├── js-client
├── libs
│   └── extract-nix-data
│       ├── main
│       │   ├── __init__.py
│       │   ├── main.py
│       │   └── nixpkgs-graph.nix
│       ├── pyproject.toml
│       ├── requirements.txt
│       └── tests
├── LICENSE
├── README.md
└── scripts

, and we can create CLI based on it.
What do you think?

I'm all for eating our own food :) cc @smelc

I can suggest the following

nix-graph-core: a shared library (Python package) that provides a Python API to extract data from a flake to different outputs
nix-graph-cli: a CLI that uses the shared nix-graph-core

Then we'll have nixpkgs-graph-api, what @dorranh did, but I don't think it'll need to use the core library.
Thoughts?

@GuillaumeDesforges I could potentially be up for that. To me it feels like the size of the package does not quite warrant the fission into separate core and cli packages, but that is a matter of personal preference, and I'm happy proceeding either way.

Yes that makes good sense!


Update to Spring 3.7.8

Spring 3.7.8 has just been released and made available by the servicemix team

Done, tested, works!


Create user with no password

Suggested by @fkardame :
Some users doesn't want to create a password.
Adapt the user module to create an user without any password

this would disable the lockscreen password at some point. for now we have to add always a numeric password for plasma-mobile.

this would disable the lockscreen password at some point. for now we have to add always a numeric password for plasma-mobile.

There is already an issue to track the feature : #13


Fix get_winbuf_options on big-endian systems

The value for an option in struct vimoption is defined as char_u *var;.  However, long and int values are stored in memory for P_NUM and
P_BOOL values, respectively.
When get_winbuf_options attempts to retrive the value of a P_NUM option,
it simply dereferences the char_u* and passes that value through the
varnumber_T parameter of dict_add_nr_str.  Now that varnumber_T is a
64-bit value, this plain dereference of the char_u pointer passes along
the high (zero) byte of the option's value.
Casting the char_u* to a long* first and then dereferencing that, as is
already done by get_option_value, passes along the value of the entire
long instead of just one byte of it.

I'll verify this later today for both P_NUM and P_BOOL options, once I get back to where I have access to big-endian systems for testing.  I just wanted to get the PR up for review/comment, since I had already done some investigation when I saw Ismail's email to the list.

James McCoy wrote:

The value for an option in struct vimoption is defined as char_u *var;.  However, long and int values are stored in memory for P_NUM and
P_BOOL values, respectively.
When get_winbuf_options attempts to retrive the value of a P_NUM option,
it simply dereferences the char_u* and passes that value through the
varnumber_T parameter of dict_add_nr_str.  Now that varnumber_T is a
64-bit value, this plain dereference of the char_u pointer passes along
the high (zero) byte of the option's value.
Casting the char_u* to a long* first and then dereferencing that, as is
already done by get_option_value, passes along the value of the entire
long instead of just one byte of it.

Thanks.  This still isn't quite right, for boolean options the value is
an int, not long.  That matters if int and long differ in size.
Also, this should have a test.  Hmm, on a little endian system I think
'foldlevel' is the only option that can have a value that doesn't fit in
a byte.
--
hundred-and-one symptoms of being an internet addict:
254.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


Enhance "Advance > Activate Objects"

Activates objects even if the "Activate without popup" setting is turned on

hmm

it's still ugly. doesn't happen too often so closing.


parse commands given by arg or env using shell_words

https://github.com/nardoor/rustic_core/commit/84f70d619c3ac5b25ae4f2ee54fb2f0b724b0da4
These small changes might help 😊


Redundant existence checks during addVdb

addVdb checks if the given vectorDB with vdbid exists via an API call. Sometimes we can be SURE that it exists, i.e. we have done the setup and this thing works in a serverless function etc. so we dont have to check for existence in those cases.
It is possible to bypass this by doing:
sdk.store[vdbid] = vectorStore;

instead of
await sdk.addVdb(vdbid, vectorStore);

which saves making an api call.
We can make this clear to the user via docs, perhaps?

Added docs to addVdb function for this, as most of the time this will not matter to the user unless they are using a really constrained serverless environment.

Will close with PR*