graphql-language-service ^4.0.0 has invalid dependencies for browser

@acao
I created a small reproduction repo showing the issue: https://github.com/PabloSzx/graphiql-browser-bundle.
Basically:
Doing a browser bundle using esbuild:
esbuild --bundle --platform=browser --outdir=dist index.ts
An error is shown:
✘ [ERROR] Could not resolve "punycode"

    node_modules/.pnpm/markdown-it@12.2.0/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to
  bundle for node? You can use "--platform=node" to do that, which will remove this error.

✘ [ERROR] Could not resolve "path"

    node_modules/.pnpm/picomatch@2.3.0/node_modules/picomatch/lib/picomatch.js:3:21:
      3 │ const path = require('path');
        ╵                      ~~~~~~

  The package "path" wasn't found on the file system but is built into node. Are you trying to
  bundle for node? You can use "--platform=node" to do that, which will remove this error.

✘ [ERROR] Could not resolve "path"

    node_modules/.pnpm/picomatch@2.3.0/node_modules/picomatch/lib/constants.js:3:21:
      3 │ const path = require('path');
        ╵                      ~~~~~~

  The package "path" wasn't found on the file system but is built into node. Are you trying to
  bundle for node? You can use "--platform=node" to do that, which will remove this error.

✘ [ERROR] Could not resolve "path"

    node_modules/.pnpm/picomatch@2.3.0/node_modules/picomatch/lib/utils.js:3:21:
      3 │ const path = require('path');
        ╵                      ~~~~~~

  The package "path" wasn't found on the file system but is built into node. Are you trying to
  bundle for node? You can use "--platform=node" to do that, which will remove this error.

4 errors
 ELIFECYCLE  Command failed with exit code 1.

After overriding the graphql-language-service to 3.2.5, most of the errors are gone:
{
"pnpm": {
    "overrides": {
      "graphql-language-service": "3.2.5"
    }
  }
}

> esbuild --bundle --platform=browser --outdir=dist index.ts

✘ [ERROR] Could not resolve "punycode"

    node_modules/.pnpm/markdown-it@12.2.0/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to
  bundle for node? You can use "--platform=node" to do that, which will remove this error.

1 error
 ELIFECYCLE  Command failed with exit code 1.

I think a new integration test has to be made which uses esbuild to bundle graphiql with --platform=browser, that will catch all these kind of errors

Oh ok! Well I haven’t tried it with esbuild directly yet. It seems to be working with vite and webpack. Sounds like we need an esbuild example!
i was hoping to use esbuild to bundle dependencies for an offline-ready static browser bundle to use for middlewares or static apps

This is the fix for now, I will add an esbuild section to the docs for monaco-graphql with this
{
  "browser": {
    "path": "path-browserify"
  }
}

https://esbuild.github.io/getting-started/#bundling-for-the-browser

This is the fix for now, I will add an esbuild section to the docs for monaco-graphql with this
{
  "browser": {
    "path": "path-browserify"
  }
}

https://esbuild.github.io/getting-started/#bundling-for-the-browser

how is that supposed to work for programmatic usage of esbuild?

It seems to be working with vite and webpack for the multi-schema fileMatch support. I’ll see what i can find.

Wait a moment, the examples are still using webpack 4? it stopped being maintained since 2 years ago, I think renovate has to be configured in the project
And another thing, relying on workarounds or user-specified configuration for stuff to work is clearly not the way to go, graphiql by itself should only use browser-compatible dependencies out-of-the-box

I’m going to bed soon. They will be improved some day when there is time. You are free to introduce any improvements you see fit. Goodnight!

When i took over these projects, graphiql was still using browserify, lol. I’m doing this for free. Please be patient.
I think I have a way to move the picomatch dependency to monaco-graphql, if this is a graphiql issue. Otherwise, I don’t have an easy solution for you.

When i took over these projects, graphiql was still using browserify, lol. I’m doing this for free. Please be patient.
I think I have a way to move the picomatch dependency to monaco-graphql, if this is a graphiql issue. Otherwise, I don’t have an easy solution for you.

Sorry if I sounded demanding, I understand that this is a project that comes from a long time without having maintenance, and thanks for taking care of it, like @saihaj has mentioned before, with proper testing this kind of issues wouldn't happen in the first place, if I had time to help on actually coding for this project I would

This does have proper testing though. We test agains 3 node versions and against two graphql js versions.
We have had users test the canary with webpack 5, CRA, vite, and parcel and it works with default configs, no workarounds. had to deploy one fix for vite and it works great

Esbuild will probably not be readily compatible with monaco editor for graphiql 2, so you’ll probably need to change bundlers once 2 lands anyways

With the new update, when actually using graphiql the bundle is fixed 🎉 thank you @acao
The reproduction I have here still has an issue, which is this:
> esbuild --bundle --platform=browser --outdir=dist index.ts

✘ [ERROR] Could not resolve "punycode"

    node_modules/.pnpm/markdown-it@12.2.0/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to
  bundle for node? You can use "--platform=node" to do that, which will remove this error.

1 error
 ELIFECYCLE  Command failed with exit code 1.

But this happens only because the file to be bundled is specifically doing:
export * from "graphiql";

which catches everything on purpose, without tree-shaking

Huh strange. Markdown-it is definitely a browser friendly dependency. Did you close because you were able to resolve the issue?

Huh strange. markdown-it is definitely a browser friendly dependency. Did you close because you were able to resolve the issue?

Yeah, when actually using graphiql the issue doesn't appear, that's why I closed it


Get started

Get Started

Hi @abhishek-iiit and @vasvi-sood,
I guess this is the reopen of #906. Like I mentioned in the last PR and in the first meeting. We don't need to document about the installation in how-to guides as it's within tutorials' scope (#905).

@Soumi7 We would be glad if you may once go through the PR, and either request for changes or approve the PR.

@proudofsimin so what is to be done, finally?

@proudofsimin As discussed in the biweekly meeting, can we remove this section from How to guide ?

@proudofsimin As discussed in the biweekly meeting, can we remove this section from How to guide ?

yes, please. Thank you.

Closing this PR as discussed in meeting for How to guide section


Array Slicing

Recommended feature: Array slicing.
Special thanks to @cpuspak for recommending this feature.

Implemented 2D slicing.
https://github.com/oishikm/numc/blob/72d4e04103bd91ac5ae9140ea17fa2f489792d57/main.c#L149


Re-enable conversion of markdown URLs to links

Closes #1004

Summary
To remain consistent with static site generators the editor should
convert URLs into links. This change is just reversing the decision to
disable this feature.

Test plan
Ran yarn test, all tests passed.
Ran yarn format, no changes.
Screenshot:

A picture of a cute animal (not mandatory but encouraged)

My dogs Leia and Samson 🐶

Thanks @jacobherrington!
I don't think we have enough consensus to merge this, see the comments on #1004. Namely, if I enter a plain url in the markdown widget while in plain markdown mode, this causes it to be translated to a link (surrounded with <``>), and there's no way to stop that.
Providing a way to do this optionally would work, though. If you'd like to work on that, let's just discuss the approach beforehand so any effort goes to good use.


Intermediate Progress Bar Bug

Bugs
Please include the following information with your bug report:

What MDL Version are you using? (please be specific, e.g. major.minor.patch)

I am using MDL V1.3.0

What browser(s) is this bug affecting (including version)?

This bug is affecting the animation it displays on Mozilla Firefox browser

What OS (and version) are you using?

Using Windows 7 Ultimate

What are the steps to reproduce the bug? Can you create a plunker/codepen/jsfiddle which reproduces it?

Just run this code

on Chrome and then Mozilla

What is the expected behavior?

The expected behavior is a smooth load bar which is how it looks like on chrome

What is the actual behavior?

When I ran it on Mozilla it has an extra bar animation that moves to quick and it looks out of place.

Any other information you believe would be useful?
N/A

Please put 'this code' in a
code block

so that we can see it

`
`


Fix python.number pattern

Python doesn't accept numbers with the _ in the beginning/end and numbers with more than one _ in the allowed places:
>>> 69420
69420
>>> 69_420
69420
>>> 69__420
  File "<stdin>", line 1
    69__420
      ^
SyntaxError: invalid decimal literal
>>> 69_420_
  File "<stdin>", line 1
    69_420_
          ^
SyntaxError: invalid decimal literal
>>> _69_420
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name '_69_420' is not defined

>>> 03.1415
3.1415
>>> 0_3.14_15
3.1415
>>> 0__3.14_15
  File "<stdin>", line 1
    0__3.14_15
     ^
SyntaxError: invalid decimal literal
>>> 0_3.14__15
  File "<stdin>", line 1
    0_3.14__15
          ^
SyntaxError: invalid decimal literal
>>> 0_3.14_15_
  File "<stdin>", line 1
    0_3.14_15_
             ^
SyntaxError: invalid decimal literal
>>> 0_3._14_15
  File "<stdin>", line 1
    0_3._14_15
       ^
SyntaxError: invalid decimal literal
>>> 0_3_.14_15
  File "<stdin>", line 1
    0_3_.14_15
       ^
SyntaxError: invalid decimal literal
>>> _0_3.14_15
  File "<stdin>", line 1
    _0_3.14_15
    ^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?

the same goes with complex numbers. And yes, python recognizes _xxx as a name, even though x is a digit, but it's still not a number, so this doesn't affect us.
The current implementation only filters numbers with _ in the beginning, so here's the fix for the other cases.

Hopefully, we still can make backward-incompatible changes, so it's fine to change IMAG_NUMBER to COMPLEX_NUMBER
I also tested \d(?:_?\d+)* for DEC_NUMBER but haven't seen any significant performance changes (everything is within the normal range, considering that I was not using a stable environment).

Thanks! I'll have a look.

Hopefully, we still can make backward-incompatible changes

We don't need to be backward-compatible with bugs :)

This pattern
FLOAT_NUMBER.2: (DEC_NUMBER "." DEC_NUMBER? | "." DEC_NUMBER) (("E" | "e") ["+" | "-"] DEC_NUMBER)?
              | DEC_NUMBER (("E" | "e") ["+" | "-"] DEC_NUMBER)?

cannot parse 5.0_8e-6 it recognizes 5.0 as float, then sees _ and tries to continue parsing new terminal(?)/rule but there's none that starts with _, so it fails
If I change it to
FLOAT_NUMBER.2: (DEC_NUMBER "." DEC_NUMBER? | "." DEC_NUMBER)
              | (DEC_NUMBER "." DEC_NUMBER? | "." DEC_NUMBER) (("E" | "e") ["+" | "-"] DEC_NUMBER)
              | DEC_NUMBER (("E" | "e") ["+" | "-"] DEC_NUMBER)?

then everything works fine.
The reason is regexp, because if I use
DIGIT: "0".."9"

DEC_NUMBER: "0" | DIGIT ("_" DIGIT | DIGIT)*

instead of previously used
DEC_NUMBER: /0|\d(?:_?\d)*/i

than both patterns for FLOAT_NUMBER works as intended.

This seems unintentional and therefore worth investigation.
@MegaIng @erezsh should I create an issue for that?

ok, so I adapted tests from cpython
here's a successful one
0_0_0
4_2
1_0000_0000
0b1001_0100
0xffff_ffff
0o5_7_7
1_00_00.5
1_00_00.5e5
1_00_00e5_1
1e1_0
.1_4
.1_4e1
0b_0
0x_f
0o_5
1_00_00j
1_00_00.5j
1_00_00e5_1j
.1_4j
1_2.5+3_3j
.5_6j

0
0xffffffffffffffff
0Xffffffffffffffff
0o77777777777777777
0O77777777777777777
123456789012345678901234567890
0b100000000000000000000000000000000000000000000000000000000000000000000
0B111111111111111111111111111111111111111111111111111111111111111111111

0j
123456789012345678901234567890j

3.14
314.
0.314
000.314
.314
3e14
3E14
3e-14
3e+14
3.e14
.3e14
3.1e4

3.14j
314.j
0.314j
000.314j
.314j
3e14j
3E14j
3e-14j
3e+14j
3.e14j
.3e14j
3.1e4j

ok, now the pr is tested and ready for review, and if everything is fine ready for merge!
If anyone could spot untested case, just write it here, I'll add it to the message and test it

ok, now the pr is tested and ready for review, and if everything is fine ready for merge!
If anyone could spot an untested case, just write it here, I'll add it to this comment and test it

Mind creating a new test_python_grammar with unittest inside the tests folder? If you (and maybe we as well) put so much effort into it, we should also test it to make sure it doesn't break.
If you don't want to create the unittest, I will do it.
Also, the reason I didn't add those tests till now is because I didn't manage to find CPython's tests for their parser. Where did you find them?

Also, the reason I didn't add those tests till now is because I didn't manage to find CPython's tests for their parser. Where did you find them?

Well, currently Python uses PEG parser generator, so you may be interested in checking it's tests, there's such things like tests for match cases (I know you're trying to megre pr with them)
Cpython also have it's own tests and all of them live in the Lib/test. I myself took cases from test_int.py
and test_grammar.py.
(It's definitely not the most rigorous testing, for example there's test_float.py or test_complex.py and I probably should add test cases from there...)

Mind creating a new test_python_grammar with unittest inside the tests folder?

oh, ok, python.lark don't have a start inside, I was just worried that if I just use, for example, file_input* as start then nothing would work ...

No start also matches the behavior of the actual python grammar: Depending on what exactly you want to parse, use file_input (without *), eval_input or single_input

No start also matches the behavior of the actual python grammar: Depending on what exactly you want to parse, use file_input (without *), eval_input or single_input

there's bug, if I use file_input and put only one stmt (like 5), then the parser will break ...
it even can't parse
if x:
    5

and even if it could I'd still wouldn't rely on that and test each rule\terminal one-by-one

Are you putting a newline at the end?

Are you putting a newline at the end?

I shouldn't have to

It's the same weird obligation that actual python grammar also has. The point is that any higher level parsing function can just always append a newline with no loss.
The problem is that it becomes annoying to express the correct behavior when you can't rely on every line ending in a newline.

@0dminnimda It's not ideal, but making the last newline optional requires support for the EOF feature, which we're keeping back because the existing implementation has issues. It would also make the parser a little heavier, so it's not all positive, even if it worked.

@erezsh ok, it looks like we are now ready to merge, I'm waiting for you.

I wonder why you chose to test by specifying a different start for each number format, instead of just starting from number and making sure the result is the right token type?
The latter approach also has the advantage of testing for collision in token regexp/priority.

I wonder why you chose to test by specifying a different start for each number format, instead of just starting from number and making sure the result is the right token type?

I didn't think about this approach.
It seems better, gonna implement it

@erezsh I updated tests, any other comments?

@erezsh could you please review and possibly merge this PR?

@0dminnimda Looks fine. But please rebase it. It should be at most 3 commits, instead of 23.
(I can rebase it for you, if you prefer)

(I can rebase it for you, if you prefer)

Why not squash and merge?

@0dminnimda Squash is done by rebasing, no? Either way, whatever gets it down to a few commits.

Squash is done by rebasing, no?

No and that's the point.

Either way, whatever gets it down to a few commits.

Well yeah, probably one commit is the best option

Ok, @MegaIng do you have any other comments?

Ok, now we're probably ready to merge, @erezsh

Rebased and merged: https://github.com/lark-parser/lark/commit/2ec9636fad34ec43456b637c7c14cfa0de95a1a6

Thanks for the PR!

Rebased and merged: 2ec9636

Yeah, that's why I was talking about squash and merge, because commit that'll end up in the repo gonna be assigned to me, you know, fair credit/blame distribution

Sorry, I do the merges via the shell, because I want to run extra tests on the way, and fix up any remaining issues.
The commits are still signed to your name, and now the merge commit will xref to this PR.

The commits are still signed to your name. So you will still get both credit and blame

Huh, that's true. I'm sorry, I was confused by 2ec9636fad34ec43456b637c7c14cfa0de95a1a6, but apparently there are 518bd3ae976261f8052f18ad6d17961dfd5b107c and 553eb41b538c410e305a3137645166356a8c9b94, so everything is fine, I guess :)

No worries. I'll check if there's a way to connect the merge to a PR from the shell, for next time. After all, I want contributors to feel appreciated and rewarded. (as much as open source allows :)


read_csv from S3 on remote Ray cluster downloads data locally

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): maxOS Big Sur 11.2.3
Modin version (modin.__version__): 0.10.0
Python version: Python 3.7.10
Code we can use to reproduce:

import ray
import modin.pandas as pd
import time

S3_PATH = "s3://<bucket>/HIGGS.csv"

ray.client().connect()

colnames = ["label"] + ["feature-%02d" % i for i in range(1, 29)]
pd.read_csv(S3_PATH, names=colnames)

Describe the problem

When reading a CSV from S3, Modin will load the entire dataset on the local driver. This leads to slow performance due to being limited by local bandwidth during download, as well as during transfer of the dataset from local to the remote cluster with ray.put.
@wuisawesome mentioned that Modin may be doing this to read the header row from the driver. In the example provided, the column names are being passed into the names parameter so this should not be necessary, but as a more generic solution perhaps the dataset could be read solely on the cluster and the header row alone could be passed to the driver if needed.
Source code / logs

Setup Ray Cluster with ray up modin-xgboost.yaml

# An unique identifier for the head node and workers of this cluster.
cluster_name: modin-xgboost

min_workers: 0
max_workers: 3

# Cloud-provider specific configuration.
provider:
    type: aws
    region: us-west-2

auth:
    ssh_user: ubuntu
    ssh_private_key: ~/.ssh/matt-test.pem

docker:
     image: rayproject/ray:nightly
     container_name: ray_container

available_node_types:
    ray.head.default:
        min_workers: 0
        max_workers: 0
        node_config:
            KeyName: matt-test
            InstanceType: m5.4xlarge
            BlockDeviceMappings:
                - DeviceName: /dev/sda1
                  Ebs:
                      VolumeSize: 100
    ray.worker.default:
        min_workers: 0
        max_workers: 3
        node_config:
            KeyName: matt-test
            InstanceType: m5.4xlarge

head_node_type: ray.head.default

setup_commands:
  - pip install -U git+https://github.com/ray-project/xgboost_ray.git#xgboost_ray
  - pip install -U modin s3fs boto3 botocore aiobotocore

Set up port forwarding: ray attach modin-xgboost.yaml -p 10001
Update distributed_read_csv.py python script with time logging:

import ray
import modin.pandas as pd
import time

S3_PATH = "s3://<bucket>/HIGGS.csv"

ray.client().connect()

start = time.time()
print(f"start time: {start}")

colnames = ["label"] + ["feature-%02d" % i for i in range(1, 29)]
pd.read_csv(S3_PATH, names=colnames)

end = time.time()
total = end - start

print(f"end time: {end}")
print(f"time taken: {total}")

Run script and observe that it takes 27 minutes:

(python37) ~/workspace/scratch/modin RAY_ADDRESS="localhost:10001" python distributed_read_csv.py
start time:<PHONE_NUMBER>.23508
end time:<PHONE_NUMBER>.523253
time taken: 1619.2881729602814

Traceback from py-spy:

(python37) ~/workspace/scratch/modin sudo py-spy dump --pid 89490
Process 89490: python distributed_read_csv.py
Python v3.7.10 (/Users/matt/anaconda3/envs/python37/bin/python3.7)

Thread 0x10DE63E00 (idle): "MainThread"
    wait (threading.py:300)
    wait (threading.py:552)
    sync (fsspec/asyn.py:58)
    _fetch_range (s3fs/core.py:2047)
    _fetch_range (s3fs/core.py:1904)
    _fetch (fsspec/caching.py:390)
    read (fsspec/spec.py:1469)
    offset (modin/engines/base/io/text/text_file_dispatcher.py:169)
    partitioned_file (modin/engines/base/io/text/text_file_dispatcher.py:263)
    _read (modin/engines/base/io/text/csv_dispatcher.py:153)
    read (modin/engines/base/io/file_dispatcher.py:67)
    _read_csv (modin/data_management/factories/factories.py:206)
    read_csv (modin/data_management/factories/dispatcher.py:172)
    _read (modin/pandas/io.py:59)
    read_csv (modin/pandas/io.py:133)
    <module> (distributed_read_csv.py:14)
Thread 0x70000091B000 (idle): "Thread-1"
    _poll_connectivity (grpc/_channel.py:1369)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x700000EA1000 (idle): "Thread-6"
    wait (threading.py:300)
    _wait_once (grpc/_common.py:106)
    wait (grpc/_common.py:141)
    _next (grpc/_channel.py:794)
    __next__ (grpc/_channel.py:416)
    _data_main (ray/util/client/dataclient.py:69)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000013A4000 (idle): "Thread-7"
    wait (threading.py:300)
    _wait_once (grpc/_common.py:106)
    wait (grpc/_common.py:141)
    _next (grpc/_channel.py:794)
    __next__ (grpc/_channel.py:416)
    _log_main (ray/util/client/logsclient.py:42)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000018A7000 (idle): "Thread-8"
    channel_spin (grpc/_channel.py:1235)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x700001DAA000 (idle): "Thread-9"
    wait (threading.py:296)
    get (queue.py:170)
    consume_request_iterator (grpc/_channel.py:195)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000022AD000 (idle): "Thread-10"
    wait (threading.py:296)
    get (queue.py:170)
    consume_request_iterator (grpc/_channel.py:195)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000027B0000 (idle): "fsspecIO"
    select (selectors.py:558)
    _run_once (asyncio/base_events.py:1750)
    run_forever (asyncio/base_events.py:541)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x700002DB9000 (idle): "ThreadPoolExecutor-0_0"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000032BC000 (idle): "ThreadPoolExecutor-0_1"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000037BF000 (idle): "ThreadPoolExecutor-0_2"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x700003CC2000 (idle): "ThreadPoolExecutor-0_3"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000041C5000 (idle): "ThreadPoolExecutor-0_4"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x7000046C8000 (idle): "ThreadPoolExecutor-0_5"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 0x700004BCB000 (idle): "ThreadPoolExecutor-0_6"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)

Changing pd.read_csv(S3_PATH, names=colnames) to ray.get(ray.remote(pd.read_csv).remote(S3_PATH, names=colnames)) reduces the time from 27 minutes to 4 minutes:

(python37) ~/workspace/scratch/modin RAY_ADDRESS="localhost:10001" python distributed_read_csv.py
start time:<PHONE_NUMBER>.241013
end time:<PHONE_NUMBER>.697503
time taken:<PHONE_NUMBER>3982544

Thanks @matthewdeng for the report!
Reading a CSV containing both quotations and newline characters in the quoted text cannot be done safely in a distributed way. I recommend using quoting=3 or quoting=csv.QUOTE_NONE (after import csv) to avoid a large amount of data transfer if your quotes do not contain newline characters.
Reading the names can potentially be done from the workers, but the calculation for the column names is not trivial (it could be multiple rows of column names, no names, etc.), so in order to ensure all workers have the correct metadata, we do it once and broadcast the names.

@devin-petersohn one question and one potential (hacky) solution.
Question: why do we need to read the entire file though? even if parsing quotes in non-trivial, it should only require reading the header line right? (i.e. the lines after the header of the csv file can't change the header).
Hacky proposal: what if we just moved the entire initial read into a a remote task?

Hi @devin-petersohn @wuisawesome has this issue been resolved?


Themes do not respect text zoom level

Background:
Under appearance, Discord users are able to change the text zoom size down to 75%.  This affects most text in the application including the channel list, chat window and member list.  These are all part of what is themed by the theme engine.
Steps to Reproduce:

Go to settings -> appearance
Set text zoom level to 75%
Go back to main application window
Allow Discord to get backgrounded by Android (i.e. by switching around applications in Android)
Switch back to Discord

Expected Behavior:
All text items in Discord remain at 75%
Actual Behavior:

Chat window remains at 75% (as expected)
Channel list, member list and options text are forced to 100%.  Sometimes I have noticed this happens inconsistently; some items will be at 75% and others in the same window will be at 100%

This seems to happen only when a theme is enabled - I also tried disabling all themes and was no longer able to reproduce the issue, so it would appear the problem lies somewhere in the theming engine.
Screenshot for demonstration purposes:

I'm unable to reproduce this even with a theme turned on... Which Discord version is this?

Sorry, this should have been included in the original bug report:
App: 175.16 (175016) googleRelease;
Manifest: "84fc41c23bbdd32340702165ad519926";
Build Override: N/A;
Device: raven (Pixel 6 Pro) OS 33;
Vendetta - f66e62d;
Discord - 175.16 (175016);
React - 18.2.0;
React Native - 0.70.6;
Bytecode - 89;
Loader - VendettaXposed;
Operating System - Android 13;
SDK - 33;
Manufacturer - Google;
Brand - google;
Model - Pixel 6 Pro;
Codename - raven;
Running GrapheneOS<PHONE_NUMBER>.  I reproduced with two separate themes; Monokai Night and Orion.  It's possible its a theme issue but I think it's unlikely given it occured with multiple themes.
I would expect reproduction to be finicky given the deallocation requirement.  Also very much a possibility that it could be related to GrapheneOS.
I'll try playing with the developer tools this weekend to see if I can find anything further that would help with reproduction.

It could also be an issue with Discord itself, considering I cannot reproduce this on 177.7.

And seemingly as always when I report these issues I can't seem to get it to happen anymore.  I'll chalk it up to either a Discord update or a plugin issue for now.
Will reopen if I find anything new.

Just in case anyone finds this issue in future this does seem to be a Discord issue and not a mod issue.  This reproduced on 177.9 with some difficulty without any plugins and on 175.16 without any themes.  That would seem to point the finger at Discord since although I didn't check native client because reproducing this is actually pretty annoying, there's nothing common to the mod.
Adjusting the font size in the OS seems to be more stable for me although obviously other programs will also be affected.


same event fired two times one on customer edit page and other in general blade

bagisto -1.2.0
same event fired two times one on customer edit page and other in general blade
step-1
add the customer document module
step-2
edit the customer in admin panel
bagisto.admin.customer.edit.after -- getting my view render two times as i am using the event to add more columns two the edit page of customer

@asif-webkul
this is fixed now in master so closing this.


Unable to escape timestamptz string in query

Bug report
Describe the bug
We are running a query with a gt query on a timestamptz field. We are passing a timestamptz string, which we received from supabase into the query to fetch newer rows, however since the string contains a +, the query will not be escaped correctly, as + is an allowed character. In order for the query to work, + needs to be escaped with %2B, otherwise supabase will return an error.
If we escape the + before passing it to postgrest-swift, the escaped string gets escaped again, also resulting in an error.
To Reproduce
Run the following code on a table with a received_at field, which has the type timestamptz.
    let response = try await client.database.from("tasks")
            .select()
            .gt(column: "received_at", value: "2023-03-23T15:50:30.511743+00:00")
            .order(column: "received_at")
            .execute()

This will return the following error from the server:
{
    "code": "22007",
    "details": null,
    "hint": null,
    "message": "invalid input syntax for type timestamp with time zone: \"2023-03-23T15:50:31.511743 00:00\""
}

Expected behavior
I'm not what the best approach would be. The easiest for this case would be to escape the + internally, but I could expect this to be a breaking change and lead to other issues.
As the APIClient on PostgrestClient and the APIClient.delegate are non-public, it is currently not possible to adjust the escaping behavior from outside the library. Have you considered making the library more configurable here?
If they would be exposed, I could implement the func client<T>(_ client: APIClient, makeURLForRequest request: Request<T>) throws -> URL? on APIClientDelegate to escape the string correctly.
System information

OS: macOS
Version of supabase-swift: 0.2.1

Hey @leoMehlig thanks for reporting this issue, I'll be taking a look.

Fixed on https://github.com/supabase-community/postgrest-swift/releases/tag/1.0.2


[RFC] Include list of all PR's going out in a release

Proposal:
When there's a PR (from staging -> release), it would be nice to have a GitHub comment that lists all the PR's included in this deploy. This makes it easier to see what's being deployed, and currently is manual- a deployer looks thru the commits and 'summarizes' what's being deployed.
Reasoning
The deploy PR itself will naturally list the commits being included, but PR's are more logical groupings of commits for humans to look at. So summarizing the list of commits -> unique list of containing PR's is desirable.
Exceptions:
This only works for repos that use the master - staging - release workflow, initiated via GitHub PR's.
How is this RFC resolved?
A PR to peril-settings adding the check - https://github.com/artsy/peril-settings/pull/133

Further thought, this can be a GitHub comment and/or Slack message?

Yeah, seems like a great idea to me 👍

Yep, I like it. Auto generates a list like this and dumps it in the changelog. When a renovate PR comes around that lists the changelog, it's easy to see what PRs were involved. Having our PR release process mirror that feels right.
👍 from me
You can see how auto does it here: https://github.com/intuit/auto/blob/f148de6f1a146aaa1bd9fd6b048996ea73bbe2e2/packages/core/src/release.ts#L284. @hipstersmoothie set that up originally.

Resolving! The Peril rule has been merged.


not able to apply block_updates_deletes policy

While using https://kyverno.io/policies/other/block_updates_deletes/?policytypes=RBAC policy, getting this error.
error: error validating "kubernetes-infra/kyverno/policies/block-delete.yaml": error validating data: ValidationError(ClusterPolicy.spec.rules[0].match.resources): unknown field "kind" in io.kyverno.v1.ClusterPolicy.spec.rules.match.resources; if you choose to ignore these errors, turn validation off with --validate=false

Kyverno version: 1.4.2

It should be kinds. Thanks for reporting. We'll fix.


Files are not appearing in the explorer when opened

Type: Bug
When I click the open folder button and select a folder, the folder does not appear in the explorer, however it does appear in the terminal. Because of this I can only run my code but i cannot edit or view it. I would love answers since this is extremely irritating. Thank you.

\gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!

It worked thanks a bunch


Potential Violation Detected

Hey dmoru883!
This repository has been flagged as containing material which potentially infringes upon an academic copyright or an institution's academic integrity policies.
At your earliest convenience, please do one of the following:

disable public access to your repository see repository access settings
remove any content could be in violation of copyright law
remove any content could be in violation of an institution's academic integrity policy

Please feel free to continue any discussion here. Thanks!

:wave: gentle reminder!

Hello,
I am not so sure what exactly is the material contains the potential infringement and integrity. I have only committed my cargo projects in Rust programming. Is there something I am doing wrong?


docs(s2n-quic-core): Fleshing out Datagram Documentation (#1417)

Resolved issues:
Related to #1253
Description of changes:
Fleshing out some comments for datagram-related items. Additionally found some methods that I don't think should be public since users should not need access to them directly. Noticed that the datagram spec needed to be added to our specs folder as well so that we could reference it in the compliance doc.
Call-outs:
I think that you should be able to see the docs in our CI? I'm not sure which github action generates them though.
Testing:
cargo doc compiles.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

You can see the docs built here, they are visible from the **doc / report** check

If you want to track the overall compliance completion, you can run ./target/release/duvet extract https://www.rfc-editor.org/rfc/rfc9221 to extract all the requirements into .toml files


Showing < and &rt; instead of < and > for links pertaining to <filesystem>, <string> typedefs and <sstream> typedefs

This is the screenshot of the issue I found:

I'm using Chrome Browser in Ubuntu 16.04 [although this issue I think is related to parsing the string, not anything related to browser].
Also, this is the link I was viewing: https://docs.microsoft.com/en-us/cpp/standard-library/basic-string-class?view=msvc-170#see-also

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

ID: b9fedc7b-0ebe-766c-9089-548293b3b08f
Version Independent ID: 451f8367-d247-95fb-03ec-0f9195e165e1
Content: basic_string Class
Content Source: docs/standard-library/basic-string-class.md
Product: visual-cpp
Technology: cpp-standard-libraries
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

@Ch-sriram, I'll talk to the team that machine generates that part of the topic. Thanks for raising the issue.

@TylerMSFT can you point me to the source code if it's open to contributions?
I can try to contribute and fix it on my own.

@ch-sriram - it's not open to contributions. They are running it today, I understand. We'll see if this clears up in a day or two.  The cause is metadata in the topics. Many of those got cleaned up in December and when they regenerate the related content sections, it should clear up, though there are probably a handful that will still need to be updated.

@TylerMSFT cool. I understand 🙂.

@Ch-sriram , it looks like the tool ran and the particular topic you called out is fixed.
I bet there are other topics with this problem though (we have thousands of topics to look at) so if you see one, don't hesitate to reopen this issue and we'll take a look.
Hey, really appreciate you pointing this out so we can improve things.


~ is not properly translated in relative file path for analyzer

When I use a ~ for my project source code path, for example:
./gradlew cli:run --args="analyze -i ~/Documents/workspace/django-snow -o ~/Documents/workspace/ort_django_snow"

I get an error that the directory does not exist:
Scanning project path:
        /Users/jwilhelm/Documents/workspace/oss-review-toolkit/cli/~/Documents/workspace/django-snow
Exception in thread "main" java.lang.IllegalArgumentException: The provided path is not a directory: /Users/jwilhelm/Documents/workspace/oss-review-toolkit/cli/~/Documents/workspace/django-snow

Similarly, with the output path, a literal ~ folder was created to store the result.
I would have expected this to be translated to my $HOME.

That actually works as designed. Expanding ~ to the current user's home path is a feature of the shell you are using, and in that regard this is also a platform-specific feature, whereas ORT is a cross-platform tool. On Windows, for example, you don't have this feature at all.
The --args string is directly passed to ORT without going through the shell first, like it would be if you were running
$ ./gradlew installDist
$ ./cli/build/install/ort/bin/ort analyze -i ~/Documents/workspace/django-snow -o ~/Documents/workspace/ort_django_snow

Using the latter also the work-around I'd suggest if you want to be using ~. The same applies for using $HOME, BTW, as environment variable expansion also is a feature of your shell: The program being running never actually sees this variable name.
Does that make sense to you?

Interesting; that does make sense. I think this comes from my own
unfamiliarity with Kotlin. I'm used to being able to resolve these, in a
cross-platform manner, in Python with os.path.expanduser. But
from your response, it sounds like Kotlin does not have an equivalent?
On Thu, Mar 21, 2019, 04:32 Sebastian Schuberth<EMAIL_ADDRESS>wrote:

That actually works as designed. Expanding ~ to the current user's home
path is a feature of the shell you are using, and in that regard this is
also a platform-specific feature, whereas ORT is a cross-platform tool. On
Windows, for example, you don't have this feature at all.
The --args string is directly passed to ORT without going through the
shell first, like it would be if you were running
$ ./gradlew installDist
$ ./cli/build/install/ort/bin/ort analyze -i ~/Documents/workspace/django-snow -o ~/Documents/workspace/ort_django_snow
Using the latter also the work-around I'd suggest if you want to be using
~. The same applies for using $HOME, BTW, as environment variable
expansion also is a feature of your shell: The program being running never
actually sees this variable name.
Does that make sense to you?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/heremaps/oss-review-toolkit/issues/1384#issuecomment-475146338,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACTsbzyVlgGYwXV8sh31dMXA1G8hfDmks5vY0OTgaJpZM4cAOTW
.

As we're targeting the JVM with Kotlin, it's not (only) a Kotlin-thing, but (also) a Java-thing, and indeed neither Java nor Kotlin have such a helper method like Python built-in, see e.g. this question.
However, I'm not totally opposed to doing that, if it makes you life significantly easier. It's just that e.g. Windows users would probably not expect such an expansion to happen, but that should only matter if they actually tried to use a directory with a literal "~" as its name, which is rather unlikely. Or we make the expansion only happen on non-Windows in general.


Settings screen has broken height and width on KDE Plasma

I guess the image can speak for itself.
Side note, I can still temporarily use Settings if I maximized the window, so it would be a critical bug but a workaround exists.
Anotherr workaround appears to be invoking the same option again.

More notes:
All window except the main one seem to be broken, with incorrect initial width and height, and Settings cannot be resized (maybe due to the design itself)

I can't fix it because login is no longer possible. I will reopen this when it's possible again

Does it still happen in the newest nightly build

Please run the jar in a terminal with: "java -jar SpotifyXP.jar --setup-complete --debug"

Closed due to inactitivy


Tagged expresions

It would be nice to be able to use ES6 tagged expressions as in
 db.prep`INSERT INTO cats (name, age) VALUES (${name}, ${age})`;

It would be nice
 db.prepare('INSERT INTO cats (name, age) VALUES (@name, @age)');

One advantage is that it makes it easier for VC to prompt and TypeScript to catch bugs since it would parse the expression before execution.

https://github.com/JoshuaWise/better-sqlite3/search?q=es6+tagged&type=issues
https://github.com/JoshuaWise/better-sqlite3/issues/544
https://github.com/leafac/sqlite#the-sql-tagged-template-literal


Buff Bulk Lizard Plushie Crate

About the PR

Increased the amount of plushies in the bulk lizard plushie crate.
Why / Balance

https://discord.com/channels/310555209753690112/1204995315757879346 the lizards demand more plushies
Technical details

Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

tweak: Changed the amount of plushies in the lizard plushie crate.

Sounds good

Might be worth weighing this with #25132 in mind one way or another.

Might be worth weighing this with #25132 in mind one way or another.

Could make it more expensive i guess..

Ah, thanks for adding in more plushies for my 'Weh' addiction. Much appreciated!

Too many ents, just change the price.

alright, increased price from 2500 to 5000.

Too many ents, just change the price.

alright, increased price from 2500 to 5000.

You did the opposite thing, decrease the price and leave it at 5 plushies.

5 plushie for 500$

Too many ents, just change the price.

alright, increased price from 2500 to 5000.

You did the opposite thing, decrease the price and leave it at 5 plushies.

didnt know if you wanted me to lower the price or increase the price..


Update work area size from 3064 to 3264

Currently the descriptions for rom_load_partition_table, rom_pick_ab_partition, rom_get_uf2_target_partition and rom_chain_image document the minimum workarea size as 3064, with 3K recommended. This is too small, as the actual size required is 3264, so 3.25K should be recommended instead.
The minimum size was obtained with the following for loop in a binary:
for (int i=0xc00; i <= 0x1000; i++) {
    uint8_t* workarea = malloc(i);
    int ret = rom_load_partition_table(workarea, i, true);
    free(workarea);
    if (ret != -13) {
        printf("PT Load Ret %d, size %d\n", ret, i);
        break;
    }
}

Currently the descriptions for rom_load_partition_table, rom_pick_ab_partition, rom_get_uf2_target_partition and rom_chain_image document the minimum workarea size

I forgot to ask earlier - do each of these four functions definitely have the same minimum workarea size?


add attachedcluater e2e test

What type of PR is this?

What this PR does / why we need it:
add attachedcluater e2e test
Which issue(s) this PR fixes:
a part of #436

You can see the details of the e2e test in the CI of this PR.


Split heads with morph targets / blendshapes and remove from body to reduce model size in VRMs

Current the vrm base body assets are 48 megabytes. They can be much, much smaller with a bit of optimization.
-- Make sure that they are a single combined material
-- The head needs to be a separate mesh, and the blendshapes need to be removed from the body, this will reduce file size by 60%

See https://github.com/AtlasFoundation/OpenCharacterCreator/issues/35#issuecomment-1145622690


Do not download python package from pip when using RHEL

https://bugzilla.redhat.com/show_bug.cgi?id=1420855
@guits, can you try this one?

work in progress


MySql session Error

Issue summary
Can't add new command when connection is in closed state

@shopify/shopify-app-session-storage-mysql version 1.1.2:
Node version: 16.0.0
Operating system: Linux

 index > [shopify-app/INFO] Running ensureInstalledOnShop
 index > Error: Can't add new command when connection is in closed state
 index >     at PromiseConnection.query (/var/www/ui-extension/web/node_modules/mysql2/promise.js:93:22)
 index >     at MySqlConnection.query (/var/www/ui-extension/web/node_modules/@shopify/shopify-app-session-storage-mysql/build/cjs/mysql-connection.js:21:28)
 index >     at processTicksAndRejections (node:internal/process/task_queues:96:5)
 index >     at async MySQLSessionStorage.loadSession (/var/www/ui-extension/web/node_modules/@shopify/shopify-app-session-storage-mysql/build/cjs/mysql.js:54:20)
 index >     at async /var/www/ui-extension/web/node_modules/@shopify/shopify-app-express/build/cjs/middlewares/ensure-installed-on-shop.js:32:23 {
 index >   code: undefined,
 index >   errno: undefined,
 index >   sql: undefined,
 index >   sqlState: undefined,
 index >   sqlMessage: undefined
 index > }
 index > [shopify-app/INFO] Running ensureInstalledOnShop
 index > [shopify-app/ERROR] ensureInstalledOnShop did not receive a shop query argument | {shop: undefined}
 index > [shopify-app/INFO] Running ensureInstalledOnShop
 index > [shopify-app/ERROR] ensureInstalledOnShop did not receive a shop query argument | {shop: undefined}

Expected behavior
auto re-connect to database after disconnected
Actual behavior
did not re-connected after disconnected
Steps to reproduce the problem
1.run app using pm2
2.still idle for more than 5 hour ( don't make any request to database )
you should restart pm2 to resolve this Error

I'm seeing exactly the same issue in both my production and development environments.
Both environments are using

@shopify/shopify-app-session-storage-mysql version 1.1.2
mysql2 version 3.2.0
AWS RDS MySQL Server version 8.0.28

I 1st saw this issue with version 1.0.0 of @shopify/shopify-app-session-storage-mysql. I hoped upgrading might resolve it, but no luck!
The same MySQL database/schema is used for session storage (managed by the Session Storage MySQL adaptor package) and application-specific data (managed by my code using a connection pool). Not sure this is relevant, but I thought it was worth noting there are 2 areas of the application accessing the same database.
Production environment

AWS EC2 Ubuntu 22.04.1
Node.js version 18.14.2
Running as a systemd service - 'npm run serve'

Mar 10 07:23:46 ip-172-31-8-255 nvm-exec[78005]: [shopify-app/INFO] Running ensureInstalledOnShop
Mar 10 07:23:46 ip-172-31-8-255 nvm-exec[78005]: [shopify-app/ERROR] ensureInstalledOnShop did not receive a shop query argument | {shop: undefined}
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]: [shopify-app/INFO] Running ensureInstalledOnShop
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]: /home/ubuntu/da-app/node_modules/mysql2/promise.js:93
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:     const localErr = new Error();
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:                      ^
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]: Error: Can't add new command when connection is in closed state
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:     at PromiseConnection.query (/home/ubuntu/da-app/node_modules/mysql2/promise.js:93:22)
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:     at MySqlConnection.query (/home/ubuntu/da-app/node_modules/@shopify/shopify-app-session-storage-mysql/build/cjs/mys>
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:     at async MySQLSessionStorage.loadSession (/home/ubuntu/da-app/node_modules/@shopify/shopify-app-session-storage-mys>
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:     at async /home/ubuntu/da-app/node_modules/@shopify/shopify-app-express/build/cjs/middlewares/ensure-installed-on-sh>
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:   code: undefined,
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:   errno: undefined,
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:   sql: undefined,
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:   sqlState: undefined,
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]:   sqlMessage: undefined
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]: }
Mar 10 07:37:15 ip-172-31-8-255 nvm-exec[78005]: Node.js v18.14.2
Mar 10 07:37:15 ip-172-31-8-255 systemd[1]: da-app.service: Main process exited, code=exited, status=1/FAILURE
Mar 10 07:37:15 ip-172-31-8-255 systemd[1]: da-app.service: Failed with result 'exit-code'.

Development environment

Node.js version 18.12.1
Ubuntu 20.04.5
Run from the command line - 'npm run dev'

2023-03-10 08:26:30 | backend  | [shopify-app/INFO] Running validateAuthenticatedSession
2023-03-10 08:26:30 | backend  | [shopify-app/ERROR] Error when loading session from storage: Error: Can't add new command when connection is in closed state
2023-03-10 08:26:39 | backend  | [shopify-app/INFO] Running validateAuthenticatedSession
2023-03-10 08:26:39 | backend  | [shopify-app/ERROR] Error when loading session from storage: Error: Can't add new command when connection is in closed state
2023-03-10 08:26:43 | backend  | [shopify-app/INFO] Running ensureInstalledOnShop
2023-03-10 08:26:43 | backend  | Waiting for the debugger to disconnect...
2023-03-10 08:26:44 | backend  | /home/marn-ow/Documents/AbelAndJones/Customers/DeliveryApp/App/web/node_modules/mysql2/promise.js:93
2023-03-10 08:26:44 | backend  |     const localErr = new Error();
2023-03-10 08:26:44 | backend  |                      ^
2023-03-10 08:26:44 | backend  |
2023-03-10 08:26:44 | backend  | Error: Can't add new command when connection is in closed state
2023-03-10 08:26:44 | backend  |     at PromiseConnection.query (/home/marn-ow/Documents/AbelAndJones/Customers/DeliveryApp/App/web/node_modules/mysql2/promise.js:93:22)
2023-03-10 08:26:44 | backend  |     at MySqlConnection.query (/home/marn-ow/Documents/AbelAndJones/Customers/DeliveryApp/App/web/node_modules/@shopify/shopify-app-session-storage-mysql/build/cjs/mysql-connection.js:21:28)
2023-03-10 08:26:44 | backend  |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-03-10 08:26:44 | backend  |     at async MySQLSessionStorage.loadSession (/home/marn-ow/Documents/AbelAndJones/Customers/DeliveryApp/App/web/node_modules/@shopify/shopify-app-session-storage-mysql/build/cjs/mysql.js:54:20)
2023-03-10 08:26:44 | backend  |     at async /home/marn-ow/Documents/AbelAndJones/Customers/DeliveryApp/App/web/node_modules/@shopify/shopify-app-express/build/cjs/middlewares/ensure-installed-on-shop.js:32:23 {
2023-03-10 08:26:44 | backend  |   code: undefined,
2023-03-10 08:26:44 | backend  |   errno: undefined,
2023-03-10 08:26:44 | backend  |   sql: undefined,
2023-03-10 08:26:44 | backend  |   sqlState: undefined,
2023-03-10 08:26:44 | backend  |   sqlMessage: undefined
2023-03-10 08:26:44 | backend  | }
2023-03-10 08:26:44 | backend  |
2023-03-10 08:26:44 | backend  | Node.js v18.12.1
2023-03-10 08:26:44 | frontend | 8:26:44 AM [vite] http proxy error at /?embedded=1&hmac=877aa6aa23a3086b5a65b37d5ed8c4454cc12bf2935d00db2c39daa29900da93&host=YWRtaW4uc2hvcGlmeS5jb20vc3RvcmUvZGEtZGV2LWFwcA&locale=en-GB&session=bd916f
                                 3e1144cf498a706e8edf320471ab5576f377ada3ee48582c5558158b80&shop=da-dev-app.myshopify.com&timestamp=1678436803:
2023-03-10 08:26:44 | frontend | Error: socket hang up
2023-03-10 08:26:44 | frontend |     at connResetException (node:internal/errors:711:14)
2023-03-10 08:26:44 | frontend |     at Socket.socketOnEnd (node:_http_client:518:23)
2023-03-10 08:26:44 | frontend |     at Socket.emit (node:events:525:35)
2023-03-10 08:26:44 | frontend |     at endReadableNT (node:internal/streams/readable:1359:12)
2023-03-10 08:26:44 | frontend |     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
2023-03-10 08:26:44 | backend  | [nodemon] app crashed - waiting for file changes before starting...

@abelandjones see this pull request
https://github.com/Shopify/shopify-app-js/pull/159

@ahmada3mar Thank you, That's great.

Hi @forwells, I've now added a scheduled webhook reconciliation task to my app which runs overnight during the normally quiet period. Although not an alternative solution, in my case the session storage database connection is now less likely to be idle for long enough to timeout. Not ideal or fully robust and I'm still hoping the update made by @ahmada3mar will be made available in a new version of @shopify/shopify-app-session-storage-mysql soon.

Hello @forwells , i published an alternative repository at https://github.com/ahmada3mar/shopify-app-session-storage-mysql
Please update your package.json like this
 "dependencies": {
    "@shopify/shopify-app-session-storage-mysql": "git+https://github.com/ahmada3mar/shopify-app-session-storage-mysql.git#main",
  },

then run
npm install

Thank you so much, you are the best!

Hi @forwells, I've now added a scheduled webhook reconciliation task to my app which runs overnight during the normally quiet period. Although not an alternative solution, in my case the session storage database connection is now less likely to be idle for long enough to timeout. Not ideal or fully robust and I'm still hoping the update made by @ahmada3mar will be made available in a new version of @shopify/shopify-app-session-storage-mysql soon.
Also thank you for your support, congrats!


Install to .local instead of .dune

This changes the location into which Dune is installed into the users .local folder, which is fairly standard for a lot of user-installed packages.
It also changes the locations for env & completions to fit with the conventions and reworks the config editing to compute the paths. I got them all wrong all the time, missing one or the other component so now the computer does all the computing for me.
Finally it adds a fallback for when SHELL isn't set. Dash doesn't set SHELL so it prints an error (and continues with the * branch anyway). This makes avoids the error message while still executing the same fallback branch.
There's two reasons for this change:

.local is a fairly standard convention and people might actually have ~/.local/bin in their paths
.dune conflicts with dune-release which will, upon the presence of .dune attempt to migrate it's config file to ~/.config (which is, overall, a good thing) and fail. While this is a bug in dune-release, it shows one of the problems of using dotfiles directly in the user directory.

To back up this change, quoting here the XDG spec:

User-specific executable files may be stored in $HOME/.local/bin. Distributions should ensure this directory shows up in the UNIX $PATH environment variable, at an appropriate place.

I think you need to update the files in env as they currently still add ~/.dune/bin to PATH.

I've added the changes to the env (fish even has this beautiful command that automatically does the right thing and both bash and ZSH seem to support that idiom from rustup) but it is a bit problematic that if we merge this, then the install script will install env files with the wrong path because these are taken from the tarball and only generated daily.
I think a nicer solution would be downloading the env scripts from somewhere else and not using the ones in the tarball. Possibly a task for another PR.
@maiste Is there a way to merge this and regenerate the tarball ASAP to minimize the amount of time we are shipping with env files that point to the old installation path?

Feel free to ping me to review the metadata PR :+1:

I've added you as a reviewer for #144.


Uppercase in template's name causes bug "template not found"

Hello,
For most of my templates, I get this error :

I found that this is caused by the uppercases in the templates names.
When I switch to using lower case, it works again.

I released a fix for this yesterday. I wanted to reduce errors in casing arguments and messed up template and replace features. It should work now if you update the plugin. Apologies for the error!


Add pathPrefix option

Awesome, tests, docs, everything :+1:
I'll release this in 0.3.0 in a few minutes.

Released, thanks again!


How do we handle implicit arity?

We want the API to be explicit and easy to use. I would do it like this:
const f = (a, b, c) => …;  // f.length === 3

API call
Implied length

f::curry()
3

f::curry(1)
3

f::curry(_, 1)
3

f::curry(_, 1, 2)
3

f::curry(_, 1, 2, _)
4

f::curry(_, _, _, _, _)
5

f::curry(_, _, _, _, _, _)
6

So, summing up, f::curry(...args) assumes the arity of f to be Math.max(f.length, args.length).
In any case ::curry returns a Haskell-like fixed-arity function with auto currying.
Does that convince you, @jussi-kalliokoski? Perhaps the name curry is wrong?

We want the API to be explicit and easy to use. I would do it like this:

Totally agree.

Perhaps the name curry is wrong?

I would still go with curry.

And one more table:

API call
g.length

g = f::curry()
3

g = f::curry(1)
2

g = f::curry(_, 1)
2

g = f::curry(_, 1, 2)
1

g = f::curry(_, 1, 2, _)
2

g = f::curry(_, _, _, _, _)
5

g = f::curry(_, _, _, _, _, _)
6

If implied length is the length of f, the first table looks right.
Are you going to overwrite the length of the resulting function?
The latter table also looks right to me as well - there's multiple choices in between implicit vs explicit here and I think the one proposed by that table is a good balance. On the other hand, one option is to ignore the function's length if there are placeholders. That would allow suppressing parameters, like Trine's partial:
function f (a, b, c) { console.log(a, b, c); }
g = f::curry(_, 1);
g.length; // 1
g(2, 3); // logs 2 1

not sure how useful that is for "homemade" functions but 3rd party (including std lib) functions tend to have a ton of mostly useless arguments and overloads that always sneak out to make a bug in a hard to find place. Of course, you can partially apply undefined or null to those slots, but sadly often the overloads are based on arguments.length instead of a null check.

If implied length is the length of f, the first table looks right.

Yup, that’s the case. I should have made it explicit.

one option is to ignore the function's length if there are placeholders. That would allow suppressing parameters […]. Often the overloads are based on arguments.length instead of a null check.

That’s a good point. The more I think about it, the more sense it makes to me. Thanks!
([encoding], path, [options], [anotherFancyFeature], callback) – we really need to handle these pesky overloads. I see two options:

f::curry(_, 2)(1) === f(1, 2)
f::curry(_, 2, undefined)(1) === f(1, 2)

– and I guess the first one by @jussi-kalliokoski is the way to go. Least astonishment.

one option is to ignore the function's length if there are placeholders.

SGTM. We need to make that clear in the readme.

Check out https://github.com/stoeffel/chickencurry/commit/fc9131fbd58b7fb7028e96f15d0b0a8b136eec45. Now curry ignores the function's length if a user passes placeholders in the initial call (see here and here).


Wrong inheritance from responses bug

#147

:tada: This PR is included in version 1.7.2 :tada:
The release is available on:

v1.7.2
GitHub release

Your semantic-release bot :package::rocket:


A second implementation that does half the work; more tests

An improvement to the palindrome example #6 plus a few additional input samples.

Added a modified version of the initial PR as of 6344083.  Many of the @japhb's suggestions have been incorporated (it seems that parens are now needed around params to block for loops now...).  I've left use of the Test module out as it's interesting to run this program as an example and not necessarily as a test; this is what we have a test suite for :-)  Thanks for your contribution!


add link to github repo

There are no links to this github repo/org from most cdnjs.com page, there's only link to PeterDaveHello's github profile.
I had to click "Contact us", only then I found out I must report issues on GitHub.

There is link of https://github.com/cdnjs/cdnjs on the corner, should be good enough for most users, as it's the main cdnjs repo, and also contains website repo info in the readme, also we don't really mind that you created issues at cdnjs/cdnjs (Though creating issue at cdnjs/new-website is of course better 👍 ), thanks for suggestion anyway.


Add files via upload

SEGU University

@codelover99999 segi4u.txt I am sorry, I have to close the request without merging, because you made a mistake in a request and did not specify any filepath. Please ensure that you are familiar with this repository rules located at the bottom of this page and make a new correct request. Thank you for your understanding!


Add Post Metric: PnL "Profits and Losses"

Is proven difficult to obtain a satisfactory academic reference for its calculation.


Any way to grab the map zoom level?

hi all this is a superb plugin for easily grabbing lat and lon especially with the modal view.
I need to also grab the map zoom level. Any way I can do this?
Thanks in advance

:+1: I'd love this too!

Found out I can grab the zoom like this
var zoom = $('#geo-location-map').locationpicker('map').map.getZoom();
And set it as well when the map is loaded
$('#geo-location-map').locationpicker('map').map.setZoom(14);


fix passing of gathered headers

Just a simple typo, but a fatal one: x-registry-auth cannot be passed currently.

Great catch! Seems to have originated from the new way we parse the swagger docs compared to clj-docker-client!

released as 0.0.3


Simplify Control transform calculation

T // translation
R // rotation
S // scaling

Control.get_transform() = T(position) * T(pivot_offset) * R(rotation) * S(scale) * T(-pivot_offset)
                        = T(position + pivot_offset)    * R(rotation) * S(scale) * T(-pivot_offset)

Previously Control::_get_internal_transform() was calculating T(pivot_offset) * R(rotation) * S(scale) * T(-pivot_offset) part by unnecessarily doing 1 affine inverse ($T(pivot\_offset) = T^{-1}(-pivot\_offset)$) and 2 full Transform2D multiplications. Then T(position) was applied to the result (by a simple addition).
Now T(position + pivot_offset) * R(rotation) * S(scale) is constructed directly, and T(-pivot_offset) is applied locally with a dedicated method (not performing full Transform2D multiplication).
Control::_get_internal_transform() is removed as not needed.
Precision of the result is not improved / the same as before because even though before a full inverse were calculated and more multiplications / additions were done, it was just some superfluous multiplications by 1.0 / additions of 0.0 * something, hence not introducing precision errors.

If it's a performance improvement, could you provide some rough metric for how much it is improved?

If it's a performance improvement, could you provide some rough metric for how much it is improved?

I was actually hesitant to mark it with performance, as I have not benchmarked it whatsoever. :smile: Marked so purely based on the info I've described in the PR description. :upside_down_face:

Rebased and changed to simplify only Control::_get_internal_transform. After #89502 it's used not only in Control::get_transform hence makes sense to not remove it. :upside_down_face: Plus now this PR is trivial.
The speedup should still be comparable to the previous version as the main inefficiency was within Control::_get_internal_transform.

Thanks!


Missing C# example

C# example is needed for change stream implementation. The JS and C# SDKs don't really line up and it's not obvious how to work with change stream from C#, with the nuances specific to Cosmos DB.

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

ID: 32ee62ff-7042-a2d2-94d6-69189878aff3
Version Independent ID: 4dc6fce6-b47a-cc95-ea16-b9e3e3f00c68
Content: Change streams in Azure Cosmos DB’s API for MongoDB
Content Source: articles/cosmos-db/mongodb-change-streams.md
Service: cosmos-db
Sub-service: cosmosdb-mongo
GitHub Login: @srchi
Microsoft Alias: srchi

@dmakogon Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

Sent a reminder to the author.

Hello!
I've some questions too. It would be cool if u explained it to me:

How to scale "change stream" consumers horizontally?
How to read "change stream" from the start?

Also, I've created a basic example of how to consume "change stream"
var client = new MongoClient(settings);
var database = client.GetDatabase("{database_name}");
var events = database.GetCollection<MongoEvent>("{collection_name}");
var options = new ChangeStreamOptions
{
    FullDocument = ChangeStreamFullDocumentOption.UpdateLookup,
};

var pipeline = new EmptyPipelineDefinition<ChangeStreamDocument<MongoEvent>>()
    .Match(
        x => x.OperationType == ChangeStreamOperationType.Insert ||
             x.OperationType == ChangeStreamOperationType.Update ||
             x.OperationType == ChangeStreamOperationType.Replace)
    .Project(
        x => new
        {
            x.ResumeToken,
            x.FullDocument,
            x.CollectionNamespace,
            x.DocumentKey,
        })
    .ReplaceRoot(x => x.FullDocument);

var cursor = await events.WatchAsync(pipeline, options);
while (await cursor.MoveNextAsync() && !cursor.Current.Any()) {}
var next = cursor.Current.First();
cursor.Dispose();

@srchi Please look into this request from user and help them regarding the same.

@aurokk Hello and thanks for reaching out to us. This feedback mechanism is primarily for communicating about the content of the documents posted on the website. For more general technical questions about cosmosdb, you can reach out to<EMAIL_ADDRESS>Thanks.

@srchi @hrasheed-msft Any update regarding this. Please let us know if any other information is required.

@NavtejSaini-MSFT @dmakogon The author has reached out to the engineering team, but most people are away for the holidays. Will try to reply with a resolution after Jan 2. Thanks.

@aurokk  I'm trying to get your example to work, but I'm getting a "System.InvalidCastException: 'Unable to cast object of type 'MongoDB.Bson.BsonObjectId' to type 'MongoDB.Bson.BsonDocument'.'" when the change stream triggers. Any ideas why? (running the MongoDB.Driver 2.10.0)

Hi all, I've added C# change stream samples. They'll be published later today.

#please-close


Replace MD5 hashes by SHA-512

Why:

In METS file we're using SHA-512 anyway
Performance differences between MD5 and SHA-512 are really small.

Done: https://github.com/KBNLresearch/iromlab/commit/ddf6f23ff5a46490e2826eb215d89373d30effe6


Find maximum (or minimum) in Binary Tree

Detailed Description
Find maximum (or minimum) in Binary Tree
Anything else?
No response

Hello. I am starting my open source journey . It will be great if I can contribute here.

Hello! I am currently working on learning dsa in c++. I'm done with the concept of trees. If you please assign this issue to me as well?


[Makefile] Do not require setup for upload/download/clean targets

Closes https://github.com/neuromation/cookiecutter-neuro-project/issues/371

Closing as non-necessary PR.


14 feat add multiply  division api

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


Browser support not working as expected

I followed the steps to clone, npm install, and then npm build. This generates a min.js file. However, when I add this to a script tag and then try to call OpenAPISnippet I get
OpenAPISnippet
VM438:1 Uncaught ReferenceError: OpenAPISnippet is not defined
    at <anonymous>:1:1

@ErikWittern is there any chance we could get this build and pushed to https://www.jsdelivr.com similar to how the swagger-ui-bundle is<EMAIL_ADDRESS>

Its not OpenAPISnippet. Add 's' to it OpenAPISnippets


Update session handling

Answer the questions:

Is it possible to insert the session ID into a Backend, if not, please add?
Is the provider still used in the backend, if not, can it be removed?
Is it possible  to extract the session ID from a backend, if not please add?

What is the context for this issue?


Avoid dereferencing empty unique pointer.

@vekterli : please review

@toregge , can you share some details?

What caused the dereferencing of empty unique pointer?
Is it safe to reapply the application change that triggered this, after this fix has been applied?


test(ModalHeader): migrate to React testing library

[ ] Bug fix
[ ] New feature
[x] Chore
[ ] Breaking change
[x] There is an open issue which this change addresses
[x] I have read the CONTRIBUTING document.
[x] My commits follow the Git Commit Guidelines
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[ ] My change requires a change to Typescript typings.

[ ] I have updated the typings accordingly.

[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

#2625

I made this PR as part of hacktoberfest, if you are happy with the work I have done please could you add the hacktoberfest-accepted label. Thanks for the opportunity to contribute!

@minimatrix I've requested some changes to be made.
It would be great if you can fix them and submit them so that you're eligible for hactoberfest.

@minimatrix I've requested some changes to be made.
It would be great if you can fix them and submit them so that you're eligible for hactoberfest.

I'm afraid I can't see the changes that you've requested

I made this PR as part of hacktoberfest, if you are happy with the work I have done please could you add the hacktoberfest-accepted label. Thanks for the opportunity to contribute!

Sorry for missing the deadline for the hacktoberfest! I can take up the work for this if you are no longer interested in keeping it going


Pops up with quality tag suggestions when not typing in text box

Ever since the 1.6 UI update, it's been pulling up 1-2 autocomplete boxes in the positive and negative prompts boxes, even when I'm not actively selecting them or typing anything. They'll stay there until I click in the box or click one of the prompts, and then quickly come back moments later.

Update: Seems to be it playing poorly with the tag auto format extension. This one prefers that the set of tags end in a comma, while auto format does not like that and removes the final comma.

Ah, that makes sense. The script listens to textbox input to show the popup, so it probably reacts to the auto formatter editing the content.
You can turn off the comma addition in the tag autocomplete settings, maybe that helps. By default it will always append comma and space to make writing long chains faster, but you can turn them off separately.

I think I was able to resolve it properly. Autocomplete will now ignore all input events that don't include an input type, which will only happen for events triggered from code like the formatter, but not for user input like adding, removing, copy-pasting etc.
The only manual exception being tag autocomplete's own update event, so it can react to the completion if needed, like for wildcards.
So for normal typing and editing the prompt there should be no difference, but the popup will no longer erroneously open after third party extension edits.


Add support for disk in Python job client

Changes proposed in this PR

Add optional Disk class for Python jobs
Add unit tests for different combinations of specifying disk

Why are we making these changes?

Allow Python job client users to specify disk request, limit, and type

Received approval on Slack from Cindy Ge on Modeling Tools.