turn off emitter

Required Info

Camera Model
{ D415 }

Firmware Version
(<IP_ADDRESS>)

Operating System & Version
{Win10}

SDK Version
{2.35.2 }

Language
{C++ }

Segment
{Body Scan }

Is there a faster way to turn off the emitter?
I use six D415 cameras to get accurate 3D models of human body. I have the method of splicing models, but there is infrared interference between cameras.
So I want to turn on / off the infrared emitter one by one to avoid infrared interference. I tested that it takes hundreds of milliseconds to turn off the infrared transmitter of a camera. It's too slow for me. The human body may shake. Is there a fast way?
sensor.set_option(RS2_OPTION_EMITTER_ENABLED, enable ? 1 : 0);

Multiple RealSense 400 Series cameras should not interfere with each other (SR30x cameras do experience interference with each other though).  Could you give details please of why you think your problem with multiple D415 is due to infrared interference?  Thanks!

Thanks for your response.
When I turn on only one camera, like this

When I turn on the opposite camera, like this

@xiebei hello,

I tested that it takes hundreds of milliseconds to turn off the infrared transmitter of a camera

The time interval of data propagation for standard controls is within 1-3 frames, which is generally lees than 100 msec. Can you elaborate what method did you use to establish this figure?

@ev-mp Yes, about 100 ms at 30 fps,  about 350ms at 6fps
My laptop can only run to 6fps
100ms is also a little time-consuming for me，
6 camera turn on emitter - > capture - > turn off emitter one by one

@xiebei   Regarding your kindly provided images, it does look as though there is a light source on the other side of the mannequin that coincides with where the image is breaking up at the armpit.

It makes me wonder if it is not so much a case of interference, but rather that the light source projecting through the armpit is blinding the affected camera to the armpit area and making it hard to read depth information from.  I note the green glow floating under the armpit that coincides with the position of the light-source on the other side of the mannequin.

@MartyG-RealSense OK, I'll try
By the way，I also bought the l515 camera，should arrive early next month，will the L515 be any different in that respect，will l515 should interfere with each other？

The link below, under the section headed 'Body Scanning', explains how Intel demonstrated multicam full-surround body scanning with nine L515.  They avoided interference by hardware syncing the cameras.
https://www.intelrealsense.com/lidar-camera-l515-at-ces-2020/

OK，Thank you very much.


Enhancing About section

Is your feature request related to a problem? Please describe.
I want to enhance the About section
Describe the solution you'd like
I will add more CSS features to make it beautiful.
Additional context
I am SSOC'24 Contributor.
Please assign me to this task.

Hi @akshitagupta15june I am Bhumika Rahwani a skilled computer science student , I would like to improve the About section since I am a contributor at SSoC.


wip: Charts releasing automation

Signed-off-by: xantrix<EMAIL_ADDRESS>/kind feature
Fixes #22
Related #32
This PR is largely inspired by the amazing work at https://github.com/codecentric/helm-charts.
After any changes at Chart.yaml files (only those present in chart dirs at level one), the CircleCI pipeline identifies changed charts since the latest tag and packages them (generate a .tgz file).
Then using the tool Chart releaser:

release chart artifacts to GitHub Releases named for the chart version.
update the Helm repo index.yaml file for those releases and push it to GitHub Pages (gh-pages branch)

NOTE: Chart.yaml changes must include version change (e.g version: 1.1.8 -> 1.1.9)
TODOs:

[x] add Falco context to get a personal access token (GITHUB_TOKEN) mandatory to push in gh-pages branch and use Chart releaser (CR_TOKEN)
[ ] linting and testing of charts
[ ] update README.md
[ ] create release.md

/cc @leogr

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign leogr
You can assign the PR to them by writing /assign @leogr in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Thank you for taking care of that!!! ❤
/kind build

This looks awesome. Thank you @xantrix!

This looks awesome. Thank you @xantrix!

I'm very happy you like it! :tada:
Also, I'd like to thanks @leogr for being always helpful and responsive.

LGTM label has been added.  Git tree hash: e3faa870392be9b51b15c7d24077b036e797b7ef

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Alternative capital "Y"

While the "Y" character provided by comic-shanns and co is true to the original Comic Sans capital "Y", it is also distractingly out of place with the rest of the capital letters and decreases legibility if left on its own (is it capital? Lowercase? Hard to say without context). I think it would be good to have a capital "Y" with a more vertical tail

Hi @Computer2340!
If you're still interested in this, I don't think this repo is actively maintained but my fork has this modification.
Cheers!


Cherry pick Fix csv writing of timestamps to show timezone. to active_release

Automatic cherry-pick of bfc95be

Originally appeared in https://github.com/apache/arrow-rs/pull/849: Fix csv writing of timestamps to show timezone.

Codecov Report

Merging #963 (2ae1ea6) into active_release (54023c8) will decrease coverage by 0.08%.
The diff coverage is 23.25%.

@@                Coverage Diff                 @@
##           active_release     #963      +/-   ##
==================================================
- Coverage           82.38%   82.30%   -0.09%
==================================================
  Files                 168      168
  Lines               48668    48658      -10
==================================================
- Hits                40097    40048      -49
- Misses               8571     8610      +39

Impacted Files
Coverage Δ

arrow/src/compute/kernels/temporal.rs
96.07% <0.00%> (-1.28%)
:arrow_down:

arrow/src/csv/writer.rs
72.03% <24.39%> (-10.03%)
:arrow_down:

arrow/src/util/string_writer.rs
0.00% <0.00%> (-73.34%)
:arrow_down:

arrow/src/util/display.rs
20.38% <0.00%> (-2.92%)
:arrow_down:

parquet/src/encodings/encoding.rs
93.52% <0.00%> (-0.20%)
:arrow_down:

arrow/src/array/transform/mod.rs
85.33% <0.00%> (+0.13%)
:arrow_up:

parquet_derive/src/parquet_field.rs
65.98% <0.00%> (+0.22%)
: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 54023c8...2ae1ea6. Read the comment docs.


Update manage-access.md

We had a case where global administror were unable to use the access management tab in copilot for azure since they did not have the owner RBAC role at resource provider level. This was suggested on the below ICM
https://portal.microsofticm.com/imp/v3/incidents/incident/518629972/summary

@JnHs
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Hi @Shivangi-upamanyu - thanks for taking the time to submit this PR. I discussed this with the product team and this edit doesn't seem to be advisable. Because of that, I'm closing this PR, but please feel free to reach out directly if you want to discuss further.
#please-close

Hello Jnhs,
Can you please help me with your Alias?
Shivangi Upamanyu
Support Engineer | Microsoft Azure Technical Support
<EMAIL_ADDRESS>Working hours:  8:00am - 4:00pm IST
Can't reach me<EMAIL_ADDRESS>Manager: Shakeel Kazmi /<EMAIL_ADDRESS>@.***
From: prmerger-automator[bot] @.>
Sent: Wednesday, July 17, 2024 10:50 PM
To: MicrosoftDocs/azure-docs @.>
Cc: Shivangi Upamanyu @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Update manage-access.md (PR #123775)
Closed #123775https://github.com/MicrosoftDocs/azure-docs/pull/123775.

Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/pull/123775#event-13540071222, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BJZ2AR3MAVUCDXYQWWTI2NDZM2RVBAVCNFSM6AAAAABLATWAKKVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJTGU2DAMBXGEZDEMQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Hello JH,
Can you please help me with your alias?
Shivangi Upamanyu
Support Engineer | Microsoft Azure Technical Support
<EMAIL_ADDRESS>Working hours:  8:00am - 4:00pm IST
Can't reach me<EMAIL_ADDRESS>Manager: Shakeel Kazmi /<EMAIL_ADDRESS>@.***
From: JH @.>
Sent: Wednesday, July 17, 2024 10:50 PM
To: MicrosoftDocs/azure-docs @.>
Cc: Shivangi Upamanyu @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Update manage-access.md (PR #123775)
Hi @Shivangi-upamanyuhttps://github.com/Shivangi-upamanyu - thanks for taking the time to submit this PR. I discussed this with the product team and this edit doesn't seem to be advisable. Because of that, I'm closing this PR, but please feel free to reach out directly if you want to discuss further.
#please-close

Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/pull/123775#issuecomment-2233816087, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BJZ2AR6DQAHZ266PJGURXY3ZM2RU7AVCNFSM6AAAAABLATWAKKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZTHAYTMMBYG4.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>


admin profile username validation

Describe the bug

if admin try to update there username they are not able to add any number or underscore in there username due to which they are unable to update there user name
generally username can have numbers and underscore
this type of username are not allowed right now "kajol123"

To Reproduce
Steps to reproduce the behavior:

going to the frontend in admin pages
correcting the validation of admin username
by correcting the regex in the validation schema

Expected behavior

username can have both number and _

Screenshots
https://github.com/HITK-TECH-Community/Community-Website/assets/127100604/d64af7a8-9781-4ac5-9263-8082631ad031
Desktop (please complete the following information):

OS: macos
Browser chrome
Version 22

Additional context
can you assign me this under gssoc label
Have you read the Code of Conduct?
yes

@ayushpatel1248 as you have pointed it yes, please correct the validation for firstName, lastName and Username. Alomg with that, currently the userName is not shown under `myProfile` please add it there


Documentaton?

http://www.easyautocomplete.com no longer exists. It used to have many examples and great documentation. Is the documentation still available?

I came here to report the same problem. Is there anything I can help with?

Here: https://web.archive.org/web/20161026014214/http://easyautocomplete.com/guide

Sonia,
Thanks very much for the link. I see the easyautocomplete.com domain is still registered. Does anyone know if will be resurrected with this content?

As you can see, Łukasz, there is need for this library. It's the best that I have found so far, and would really like you to maintain it.


[Feature Request] GLS

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
How hard it it to add support for GLS?
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

https://gls-group.eu/ like DHL etc.

Do they send emails like DHL, UPS, and others?

They do send mails like UPS and DHL do.

Do you have any examples we can test against?


Transfer complex type

Hello.
Complex type not transfer.
I use TcpServiceCore.Test.
Addded complex type:
[ProtoContract]
public class BigData
{
[ProtoMember(1)]
public int Value { get; set; }
[ProtoMember(2)]
public string StringValue { get; set; }
[ProtoMember(3)]
public DateTime DateValue { get; set; }
}
...
        using ((IClientChannel)client)
        {
            BigData bigData = new BigData();
            bigData.Value = 1;
            bigData.StringValue = "data";
            bigData.DateValue = DateTime.Now;
            try
            {
                var result = await client.Echo("message");     <----- all right
                var result2 = await client.GetData();              <----- all right
                var result3 = await client.SetData(bigData);  <----- this place failed. Error:Invalid wire-type; this usually means you have over-written a file without truncating or setting the length; see http://stackoverflow.com/q/2152978/23354   . (with json also does not work), serialization failed?
                Console.WriteLine(result);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

This happened because I modified the emitted proxy to pass multiple parameters, while the server was expecting only one (the multi-parameters feature is not done yet), I mean that the proxy was serializing an array while the server was trying to deserialize the array into one parameter. it is fixed now sorry for this bug, please get latest and update me.

Thank you very much for the quick fix. Transfer complex type works. Now it does not work for the function with no parameters (Exception thrown: 'System.IndexOutOfRangeException' in TcpServiceCore.dll). Because msg.Length == 0, and the function is expecting a msg[0] element.

I corrected this way:  var message = msg.Length == 0 ? msg : msg[0];

Correct, anyway, I am done with multiple parameters

Tested and works, transfered multiple parameters.
Why the decision to make a const int MIN_BUFFER_SIZE = 64 (BufferManager.cs)?
Transfer an array of 127 bytes as parameter function generates an error ArgumentOutOfRange. I MIN_BUFFER_SIZE expanded to 128 and parameter well transfered.

Bug fixed. your message will be buffered as long as it fits in the MaxBufferSize you set in the ChannelConfig configuration.
it is 64 KB not 64 (fixed). Why? because less than 64KB is not going to cause memory fragmentation, while bigger byte arrays will cause memory to be fragmented and will lead to OutOfMemoryException (The exact size that cause an object to be allocated in LOH is 85+ KB). So the framework creates pools of buffers like these sizes: 64, 128, 256 ...and so on until your MaxBufferPoolSize. When requests come buffers are created if there is not free buffer in the matching pool and when the request is served the buffer goes back to its pool. so there is no more LOH allocation every request.
Don't forget to set these configurations (MaxBufferSize  and MaxBufferPoolSize) if you have messages bigger than 64 KB.

Thanks for the detailed answer. It works now.

Close Issue


SHIELD Master Password red box doesn't go away when correct password given

Is your feature request related to a problem? Please describe.
The master password enter dialogue isn't dismissed when the correct password is given and the SHIELD is unlocked
Describe the solution you'd like
It should go away when the SHIELD is unlocked.
Describe alternatives you've considered
...refreshing the page after each submission?

I cannot replicate this. This may be a race condition, or it may be browsery-weirdness.

Closing this as we could not reproduce the original aberrant behavior.  Please re-open if you find a way to reproduce.  Thanks!


add the QFLUSH command

Implementing #19

LGTM

LGTM

I just realized this won't work when flushing two queues in a cluster, if they aren't on the same node, since I'm combining everything into a single DEL command.
Since this would have to be broken up into multiple DELs, potentially across different nodes, this operation cannot be atomic. I think we should make QFLUSH only take a single queue, so that that fact is clear.

LGTM again :)


[EventHubs] A note on how to create a batch

Add a small note and reference to the CreateBatchAsync message. I'll
admit that I initally tried to just new up an EventDataBatch and then
got confused when I saw it had no public constructor. Maybe this comment
saves someone from having to go to our README.md's or Samples.

Let me know if you think this sort of thing is worthwhile, Jesse.

LGTM


Remove selected state for section headers in nav drawer list

##Solution
Selected state should only be used on the element that is currently selected to make it clear at a glance what page the user is on. Having multiple list items selected makes the user have to think about which selected list item is the page they are currently on.
##Changes

[x] Use ul list with subheader
[x] Replace the collapsable subheader with non-collapsable subheader
[x] Only use selected state for page selected
[x] subheaders are not selectable.

This issue is related to new design in #218
Reference images

Currently on hold as dependent on #222 for theme variables and new  colors.


Add optimized distiance functions for PowerPC

Files src/simd/distances_powerpc.cc, src/simd/distances_powerpc.h are added with powerpc optimized versions of the various functions.
File src/simd/hook.cc is updated to point to the new PowerPC versions of the functions.

Based on the comments I got from generating the PR, it sounds like I am supposed to set the kind label?  Not sure how that should have been done.  Secondly, this adds specific PowerPC support which I believe makes it  kind/feature?

Alexander:
Thank you for reviewing the code.  I will make the updates and we will retest the patch.  Per your comment at the bottom, yes the changes were tested on a PowerPC processor to verify the code compiles, executes and produces the same results as the reference functions.
Just want to verify the procedure for posting the updated version.  I am assuming that once I have resynched my github with the latest upstream code and my updated patch that I would create a new pull request.  Not sure if there is anything I need to do to cancel the initial pull request.
Thanks for the help.
                                   Carl Love

From: Alexander Guzhva @.>
Sent: Wednesday, October 16, 2024 4:23 AM
To: zilliztech/knowhere @.>
Cc: Carl Love @.>; Mention @.>
Subject: [EXTERNAL] Re: [zilliztech/knowhere] Add optimized distiance functions for PowerPC (PR #894)
@ alexanderguzhva commented on this pull request. In src/simd/distances_powerpc. cc: > @@ -0,0 +1,540 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. Facebook, not Zilliz in a license header? In src/simd/distances_powerpc. cc: >
@alexanderguzhva commented on this pull request.

In src/simd/distances_powerpc.cchttps://github.com/zilliztech/knowhere/pull/894#discussion_r1802897010:

@@ -0,0 +1,540 @@
+/**

Copyright (c) Facebook, Inc. and its affiliates.

Facebook, not Zilliz in a license header?

In src/simd/distances_powerpc.cchttps://github.com/zilliztech/knowhere/pull/894#discussion_r1802899515:

+#if defined(powerpc)

+#include <altivec.h>   /* Required for the Power GCC built-ins  /
+
+#include "distances_powerpc.h"
+
+#include
+
+#define FLOAT_VEC_SIZE 4
+#define INT32_VEC_SIZE 4
+#define INT8_VEC_SIZE  16
+
+namespace faiss {
+
+float
+fvec_L2sqr_ref_ppc(const float x, const float* y, size_t d) {
please call the function fvec_L2sqr_ppc, not fvec_L2sqr_ref_ppc.
Same for all other functions.

In src/simd/distances_powerpc.cchttps://github.com/zilliztech/knowhere/pull/894#discussion_r1802900475:

+float
+fvec_L2sqr_ref_ppc(const float* x, const float* y, size_t d) {

/* Vector implmentaion uses vector size of FLOAT_VEC_SIZE.  If the input

  array size is not a power of FLOAT_VEC_SIZE, do the remaining elements

  in scalar mode.  */

size_t i;
float res = 0;
size_t base;

vector float *vx, *vy;
vector float vtmp = {0, 0, 0, 0};
vector float vres = {0, 0, 0, 0};

base = (d / FLOAT_VEC_SIZE) * FLOAT_VEC_SIZE;

for (size_t i = 0; i < base; i = i + FLOAT_VEC_SIZE) {

for (size_t i = 0; i < base; i += FLOAT_VEC_SIZE) {
same comment applies to loops in other functions

In src/simd/distances_powerpc.cchttps://github.com/zilliztech/knowhere/pull/894#discussion_r1802900629:

+#include "distances_powerpc.h"

+#include
+
+#define FLOAT_VEC_SIZE 4
+#define INT32_VEC_SIZE 4
+#define INT8_VEC_SIZE  16
+
+namespace faiss {
+
+float
+fvec_L2sqr_ref_ppc(const float* x, const float* y, size_t d) {

/* Vector implmentaion uses vector size of FLOAT_VEC_SIZE.  If the input

  array size is not a power of FLOAT_VEC_SIZE, do the remaining elements

  in scalar mode.  */

size_t i;

please get rid of this local variable.
same comment applies to other functions

In src/simd/distances_powerpc.cchttps://github.com/zilliztech/knowhere/pull/894#discussion_r1802907583:

vector float *vx, *vy;

vector float vtmp = {0, 0, 0, 0};
vector float vres = {0, 0, 0, 0};

base = (d / FLOAT_VEC_SIZE) * FLOAT_VEC_SIZE;

for (size_t i = 0; i < base; i = i + FLOAT_VEC_SIZE) {

   vx = (vector float *)(&x[i]);

   vy = (vector float *)(&y[i]);

   vtmp = vx[0] - vy[0];

   vres += vtmp * vtmp;

}

/* Handle any remaining data elements */
for (i = base; i < d; i++) {

for (size_t i = base; i < d; i++) {
same comment applies to loops in other functions

In src/simd/distances_powerpc.cchttps://github.com/zilliztech/knowhere/pull/894#discussion_r1802908959:

@@ -0,0 +1,540 @@
+/**

Copyright (c) Facebook, Inc. and its affiliates.

This source code is licensed under the MIT license found in the

LICENSE file in the root directory of this source tree.

*/

+#if defined(powerpc)
I just want to confirm that all knowhere unit tests passed, correct?
—
Reply to this email directly, view it on GitHubhttps://github.com/zilliztech/knowhere/pull/894#pullrequestreview-2372098374, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BGQHXSAEEBENZE7M5GXPCYTZ3ZEBZAVCNFSM6AAAAABP7THYPWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGNZSGA4TQMZXGQ.
You are receiving this because you were mentioned.Message ID: @.***>

@carll99 just force push the new changes to override this PR with a better version

Hi @carll99
Due to the limited resource, we actually doesn't officially support PowerPC, which means the official release and new features will not take care of the PowerPC specific scenario.
However, we are welcome for the contribution and maintain from the community. Do you mind to share with us more about the use case to help us know more about the importance of PowerPC?

@carll99 please accept DCO and run clang-format and I'll lgtm the PR. Thanks.

I updated the patch and the team is working on retesting it.
I forwarded the comment from liliu-z to the PowerPC and we will work on the response.
The DCO, looks like the description for DCO says the project wants a sign-off line.  I will include that with the next version.
I will check how to run the clang-format  tool.  I did a quick google to see what it is.
Thanks for the feedback.

@carll99 Please carefully read the error message https://github.com/zilliztech/knowhere/pull/894/checks?check_run_id=32817538304, all instructions are there
Also, would you please update a PR to include your changes?
Thanks

/lgtm

/kind improvement


Line-by-line profiling in C

Does anyone know a way to do line-by-line profiling in C?

Have you tried Cython profiling?

The next release of bottleneck will drop Cython. And use C instead.

You could still use Cython to do profiling but maybe this question on SO helps. Here are some alternative programs, personally I've used Valgrind before.


I made control img number = scene prompt lines number, but it generate two blank image。what's wrong?

I made control img number = scene prompt lines number, but it generate two blank image。what's wrong?

I user the example - workflow1006.json. thank you!


WIP: Custom conversions

Implement a mechanism for custom conversions between JS and Go values.
Fixes https://github.com/dop251/goja/issues/426

After more research, I found achieving custom conversion that includes fields in objects would require a significant rewrite of the goja runtime logic.


Update sbt-scalafmt to 2.4.3

Updates org.scalameta:sbt-scalafmt from 2.4.2 to 2.4.3.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "sbt-scalafmt" } ]

labels: sbt-plugin-update, semver-patch

Codecov Report

Merging #521 (3c42fc0) into develop (69cb1c0) will increase coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #521      +/-   ##
===========================================
+ Coverage    60.23%   60.29%   +0.06%
===========================================
  Files           53       53
  Lines         1539     1539
  Branches        30       30
===========================================
+ Hits           927      928       +1
+ Misses         612      611       -1

Impacted Files
Coverage Δ

...-/com/twitter/bijection/CollectionInjections.scala
93.10% <0.00%> (+3.44%)
: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 69cb1c0...3c42fc0. Read the comment docs.


Clean cli options description

Coverage remained the same at 100.0% when pulling e59aa5bb372068e7ce21991bcf34e359b2ef37bf on chore-clean-cli-description into b2b63f82630d240be15a6723e80767295a6d15aa on master.

Coverage remained the same at 100.0% when pulling e59aa5bb372068e7ce21991bcf34e359b2ef37bf on chore-clean-cli-description into b2b63f82630d240be15a6723e80767295a6d15aa on master.

Coverage remained the same at 100.0% when pulling e59aa5bb372068e7ce21991bcf34e359b2ef37bf on chore-clean-cli-description into b2b63f82630d240be15a6723e80767295a6d15aa on master.

Coverage remained the same at 100.0% when pulling e59aa5bb372068e7ce21991bcf34e359b2ef37bf on chore-clean-cli-description into b2b63f82630d240be15a6723e80767295a6d15aa on master.


extra autoincrement and (maybe) contradictory error message in myxql adapter connection.ex

Environment

Elixir version: v1.11.2
Database and version: MariaDB 10.1.48
Ecto version: v3.6.1
Database adapter and version: myxql, v0.5.1
Operating system: macOS

Current behavior
Adding a :bigserial column to a table that already has a primary_key/autogenerated column throws an error.
# migration
create table(:some_audit_table, primary_key: false) do
  add(:audit_id, :bigserial, primary_key: true, null: false)
  add(:id, :bigserial, null: false) # id of some audited table, reference() wouldn't make sense here
  ...
end

$> mix ecto.migrate --log-sql
[debug] QUERY ERROR db=1.7ms queue=2.1ms idle=49.2ms CREATE TABLE `some_audit_table` (`audit_id` bigint unsigned not null auto_increment NOT NULL, `id` bigint unsigned not null auto_increment NOT NULL ..., PRIMARY KEY (`audit_id`)) ENGINE = INNODB
** (MyXQL.Error) (1075) Incorrect table definition; there can be only one auto column and it must be defined as a key

Expected behavior
For the migration to not quietly make a second autoincrement column when it's a regular :bigserial (i.e. not a reference())
I'll note though that is this is tricky, because I understand that SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE in MySQL/MariaDB, and this setting makes it easier to catch early, before you've accidentally added a primary key to a table you had intended to have some other kind of primary key.
After looking at the Ecto.Adapters.MyXQL.Connection and Ecto.Adapters.Postgres.Connection adapters I noticed that both adapters mention in an error for ecto_to_db/2 that the type can be an atom, string, or tuple, but when I set the type to be a string, e.g. add(:id,  "bigint unsigned", null: false), I get the following error:
** (FunctionClauseError) no function clause matching in Ecto.Migration.validate_type!/1

    The following arguments were given to Ecto.Migration.validate_type!/1:

        # 1
        "bigint unsigned"

    Attempted function clauses (showing 5 out of 5):

        defp validate_type!(:datetime)
        defp validate_type!(type) when is_atom(type)
        defp validate_type!({type, subtype}) when is_atom(type) and is_atom(subtype)
        defp validate_type!({type, subtype}) when is_atom(type) and is_tuple(subtype)
        defp validate_type!(%Ecto.Migration.Reference{} = reference)

If I switch the type to a "stringy" atom, (:"bigint unsigned") the migration works as expected, but that seems like a bad idea in the long-run since it relies on the implementation of a private function.
With the error text from the adapters, I'd assume that being able to set the type using a string would be something that should've been supported but I wasn't sure.
If this would be better as a proposal discussion on the Google Forum I can post this there.
I'm also happy to make a PR or discuss whether this even is a bug. I'm not fluent in much of the data mapping logic, but I think I understand the migration/runner/connection logic a bit more now.
Thank you for your time 😃

The type is meant to be atoms or tuples. Quoted atoms are also allowed. We need to improve validate_type to raise something readable instead of function clause error.

Ok 👍🏻
Would it also make sense to change the adapters' ecto_to_db/2 defs?
They're currently:
    defp ecto_to_db(str, _query)  when is_binary(str), do: str
    defp ecto_to_db(type, _query) do
      raise ArgumentError,
            "unsupported type `#{inspect(type)}`. The type can either be an atom, a string " <>
              "or a tuple of the form `{:map, t}` where `t` itself follows the same conditions."
    end

Passing the str I could see making sense if you want to handle edge-cases higher up in the private functions, but should we remove the "string" part from the error message?
I don't wanna make unnecessary work, was just curious. I can totally live with just doing the quoted atom in my code.
If we'd like to update just the validate_type or all of the errors but you don't have time, I can also make a PR with a shot at some wording that would make sense


[SPARK-13255][SQL] Update vectorized reader to directly return ColumnarBatch instead of InternalRows.

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
Currently, the parquet reader returns rows one by one which is bad for performance. This patch
updates the reader to directly return ColumnarBatches. This is only enabled with whole stage
codegen, which is the only operator currently that is able to consume ColumnarBatches (instead
of rows). The current implementation is a bit of a hack to get this to work and we should do
more refactoring of these low level interfaces to make this work better.
How was this patch tested?
Results:
TPCDS:                             Best/Avg Time(ms)    Rate(M/s)   Per Row(ns)
---------------------------------------------------------------------------------
q55 (before)                             8897 / 9265         12.9          77.2
q55                                      5486 / 5753         21.0          47.6

Test build #52198 has started for PR 11435 at commit c1b6ab1.

Test build #52199 has started for PR 11435 at commit 490189c.

Test build #52198 has finished for PR 11435 at commit c1b6ab1.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
public class UnsafeRowParquetRecordReader extends SpecificParquetRecordReaderBase<Object>

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

Merged build finished. Test FAILed.

Test build #2592 has started for PR 11435 at commit 490189c.

Test build #52199 has finished for PR 11435 at commit 490189c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #2592 has finished for PR 11435 at commit 490189c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #52344 has started for PR 11435 at commit c5a041e.

Test build #52344 has finished for PR 11435 at commit c5a041e.

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

Merged build finished. Test FAILed.

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

Test build #52345 has started for PR 11435 at commit ce4099c.

This patch is abusing the existing abstractions which will be/is being cleaned up in other patches. For a benchmark of the partition reading speed, I tested this on a table with 2 int cols, one in the data, one as the partition column. The results are:
Partitioned Table:                  Best/Avg Time(ms)    Rate(M/s)   Per Row(ns)   Relative
-------------------------------------------------------------------------------------------
Read data column                          217 /  262         72.3          13.8       1.0X
Read partition column                     104 /  150        150.6           6.6       2.1X
Read both columns                         240 /  266         65.5          15.3       0.9X

Test build #52345 has finished for PR 11435 at commit ce4099c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test FAILed.

Test build #52350 has started for PR 11435 at commit 2908d01.

Test build #52350 has finished for PR 11435 at commit 2908d01.

This patch fails Scala style tests.
This patch does not merge cleanly.
This patch adds no public classes.

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

Build finished. Test FAILed.

Test build #52351 has started for PR 11435 at commit 670dee7.

Test build #52351 has finished for PR 11435 at commit 670dee7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #2607 has started for PR 11435 at commit 670dee7.

Test build #2607 has finished for PR 11435 at commit 670dee7.

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

Test build #52410 has started for PR 11435 at commit 2a16ec0.

Test build #52410 has finished for PR 11435 at commit 2a16ec0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #2611 has started for PR 11435 at commit 2a16ec0.

Test build #2611 has finished for PR 11435 at commit 2a16ec0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #2612 has started for PR 11435 at commit 2a16ec0.

Test build #2612 has finished for PR 11435 at commit 2a16ec0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #52446 has started for PR 11435 at commit f5f1e2b.

Test build #52446 has finished for PR 11435 at commit f5f1e2b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test FAILed.

Test build #52450 has started for PR 11435 at commit ed79eee.

Test build #52450 has finished for PR 11435 at commit ed79eee.

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

Merged build finished. Test PASSed.

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

Test build #52479 has started for PR 11435 at commit 48102e3.

Test build #52479 has finished for PR 11435 at commit 48102e3.

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

Merged build finished. Test PASSed.

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

LGTM, merging this into master, thanks!


GC: Implement restore policy mechanism

GraphConnector to implement COPY, REPLACE, and ~DROP~ SKIP policy for restore

[x] When drop selected, if the message is already in the mailbox the incoming restore file is dropped.
[x] When replace selected, the graphConnector will delete the previous item with the M365 id and replace it with the incoming item.
[x] When COPY selected, GC will copy the incoming M365 object to the corresponding folding irregardless of the presence of an existing M365 object with a corresponding id

duplicate https://github.com/alcionai/corso-roadmap/issues/33


Request | Make it possible to configure a remote Ollama host/baseURL

Currently the Ollama class assumes Ollama is running on localhost. This is an unnecessary limitation.
The config object is not passed down to the "native wrapper" although it looks like it in the code and thus, it defaults to localhost and port.
As a developer, I would like to supply a host and port to be used when creating my Ollama instance.
Example of intended use (see config object)
Settings.llm = new Ollama({
    model: models[modelIndex],
    temperature: 0.75,
    config: {
      host: 'http://my.own.internal.hostname.de:${CUSTOM_PORT}/'
    }
  })

The "native wrapper" class where the config object never arrives:
https://github.com/run-llama/LlamaIndexTS/blob/41fe871e2fcd42e0dda0678de1e1b25b1f1dec7f/packages/llamaindex/src/internal/deps/ollama.js#L274

Set this in the .env file:
OLLAMA_BASE_URL=http://IP:PORT

I'm about to remove the wrapper class


fix: use non-batch APIs at the edge

What this PR does / why we need it: IoT SiteWise BatchGet* APIs are not available at the edge. This change utilizes the non-batch variants of the APIs when at the edge.
Which issue(s) this PR fixes: https://github.com/grafana/iot-sitewise-datasource/issues/161

@njvrzm Thank you for the early review!
I noticed most of your feedback is on the *_batch.go files, which is not new code. Those files are simply renamed to distinguish from the non-batch API variants. Do we need to address the issues you identified for the existing code in this PR?

Indeed, my apologies, it was only towards the end of reviewing that I saw that most of the code is just moved 😅  I generally try to "leave it better" but that doesn't really apply here, and no, you don't need to address most of my feedback in this PR. I'll resolve some of my comments and maybe come back to them later myself.

Hi @tracy-french, I think it makes sense to rename the files, but it could create problems down the line when we lose their entire source control history. Would it be possible for you to redo this PR in a way that preserves those files' history by renaming them with git mv?

@idastambuk For sure! I'll make that change.

@idastambuk I renamed the files with git mv, yet it didn't appear to make any difference from what I had before. Is it supposed to preserve the blame? Reading through https://stackoverflow.com/questions/1094269/whats-the-purpose-of-git-mv makes it seem like it's just a convenience function and git doesn't handle renames using it differently than a renames done outside of git?

Hey @tracy-french, thanks for addressing the review feedback so far. I need to figure out how to trigger the drone build so we can make sure that check runs. Meanwhile I ran the tests locally and the tests in TestPropertyValueAggregate are failing - could you fix that please?

@idastambuk I renamed the files with git mv, yet it didn't appear to make any difference from what I had before. Is it supposed to preserve the blame? Reading through https://stackoverflow.com/questions/1094269/whats-the-purpose-of-git-mv makes it seem like it's just a convenience function and git doesn't handle renames using it differently than a renames done outside of git?

Hi @tracy-french, yes, I noticed the same, I think it might be because the original files were renamed, but they were replaced with files with the same name (property_values_non_batch.go became the original property_values.go). I overlooked that when I suggested the solution, sorry about that!

@idastambuk @njvrzm Feedback addressed! Thank you!

Hi @tracy-french it looks like backend tests are failing, can you take a look? If you need help running them locally, let us know!

@idastambuk Sorry about that! It looks like a forgot a file when creating the commit. Working on resolving now!

@idastambuk @njvrzm Could we please merge this change in? Thank you! :)


feat(model): Support siliconflow models

Description
Closes #2156
How Has This Been Tested?

Using siliconflow proxyllm in DB-GPT webserver

# .env
LLM_MODEL=silicon_flow_proxyllm
SILICON_FLOW_MODEL_VERSION=Qwen/Qwen2.5-Coder-32B-Instruct
SILICON_FLOW_API_BASE=https://api.siliconflow.cn/v1
SILICON_FLOW_API_KEY={your-siliconflow-api-key}

Using SiliconFlowLLMClient
Create python file test_proxyllm.py

import asyncio

from dbgpt.core import ModelRequest
from dbgpt.model.proxy import SiliconFlowLLMClient

client = SiliconFlowLLMClient(model_alias="Qwen/Qwen2.5-Coder-32B-Instruct")
print(
    asyncio.run(
        client.generate(
            ModelRequest._build("Qwen/Qwen2.5-Coder-32B-Instruct", "Hi!")
        )
    )
)

Run test_proxyllm.py
SILICON_FLOW_API_KEY={your-siliconflow-api-key} python test_proxyllm.py

The output like this:
ModelOutput(text='Hello! How can I assist you today?', error_code=0, incremental=False, model_context=None, finish_reason=None, usage={'completion_tokens': 9, 'prompt_tokens': 31, 'total_tokens': 40}, metrics=None)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Snapshots:
Include snapshots for easier review.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have already rebased the commits and make the commit message conform to the project standard.
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] Any dependent changes have been merged and published in downstream modules

Use siliconflow embedding model by DB-GPT SDK:
import os
from dbgpt.rag.embedding import OpenAPIEmbeddings

openai_embeddings = OpenAPIEmbeddings(
    api_url="https://api.siliconflow.cn/v1/embeddings",
    api_key=os.getenv("SILICON_FLOW_API_KEY"),
    model_name="BAAI/bge-large-zh-v1.5",
)

texts = ["Hello, world!", "How are you?"]
openai_embeddings.embed_documents(texts)


fixes [Bug]: imagePullSecrets is not set for agent DaemonSet #2210

Resolve #2210
Modify ImagePullSecrets input in agent.go definition to accept imagePullSecrets defined under agent for daemonset strategy.
Verified the changes by running TestAgentImagePullSecrets test in agent_test.go and also modified the spec referencd for ImagePullSecrets test.
Checklist

[x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md
[x] I have signed all commits
[x] I have added unit tests for the new functionality
[x] I have run lint and test steps successfully

for jaeger: make lint test
for jaeger-ui: yarn lint and yarn test

Thanks @antoniomerlin for your PR!


Add API calls for VLAN groups available-vlans functionality

Environment

Python version: 3.8.8
Nautobot version: 1.2.5

Proposed Functionality
The VLAN Groups page show the available VLANs within a specific VLAN group.
Clicking on the "# VLANs available" link brings the user to a new page to
reserve the next available VLAN from that range. This functionality should be
exposed via API to allow for automated VLAN assignment.
This functionality has been implemented in Netbox #2658 with an additional
enhancement to add scoping for min/max VLAN IDs in #8168.

Use Case
As a Nautobot user, I would like to programmatically assign VLANs to new
tenant buildouts using a single API call so that I can avoid race conditions
querying then reserving VLANs when multiple workflows are reserving
VLANs at the same time.

Database Changes
New method is required in VLANGroup model to get available VLANs. To implement
the min/max VLAN ID scoping two new fields are required in the VLANGroup model,
min_vid and max_vid.

External Dependencies
None

Thanks for the submission. The NetBox feature solves the problem, however we would likely do it in a slightly different way by implementing the nested endpoint as a viewset method (e.g. VLANGroupViewSet.available_vlans) so that we can reduce code duplication.

This would be a great feature to have, a min/max VLAN ID, so we can programmatically get the next available VLAN ID

Is this on the roadmap for any upcoming releases? Would love to see this feature, I'd happily pay a bounty if that would help?

I would also love this feature to be able to automate vlan assignments!

The company I work for could use this feature very much. It is one of the points of debate about choosing Nautobot VS Netbox.
Being able to limit the available vlans in a group without actually reserving all vlans would be useful.
In our case we have several vlan groups within a layer 2 domain. All groups together on a "site" form all vlans in the l2 domain (if that makes sense). (in our case that is, a site equals a routing edge for us.)

FYI @mzbroch

@jasonjuenger @joaopsys @foxx @Senetus @martijn-gr
This has been implemented under #6273 and released in Nautobot 2.3.6 https://github.com/nautobot/nautobot/releases/tag/v2.3.6

@jasonjuenger @joaopsys @foxx @Senetus @martijn-gr
This has been implemented under #6273 and released in Nautobot 2.3.6 https://github.com/nautobot/nautobot/releases/tag/v2.3.6
You can check out our Docs at https://docs.nautobot.com/projects/core/en/stable/user-guide/core-data-model/ipam/vlangroup/?h=vlangroup

Will check this out next week.


Playground: noqa: Invalid Code executes unreachable

Playground
Issue: Fails with unreachable executed

I can take a look at this.

So strange, I can't get this reproduce locally (and redeploying the playground didn't seem to help).

I bet it has to do with our attempt to construct a relative path for display when emitting the warning...

Can't repro locally even with a production build, so strange.

Oh wait, I'll try the WASM prod build.

Still no, what the heck...

This got fixed.


Generate init files from File Explorer context menu

Hi there!

I've added the ability to create init files from the context menu since you might want to make them only from a specified location and not the entire workspace.
I have also added tests for the primary and new commands.
And I have updated the readme to include the new feature.

Also, I've realized only now that the vscode auto-formatting feature took over in some small sections, which I didn't mean since it "should" have formatted only on the modified lines.
Cheers, and thank you for your work.

Now, I confirm this PR works correctly.
Thanks for your contribution!!


Change phone number notifications

Do one UI notification when phone numbers change instead of 3
this is a PR into CJB's PR.

@cjb do you think we can merge this some time after release? I added additional notifications for phone and email events.


Ensure you have your Python development headers installed.

I am trying to install Universe from OpenAI and go-vncdriver is giving me problems.
I get a message I should make sure I have python development headers installed (which I do) but I also tried under Anaconda (which is recommended by Universe and does not have a python-dev package, but it is said to already include headers) and I get same error.
The full output is:
read |0: interrupted system call
Build failed. HINT:

Ensure you have your Python development headers installed. (On Ubuntu,
this is just 'sudo apt-get install python-dev'.

make: *** [build] Error 1
Could not build go_vncdriver: Command '['make', 'build']' returned non-zero exit status 2
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip_build_root/go-vncdriver/setup.py", line 79, in
setup_requires=['numpy'],

File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
dist.run_commands()

File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)

File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()

File "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", line 53, in run
return _install.run(self)

File "/usr/lib/python2.7/distutils/command/install.py", line 601, in run
self.run_command('build')

File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)

File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()

File "/tmp/pip_build_root/go-vncdriver/setup.py", line 25, in run
self.build()

File "/tmp/pip_build_root/go-vncdriver/setup.py", line 64, in build
subprocess.check_call(cmd, cwd=here())

Sorry, the error message we print is misleading here. The real issue is the first line:

read |0: interrupted system call

A quick search for this error turns up two results from Bash on Windows:
https://github.com/Microsoft/BashOnWindows/issues/349
https://github.com/Microsoft/BashOnWindows/issues/1038
Are you using Bash on Windows?
Looking at links from there, it seems like there have been multiple problems with building Go apps on Bash on Windows, and it's not clear whether they are all fixed yet.
The one that caused the "interrupted system call" message seems to have been fixed in Windows 10 Insiders build 14905: https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/14046789-add-support-for-restartable-system-calls-i-e-sa
And another issue was fixed in a more recent build: https://github.com/Microsoft/BashOnWindows/issues/638

I get the issue on Debian 8 and Windows 10 Pro Bash

Interesting. You get the read |0: interrupted system call message on Debian 8? I'll see if I can reproduce it.

I get the same error about Python-dev but not sure what the previous errors were.  I will check in a few minutes on Debian.  They looked like same error.

I'm guessing they are different issues. We just print the Python-dev message for any build failure because it's a common problem. But it's misleading in cases like this. We might be better off removing it.

Is there way to get more details on error?

Running ./build.sh in the top-level go-vncdriver directory might give more output.

I am running ./build.sh in the top-level go-vncdriver, with the following error:
Env info:

export GOPATH=/home/shubham/Downloads/go-vncdriver/.build
export CGO_LDFLAGS=/usr/lib/x86_64-linux-gnu/libjpeg.so -L/home/shubham/.anaconda3/lib -lpython3.5m
export CGO_CFLAGS=-I/home/shubham/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/numpy/core/include -I/home/shubham/.anaconda3/include/python3.5m
export GO15VENDOREXPERIMENT=1

Running build with OpenGL rendering.
Building with OpenGL: GOPATH=/home/shubham/Downloads/go-vncdriver/.build go build -buildmode=c-shared -o go_vncdriver.so github.com/openai/go-vncdriver. (Set GO_VNCDRIVER_NOGL to build without OpenGL.)
# github.com/openai/go-vncdriver
.build/src/github.com/openai/go-vncdriver/main.go:5:20: fatal error: Python.h: No such file or directory
 #include <Python.h>
                    ^
compilation terminated.

Note: could not build with OpenGL rendering (cf https://github.com/openai/go-vncdriver). This is expected on most servers. Going to try building without OpenGL.
Building without OpenGL: GOPATH=/home/shubham/Downloads/go-vncdriver/.build go build -tags no_gl -buildmode=c-shared -o go_vncdriver.so github.com/openai/go-vncdriver
# github.com/openai/go-vncdriver
.build/src/github.com/openai/go-vncdriver/main.go:5:20: fatal error: Python.h: No such file or directory
 #include <Python.h>
                    ^
compilation terminated.

Build failed. HINT:

- Ensure you have your Python development headers installed. (On Ubuntu,
  this is just 'sudo apt-get install python-dev'.

@sksq9 This time our error message is on target :) You need the Python development headers:
sudo apt-get install python-dev

I already tried that, but nothing. I am running anaconda3.5 with pyenv as python version manager, I suspect this might be the culprit.

Hmm. It's checking for headers in /home/shubham/.anaconda3/include/python3.5m. Is there anything actually in that directory?

No it's not the correct directory for my anaconda installation. This home/shubham/.anaconda3/include/python3.5m does not exist.

Interesting. Some sanity checking -- what is the output of these commands?
which python
pyenv which python
python -V
python -c 'import sys; print(sys.executable)'
/usr/bin/env python -V
/usr/bin/env python -c 'import sys; print(sys.executable)'

➜  ~ which python
/home/shubham/.pyenv/shims/python
➜  ~ pyenv which python
/home/shubham/.pyenv/versions/anaconda3-4.1.1/bin/python
➜  ~ python -V
Python 3.5.2 :: Anaconda custom (64-bit)
➜  ~ python -c 'import sys; print(sys.executable)'
/home/shubham/.pyenv/versions/anaconda3-4.1.1/bin/python
➜  ~ /usr/bin/env python -V
Python 3.5.2 :: Anaconda custom (64-bit)
➜  ~ /usr/bin/env python -c 'import sys; print(sys.executable)'
/home/shubham/.pyenv/versions/anaconda3-4.1.1/bin/python

That all looks reasonable. I'm guessing the headers are actually under /home/shubham/.pyenv/versions/anaconda3-4.1.1/include/python3.5m. Is that right?

Yes. I checked, all headers are under the directory mentioned. It's looking in the wrong place.

Ok. I wonder why that is. We look up header location from the sysconfig package, which seems to be giving the wrong answer here. To double check, can you run this?
python -c "import sysconfig; print(sysconfig.get_config_var('INCLUDEPY'))"

It should print out the wrong location. If so, we need to figure out why or figure out something better to check.

Indeed, it's printing out the wrong location.
➜  ~ python -c "import sysconfig; print(sysconfig.get_config_var('INCLUDEPY'))"
/home/shubham/.anaconda3/include/python3.5m

On a side note, I copied the headers to the directory it is looking into, it worked perfectly fine.

Maybe this will work better.
➜  ~ python -c "import sysconfig; print(sysconfig.get_path('include'))"
/home/shubham/.pyenv/versions/anaconda3-4.1.1/include/python3.5m

I am still not sure, why INCLUDEPY points to the old anaconda installation.

distutils uses get_python_inc. What does that return for you?
python -c "from distutils import sysconfig; print(sysconfig.get_python_inc()); print (sysconfig.get_python_inc(plat_specific=1))"

I think this is what pure C extensions (as opposed to C + Go or whatever else) use, so I'm inclined to use the same thing if it works in your case.

Yes. They they return the correct path.
➜  ~ python -c "from distutils import sysconfig; print(sysconfig.get_python_inc()); print (sysconfig.get_python_inc(plat_specific=1))"
/home/shubham/.pyenv/versions/anaconda3-4.1.1/include/python3.5m
/home/shubham/.pyenv/versions/anaconda3-4.1.1/include/python3.5m

Include path fixed in 0.4.19: a768e8bb5f1663c8b4fbb9d36e340887c550b0e0.

please open again, still error event the header / include directory already fixed.
the file is:
Python.h
the folder is correct, mine is in ../usr/include/python3.7m
but still return error in the same result, ask to install python header by sudo apt-get install python-dev


Use const references where possible

The implementation of the Simple Binary Tree (both classes BinaryTree and TreeNode) makes excessive use of passing arguments by value instead of by reference.

Manually closed because forgot to use closing words in description of PR #2.


Inference: size mismatch for context_lstm.weight_ih_l0: copying a param with shape torch.Size([2080, 1044]) from checkpoint, the shape in current model is torch.Size([2080, 1040]).

I'm sorry to trouble you. I'm trying to use the project to assist a patient on a ventilator -- I'm just trying to get inference working right now, but am unable to figure out some of the options:
CONFIG_PATH=configs/config_ljs_radtts.json
RADTTS_PATH=??
HG_PATH=data/archive/
HG_CONFIG_PATH=data/hifigan_22khz_config.json
TEXT_PATH=test.txt

python inference.py -c $CONFIG_PATH -r $RADTTS_PATH \
	-v $HG_PATH -k $HG_CONFIG_PATH -t $TEXT_PATH -s ljs \
	--speaker_attributes ljs --speaker_text ljs -o results/

I have hifigan_libritts100360_generator0p5.pt.zip unzipped into data/archive/*, like:

data/archive/data.pkl
data/archive/data/94135883059968
data/hifigan_22khz_config.json

I'm not sure what to put in for TEXT_PATH, nor if the config or, really, the other options should really point to.
Thanks for the help and your time.

Okay, I've made some headway:
CONFIG_PATH=configs/config_ljs_radtts.json
RADTTS_PATH=data/radtts/radtts++ljs-dap.pt
HG_PATH=data/hifigan_libritts100360_generator0p5.pt.zip
HG_CONFIG_PATH=data/hifigan_libritts/hifigan_22khz_config.json
TEXT_PATH=test.txt

python inference.py -c $CONFIG_PATH -r $RADTTS_PATH \
	-v $HG_PATH -k $HG_CONFIG_PATH -t $TEXT_PATH -s ljs \
	--speaker_attributes ljs --speaker_text ljs -o results/

But there's a mismatch:
  File "/home/jaggz/venv/ttsrad/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1671, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(

RuntimeError: Error(s) in loading state_dict for RADTTS:
	size mismatch for context_lstm.weight_ih_l0: copying a param with shape torch.Size([2080, 1044]) from checkpoint, the shape in current model is torch.Size([2080, 1040]).
...

Full output is:
/home/jaggz/opt/src/tts/radtts/nvidia/common.py:391: UserWarning: torch.qr is deprecated in favor of torch.linalg.qr and will be removed in a future PyTorch release.
The boolean parameter 'some' has been replaced with a string parameter 'mode'.
Q, R = torch.qr(A, some)
should be replaced with
Q, R = torch.linalg.qr(A, 'reduced' if some else 'complete') (Triggered internally at ../aten/src/ATen/native/BatchLinearAlgebra.cpp:2349.)
  W = torch.qr(torch.FloatTensor(c, c).normal_())[0]
/home/jaggz/venv/ttsrad/lib/python3.9/site-packages/torch/functional.py:1682: UserWarning: torch.lu is deprecated in favor of torch.linalg.lu_factor / torch.linalg.lu_factor_ex and will be removed in a future PyTorch release.
LU, pivots = torch.lu(A, compute_pivots)
should be replaced with
LU, pivots = torch.linalg.lu_factor(A, compute_pivots)
and
LU, pivots, info = torch.lu(A, compute_pivots, get_infos=True)
should be replaced with
LU, pivots, info = torch.linalg.lu_factor_ex(A, compute_pivots) (Triggered internally at ../aten/src/ATen/native/BatchLinearAlgebra.cpp:1915.)
  return torch._lu_with_info(A, pivot=pivot, check_errors=(not get_infos))
Loading vocoder: data/hifigan_libritts100360_generator0p5.pt.zip
Applying spectral norm to text encoder LSTM
Applying spectral norm to context encoder LSTM
Traceback (most recent call last):
  File "/home/jaggz/opt/src/tts/radtts/nvidia/inference.py", line 203, in <module>
    infer(args.radtts_path, args.vocoder_path, args.config_vocoder,
  File "/home/jaggz/opt/src/tts/radtts/nvidia/inference.py", line 97, in infer
    radtts.load_state_dict(state_dict, strict=False)
  File "/home/jaggz/venv/ttsrad/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1671, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(

RuntimeError: Error(s) in loading state_dict for RADTTS:
	size mismatch for context_lstm.weight_ih_l0: copying a param with shape torch.Size([2080, 1044]) from checkpoint, the shape in current model is torch.Size([2080, 1040]).
	size mismatch for context_lstm.weight_ih_l0_reverse: copying a param with shape torch.Size([2080, 1044]) from checkpoint, the shape in current model is torch.Size([2080, 1040]).

Did you ever get this solved? I'm seeing the same thing.

Nevermind. This looks like a duplicate of https://github.com/NVIDIA/radtts/issues/6. Solution here: https://github.com/NVIDIA/radtts/issues/6#issuecomment-1191662870


Improve error message for ambiguous function matches

temp.bal:5: function reference 'print' is ambiguous, functions 'print.float' and 'print.string' matches
print.float and print.string are the internal representation of the function symbol name. Please change this to a human-readable function signatures

The earlier error message was something like [1] (in which "print.string" was the value of the key in the symbol map), with the pull request, changed it to [2].
[1] - sample.bal:3: function reference 'print' is ambiguous, functions 'print.string' and print.double' matches
[2] - sample.bal:3: function reference 'print' is ambiguous, functions 'print(string)' and 'print(double)' matches


Validation for Istio RBAC policies

Istio RBAC policies (i.e., ServiceRole and ServiceRoleBinding) need to be validated while it is entered by users. We can use the existing CRD validation framework (via k8s admission controller) in Pilot/Mixer.

cc @yangminzhu


Write frames

@isarandi is there any way to write these poseviz output frames into video from one angle?

Yes, you can do that by calling
viz.new_sequence_output(output_video_path, fps=desired_output_fps)

You can start a new video by calling the same function again with a different path.
The function viz.finalize_sequence_output() can also be called if you want to flush the current video fully to disk. This is not mandatory, the video will be saved correctly also if you just exit the with clause of PoseViz, or when PoseViz is otherwise closed.


[feature request] JWT token authentication

Please consider this to be a feature request.
I'm using Angular with JWT tokens ( https://github.com/auth0/angular-jwt ) and JWT injector is not working with angular-websocket.

Cant you put it into your url?
$websocket('wss://serveraddresswebsocket?token='+jwtToken
?

With PR #107 you should be able to pass an Authorization header as an
additional option to the underlying ws library.


Improving the visual difference between section titles and subtitles

It's not easy to distinguish between section titles and subtitles in the docs at the moment, as the header styles are quite close to each other.

One option is to add a line below the section title so it's easier to distinguish between the two

Opening a GitHub issue to start discussion -- came up during a PM group review on docs earlier today.

Completely agree!! In addition to a subtle bottom border (underline), some subtle color to the sub headers might add some pop and add addition distinguishing separation.

I'm a fan of a light grey background for headings, like this:


Allow resizing of aspect ratio when dragging coordinates

Hi @JamesLMilner thanks for adding this feature to terra draw I think its a great feature to have.
I was trying this new flag and I noticed that when using opposite in rectangles it successfully maintains its rectangle shape, however, it resizes the figure while maintaining its proportions as if I were resizing it using ctrl + s, only that it does it from the opposite vertex.
I think the notion of taking the opposite vertex as the reference point to edit the rectangle is totally correct, but I think having a behavior similar to when you initially draw a rectangle (where you can easily modify its width-height proportion) would be more appropriate, instead of resize the feature maintaining its width-height proportion the same.
I clear example here would be...
Let say I draw almost a perfect square using the rectangle mode,
then I realize I want to have that figure more like a rectangle where its width is considerably larger than its height,
with the current behavior this could not be possible.
Sorry if I didn't explain correctly what I meant by maintaining the shape of the feature and hope this makes sense. Thanks.

Hey @alanOracle - thanks for the feedback. What you're suggesting is possible, but it will take a bit of work to get it quite right.
I'm thinking that maintainShapeFrom isn't a great property name here, and instead am going to change it to resizeable. It will allow for more options such as the one you are describing to allow for multi axis sizing.

@JamesLMilner Hey I've noticed that this behavior is now present in terra draw. Thanks for that. This feature fits almost perfectly with the bounding box editor use case Im trying to add.
Im using resizable: 'opposite-planar' and it seems to implement the feature described in this issue.
I do have some suggestions about this mode though.
When you resize the rectangle in a certain way you can find this behavior where the corner you are trying to move is considerably off from the cursor.
https://github.com/JamesLMilner/terra-draw/assets/132691171/98efdd58-0e7e-4b31-8c92-e5f8073617ed
Also when you try to go to another axis you get this weird behavior
https://github.com/JamesLMilner/terra-draw/assets/132691171/98d512b2-1136-449b-b1b5-2c98f4393d77
I think a better approach would be to make sure the corner you are editing is right under the cursor at all times and also let the user edit the rectangle the way you draw a rectangle for the first time where you can cross axis with no problem
https://github.com/JamesLMilner/terra-draw/assets/132691171/9b5fbadb-2885-4176-bab8-d12b4e996b42
Thanks again and hopefully this suggestions make sense to you.

Hey @alanOracle  thanks for the feedback, I appreciate it.
I noticed this bug with tracking the mouse cursor too, just about to raise a fix for this and will release a new release version. I also raised an issue for point you made about the axis. It should be resolvable 👍🏻
Regarding making the resizeable option follow the behaviour of Rectangle mode; the resizeable option is not directly tied to the Rectangle mode and needs to support all mode and geometry types when selecting, so we need to be careful when thinking and modifying it's behaviour. This being said I totally understand the use-case here you are talking about and am trying to make it possible whilst still catering for lots of different other types of drawing modes 😄

I've raised 3 bug fixes that should improve the UX of the resizeable option. It's still not perfect, and I will raise a couple more bug tickets later on for two remaining issues I know about, but it should be much better than the last release :)
Will close this issue, lets cover any new bug/improvements in separate issues.


pkg/linter unit test files in test_data directory have analysis failures

The pkg/linter/test unit tests are failing analysis checks on the CI.
The tests

pkg/linter/test/experiments_test
pkg/linter/test/integration_test
pkg/linter/test/rule_test
pkg/linter/test/unmocked_sdk_rule_test

fail when the analyzer tries to analyze the dart files in linter/test_data.
Part of the migration plan for linter is to migrate the tests to drop these test_data files.
See https://github.com/dart-lang/linter/issues/4411

Fixed w/ https://github.com/dart-lang/sdk/commit/76e4e80ceb16f6ff1879a13203167f0d1b8a993d


feat(pgwire): report correct version on startup

Signed-off-by: Bugen Zhao<EMAIL_ADDRESS>What's changed and what's your intention?
As title. We will get the current package version at compile time using vergen crate, which provides much more flexibility if we want to extend it in the future. When pgwire accepts a new connection, it will return with the correct version field.

To avoid rebuild after committing, we do not put the git hash into the version for now.
Checklist

[x] I have written necessary docs and comments
[x] I have added necessary unit tests and integration tests

Refer to a related PR or issue link (optional)

#793

I would prefer to have risingwave_version crate, and only risingwave_cmd_all on release mode will depend on it.

I'm just going to fix this problem and actually the server version here should not be the risingwave version. Since in some cases, the server version is used by the client to work around incompatibility issues. Suppose there's a feature not supported before postgres 8.1, the client can find other approach to achieve the same functionality. So basically, if we implement all the features based on postgres 9.5.0, we should not use the risingwave (e.g. 0.1.7) or the client will fail to connect as this pg version is too old to support.

I'm just going to fix this problem and actually the server version here should not be the risingwave version. Since in some cases, the server version is used by the client to work around incompatibility issues. Suppose there's a feature not supported before postgres 8.1, the client can find other approach to achieve the same functionality. So basically, if we implement all the features based on postgres 9.5.0, we should not use the risingwave (e.g. 0.1.7) or the client will fail to connect as this pg version is too old to support.

How does the client determine the version in general? Is it okay to put the risingwave version after the compatible postgresql version like "9.5.0-risingwave-0.1.7" or something?

How are we going to get the info as demonstrated in https://crates.io/crates/vergen? When I confront a bug, I want to know the git commit sha1 which produces this binary.

How are we going to get the info as demonstrated in https://crates.io/crates/vergen? When I confront a bug, I want to know the git commit sha1 which produces this binary.

I'm also considering putting the git hash into the version. However, this will let the whole project rebuild after each commit, which may reduce the development experience. 😢

This looks like to generate too many info on build time. https://crates.io/crates/vergen
I guess this will impact a lot on incremental build time. Why not simply:
let version = env!("CARGO_PKG_VERSION");

?

Just in case we need to extend it with more detailed info...

I would prefer to have risingwave_version crate, and only risingwave_cmd_all on release mode will depend on it.

Reporting a meaningful version may also benefit developing or debugging. Let's listen to everyone's opinions. 🤣

How are we going to get the info as demonstrated in https://crates.io/crates/vergen? When I confront a bug, I want to know the git commit sha1 which produces this binary.

I'm also considering putting the git hash into the version. However, this will let the whole project rebuild after each commit, which may reduce the development experience. 😢

A single version may not be enough 😂

How does the client determine the version in general?

@BugenZhao The server version can be known via the pgwire protocol, internally it will be encoded in the ParameterStatus message. I don't know if "9.5.0-risingwave-0.1.7" gonna work and I suggest using hard-coded "9.5.0" and encoding the system version later if we can ensure all the third-party tools are able to recognize versions in such format.

At present there is a hard-wired set of parameters for which ParameterStatus will be generated: they are server_version, server_encoding, client_encoding, application_name, default_transaction_read_only, in_hot_standby, is_superuser, session_authorization, DateStyle, IntervalStyle, TimeZone, integer_datetimes, and
https://www.postgresql.org/docs/current/protocol-flow.html#id-<IP_ADDRESS>.3

I'd like to split this PR into two pieces of stuff. One for reporting a correct

How does the client determine the version in general?

@BugenZhao The server version can be known via the pgwire protocol, internally it will be encoded in the ParameterStatus message. I don't know if "9.5.0-risingwave-0.1.7" gonna work and I suggest using hard-coded "9.5.0" and encoding the system version later if we can ensure all the third-party tools are able to recognize versions in such format.

At present there is a hard-wired set of parameters for which ParameterStatus will be generated: they are server_version, server_encoding, client_encoding, application_name, default_transaction_read_only, in_hot_standby, is_superuser, session_authorization, DateStyle, IntervalStyle, TimeZone, integer_datetimes, and
https://www.postgresql.org/docs/current/protocol-flow.html#id-<IP_ADDRESS>.3

Btw Materialize uses 9.5.0. You can checkout their code: src/coord/src/session/vars.rs

According to some doc, it seems the server_version is designed to be human-readable, and including additional information is allowed. Clients may check server_version_num integer instead to decide the postgresql version. However, we cannot ensure whether the client agrees with this in fact so this is just for our information. 🤣

I think this PR should be split into two pieces of stuff. One for reporting a correct version with pgwire, another for generating a detailed enough version info for developers to debug.

Some references on how libpq handles this.
https://github.com/postgres/postgres/blob/d22646922d66012705e0e2948cfb5b4a07092a29/src/interfaces/libpq/fe-exec.c#L1146-L1178

A little unclear, can someone give me a conclusion?
Summarize the pros:
User may not care about the risingwave version, and they only care about Postgresql Version, so our server version may not be important and may cause confusion?  And the version may not be enough compared with git commit hash?
My understanding:

We should provide this info if the cost is not too much. For commit hash, we can try to find whether there is not-heavy approach to achieve in the future.
To solve https://github.com/risingwavelabs/risingwave-cloud/issues/1097, if we not going to solve it in, I think we can provide a specific SQL "select rw_version()". The cons is that this will not called by user if they do not care rw version, but cloud team can use this to get version.

🤔I think select version() is great
defaultdb=> select version();
                                       version
--------------------------------------------------------------------------------------
 CockroachDB CCL v22.1.11 (x86_64-pc-linux-gnu, built 2022/11/14 20:44:30, go1.17.11)
(1 row)


How to apply padchat token?

In #1296 , @zixia says that "apply padchat token at BotOrange.com". But there is only the introduction of "小桔机器人".

Move to https://github.com/lijiarui/wechaty-puppet-padchat/issues/178

Anyone who want apply padchat token, please scan the following qrcode to contact the botorange:


When running batch_processing.sh: FileNotFoundError: No such file or directory: 'mt1_crop.json'

Description
./batch_processing.sh now fails as a result of #2875.
I believe the cause is that sct_example_data was not updated to include the relevant json sidecar files. (Only sct_testing_data was updated, in https://github.com/neuropoly/spinalcordtoolbox/pull/2875/commits/b6d99e015e80aa9f497ee256a64b98b12d5a43c8.)
Steps to Reproduce

Check out a recent revision on master.
Run ./batch_processing.sh. Result:

# Compute MTsat
# Tips: Check your TR and Flip Angle from the Dicom data
sct_compute_mtsat -mt mt1_crop.nii.gz -pd mt0_reg.nii.gz -t1 t1w_reg.nii.gz -trmt 30 -trpd 30 -trt1 15 -famt 9 -fapd 9 -fat1 15
Traceback (most recent call last):
  File "/home/joshua/Repos/spinalcordtoolbox/scripts/sct_compute_mtsat.py", line 221, in <module>
    main(sys.argv[1:])
  File "/home/joshua/Repos/spinalcordtoolbox/scripts/sct_compute_mtsat.py", line 179, in main
    parser = get_parser(argv)
  File "/home/joshua/Repos/spinalcordtoolbox/scripts/sct_compute_mtsat.py", line 74, in get_parser
    get_json_file_name(parser.parse_known_args(argv)[0].mt, check_exist=True), 'RepetitionTime')
  File "/home/joshua/Repos/spinalcordtoolbox/scripts/sct_compute_mtsat.py", line 170, in fetch_metadata
    with open(fname_json) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'mt1_crop.json'

A side question: Why do we have separate sct_testing_data and sct_example_data? Is there a reason they can't be combined, considering that they are used for similar purposes? That way, in the future for similar changes, we only have to update one dataset.

I believe the cause is that sct_example_data was not updated to include the relevant json sidecar files. (Only sct_testing_data was updated, in b6d99e0.)

thanks for catching that!  this is actually a bug, because this change was supposed to provide cross-compatibility, ie: if the arguments are given (-trmt, -trpd, etc.), it should not require the json file.

A side question: Why do we have separate sct_testing_data and sct_example_data? Is there a reason they can't be combined into a single dataset used for both sct_testing and batch_processing?

only reason is that sct_testing_data is smaller, and tests are run faster (smaller images, faster processing)


Producer -> consumer chain?

I don't really understand can I implement producer-consumer scheme using this library?
For example, imagine a producing function which makes some values over time, and another consuming function which takes the values. Is there a way to implement this using Promises?

The idea of promises is to represent one values per a promise. For generating values over time PHP's generators are more suitable.
$consumerFn = function () {
    while ($value = yield) {
        // Process the value somehow.
        var_dump($value);
    }
};

$consumer = $consumerFn();

// Produce values anywhere in your code.
$consumer->send(1);
$consumer->send(new stdClass());

It's a basic example 1-to-1 producer/subscriber. If you want to implement more complicated schemes, it's better to use events and subscribers, like Symfony's EventDispatcher.


Producer is not alive

Hi, I'm just starting with volley and my elixir is a bit rusty.  I'm trying to create an aggregate root, for which I think in-order subscription is the right approach (to prevent invalid commands etc).
Why am I getting this error? I thought that the Volley lib is supposed to start the producer named DatasetProducer for me?
 iex -S mix
Erlang/OTP 25 [RELEASE CANDIDATE 1] [erts-13.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]

19:52:11.960 [error] GenStage consumer MyApp.Dataset was not able to subscribe to the process DatasetProducer because that process is not alive

19:52:11.969 [notice] Application my_app exited: MyApp.Application.start(:normal, []) returned an error: shutdown: failed to start child: MyApp.Dataset
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started

19:52:11.972 [notice] Application volley exited: :stopped

19:52:11.972 [notice] Application gen_stage exited: :stopped

19:52:11.972 [notice] Application jason exited: :stopped

19:52:11.972 [notice] Application spear exited: :stopped

19:52:11.972 [notice] Application connection exited: :stopped

19:52:11.972 [notice] Application event_store_db_gpb_protobufs exited: :stopped

19:52:11.972 [notice] Application gpb exited: :stopped

19:52:11.972 [notice] Application mint exited: :stopped

19:52:11.972 [notice] Application hpax exited: :stopped
** (Mix) Could not start application my_app: MyApp.Application.start(:normal, []) returned an error: shutdown: failed to start child: MyApp.Dataset
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started

Here is my complete source:
## application.ex
defmodule MyApp.Application do
  # See https://hexdocs.pm/elixir/Application.html
  # for more information on OTP Applications
  @moduledoc false

  use Application

  @impl true
  def start(_type, _args) do
    in_order_subscription_settings = [
      name: DatasetProducer,
      connection: MyApp.EventStoreDbClient,
      stream_name: "Dataset"
    ]

    children = [
      MyApp.EventStoreDbClient,
      MyApp.Dataset,
      {Volley.InOrderSubscription, in_order_subscription_settings}
    ]

    # See https://hexdocs.pm/elixir/Supervisor.html
    # for other strategies and supported options
    opts = [strategy: :one_for_one, name: MyApp.Supervisor]
    Supervisor.start_link(children, opts)
  end
end

### my_app.ex
defmodule MyApp do
  def create_mock_dataset do
    event = Spear.Event.new("DatasetCreated", %{"id" => 2_208_061_522, "name" => "Mock Dataset"})

    [event] |> Spear.append(MyApp.EventStoreDbClient, "Dataset")
  end
end

## dataset.ex

defmodule MyApp.Dataset do
  use GenStage

  def start_link(_) do
    GenStage.start_link(__MODULE__, :ok)
  end

  @impl GenStage
  def init(:ok) do
    {:consumer, :ok, subscribe_to: [DatasetProducer]}
  end

  @impl GenStage
  def handle_events(events, _from, state) do
    IO.inspect(events, label: "events")

    {:noreply, [], state}
  end
end

## event_store_db_client.ex
defmodule MyApp.EventStoreDbClient do
  use Spear.Client,
    otp_app: :my_app
end

## mix.exs
defmodule MyApp.MixProject do
  use Mix.Project

  def project do
    [
      app: :my_app,
      version: "0.1.0",
      elixir: "~> 1.13",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

  # Run "mix help compile.app" to learn about applications.
  def application do
    [
      extra_applications: [:logger],
      mod: {MyApp.Application, []}
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
      {:spear, "~> 1.0"},
      {:jason, "~> 1.0"},
      {:volley, "~> 1.0"}
    ]
  end
end

I think you may need to reorder your application children so that the InOrderSubscription producer is started before the consumer:
children = [
  MyApp.EventStoreDbClient,
  {Volley.InOrderSubscription, in_order_subscription_settings},
  MyApp.Dataset
]

Does that boot up successfully?

Ok, that seems to have done something. I'm getting this error now (I'm sure I messed something up):
iex(1)>
20:13:48.945 [error] GenServer DatasetProducer terminating
** (FunctionClauseError) no function clause matching in Volley.InOrderSubscription.do_function/1
    (volley 1.0.0) lib/volley/in_order_subscription.ex:537: Volley.InOrderSubscription.do_function(nil)
    (volley 1.0.0) lib/volley/in_order_subscription.ex:467: Volley.InOrderSubscription.read_stream/2
    (volley 1.0.0) lib/volley/in_order_subscription.ex:393: Volley.InOrderSubscription.handle_demand/2
    (gen_stage 1.1.2) lib/gen_stage.ex:2117: GenStage.noreply_callback/3
    (stdlib 4.0) gen_server.erl:702: :gen_server.try_dispatch/4
    (stdlib 4.0) gen_server.erl:778: :gen_server.handle_msg/6
    (stdlib 4.0) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: :subscribe
State: %Volley.InOrderSubscription{connection: MyApp.EventStoreDbClient, demand: 1, producing?: false, read_opts: [], restore_stream_position!: nil, self: DatasetProducer, stream_name: "Dataset", subscribe_after: 0, subscribe_on_init?: {Volley, :yes, []}, subscription: nil}

20:13:48.953 [notice] GenStage consumer #PID<0.240.0> is stopping after receiving cancel from producer #PID<0.239.0> with reason: {:function_clause,
 [
   {Volley.InOrderSubscription, :do_function, [nil],
    [file: 'lib/volley/in_order_subscription.ex', line: 537]},
   {Volley.InOrderSubscription, :read_stream, 2,
    [file: 'lib/volley/in_order_subscription.ex', line: 467]},
   {Volley.InOrderSubscription, :handle_demand, 2,
    [file: 'lib/volley/in_order_subscription.ex', line: 393]},
   {GenStage, :noreply_callback, 3, [file: 'lib/gen_stage.ex', line: 2117]},
   {:gen_server, :try_dispatch, 4, [file: 'gen_server.erl', line: 702]},
   {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 778]},
   {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}
 ]}

20:13:48.954 [info]  Volley.InOrderSubscription (DatasetProducer) subscribing to 'Dataset'

20:13:48.954 [error] GenServer DatasetProducer terminating
** (FunctionClauseError) no function clause matching in Volley.InOrderSubscription.do_function/1
    (volley 1.0.0) lib/volley/in_order_subscription.ex:537: Volley.InOrderSubscription.do_function(nil)
    (volley 1.0.0) lib/volley/in_order_subscription.ex:467: Volley.InOrderSubscription.read_stream/2
    (volley 1.0.0) lib/volley/in_order_subscription.ex:393: Volley.InOrderSubscription.handle_demand/2
    (gen_stage 1.1.2) lib/gen_stage.ex:2117: GenStage.noreply_callback/3
    (stdlib 4.0) gen_server.erl:702: :gen_server.try_dispatch/4
    (stdlib 4.0) gen_server.erl:778: :gen_server.handle_msg/6
    (stdlib 4.0) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: :subscribe
State: %Volley.InOrderSubscription{connection: MyApp.EventStoreDbClient, demand: 0, producing?: false, read_opts: [], restore_stream_position!: nil, self: DatasetProducer, stream_name: "Dataset", subscribe_after: 0, subscribe_on_init?: {Volley, :yes, []}, subscription: nil}

20:13:48.954 [error] GenServer #PID<0.240.0> terminating
** (FunctionClauseError) no function clause matching in Volley.InOrderSubscription.do_function/1
    (volley 1.0.0) lib/volley/in_order_subscription.ex:537: Volley.InOrderSubscription.do_function(nil)
    (volley 1.0.0) lib/volley/in_order_subscription.ex:467: Volley.InOrderSubscription.read_stream/2
    (volley 1.0.0) lib/volley/in_order_subscription.ex:393: Volley.InOrderSubscription.handle_demand/2
    (gen_stage 1.1.2) lib/gen_stage.ex:2117: GenStage.noreply_callback/3
    (stdlib 4.0) gen_server.erl:702: :gen_server.try_dispatch/4
    (stdlib 4.0) gen_server.erl:778: :gen_server.handle_msg/6
    (stdlib 4.0) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: {:DOWN, #Reference<0.239407594.4188012545.71159>, :process, #PID<0.239.0>, {:function_clause, [{Volley.InOrderSubscription, :do_function, [nil], [file: 'lib/volley/in_order_subscription.ex', line: 537]}, {Volley.InOrderSubscription, :read_stream, 2, [file: 'lib/volley/in_order_subscription.ex', line: 467]}, {Volley.InOrderSubscription, :handle_demand, 2, [file: 'lib/volley/in_order_subscription.ex', line: 393]}, {GenStage, :noreply_callback, 3, [file: 'lib/gen_stage.ex', line: 2117]}, {:gen_server, :try_dispatch, 4, [file: 'gen_server.erl', line: 702]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 778]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}
State: :ok

20:13:48.955 [info]  Volley.InOrderSubscription (DatasetProducer) subscribing to 'Dataset'

20:13:48.955 [error] GenServer DatasetProducer terminating
** (FunctionClauseError) no function clause matching in Volley.InOrderSubscription.do_function/1
    (volley 1.0.0) lib/volley/in_order_subscription.ex:537: Volley.InOrderSubscription.do_function(nil)
    (volley 1.0.0) lib/volley/in_order_subscription.ex:467: Volley.InOrderSubscription.read_stream/2
    (volley 1.0.0) lib/volley/in_order_subscription.ex:393: Volley.InOrderSubscription.handle_demand/2
    (gen_stage 1.1.2) lib/gen_stage.ex:2117: GenStage.noreply_callback/3
    (stdlib 4.0) gen_server.erl:702: :gen_server.try_dispatch/4
    (stdlib 4.0) gen_server.erl:778: :gen_server.handle_msg/6
    (stdlib 4.0) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: :subscribe
State: %Volley.InOrderSubscription{connection: MyApp.EventStoreDbClient, demand: 1, producing?: false, read_opts: [], restore_stream_position!: nil, self: DatasetProducer, stream_name: "Dataset", subscribe_after: 0, subscribe_on_init?: {Volley, :yes, []}, subscription: nil}

20:13:48.955 [notice] Application my_app exited: shutdown

I think you'll need a restore_stream_position! option in in_order_subscription_settings which is a zero-arity function that gives the event number of the last event handled by the consumer or :start if the consumer hasn't handled any events yet

Ok this works:
stream_name: "Dataset",
restore_stream_position!: fn -> :start end

Should I use the same handler as a genserver for handling commands?
How do you deal with the case of aggregate consistency and event store events?
For example, let's say I'm implementing an aggregate root to control the duplicate creation of  datasets. Can't this thing happen if I simply implement my commands in GenStage?

Receive call to create new Dataset with ID 1. My GenStage verifies that no such dataset exists yet. Send Event DatasetCreated(1) to EventStore Reply :ok.
Handle event "DatasetCreated" setting state to {"1" -> "Dataset 1"}
Receive call to create new Dataset with ID 2. My GenStage verifies that no such dataset exists yet. Send Event DatasetCreated(2) to EventStore. Reply :ok.
Receive call to create new Dataset with ID 2. My GenStage verifies that no such dataset exists yet. Send Event DatasetCreated(2) to EventStore. Reply :ok.
Error - two events of type DatasetCreated(2) were now issued. So duplicate id exists.

The simplest way to prevent a consistency problem there would be to have a single process in charge of handling all commands - that way you couldn't handle two conflicting commands at once. It's a very consistent approach at the cost of throughput because you can't handle unrelated commands - commands targeting different entities - in parallel. If you don't have throughput problems though then it's a good approach and easy to reason about.
In order to handle commands with a high throughput while keeping consistency, you should partition incoming commands to a set of GenStage consumers by their entity IDs. You can set that up more easily with Broadway which has a partition_by option that takes a partitioning function. For this approach you need to have the producers of commands generate new entity IDs rather than the aggregate itself. You can have command producers generate a fresh UUIDv4 for each CreateDataset command or maybe a UUIDv5 or :erlang.phash2/2 some input data if you want a deterministic ID.
For potentially maximum throughput though, there's a third option that doesn't need any collaboration between consumers (or IDs on CreateDataset messages I suppose). You can use EventStoreDB's expectation system to handle commands with optimistic concurrency. When you read the event history for an entity, you hold on to the last event in the stream and when you go append new events created by handling the command, you expect that last event.
def handle_command(command) do
  stream_name = "DataSet-#{command.id}"
  event_history = MySpearClient.stream!(stream_name)
  expectation =
    case Enum.take(event_history, -1) do
      [last_event] -> last_event
      [] -> :empty
    end
  state = Enum.reduce(event_history, %State{}, &fold_history_into_state/2)
  {:ok, new_events} = decide_new_events_for_command_and_state(command, state)

  case MySpearClient.append(new_events, stream_name, expect: expectation) do
    :ok ->
      Logger.info("successfully handled")

    {:error, %Spear.ExpectationViolation{}} ->
      Logger.warn("""
      Another command was handled while handling this command.
      This command should be retried
      """)

    {:error, reason} ->
      Logger.error("""
      Failed to append events!
      Probably for something network related: #{inspect(reason)}
      """)
  end
end

If some other consumer of commands has handled CreateDataset for ID=2 at the same time as another, the slower of the two consumers will fail to append events. This probably maximizes throughput but you have to deal with that failure, for example by retrying failed commands.
All of these only need Spear though and are agnostic of how commands are delivered. Afaik, NFIBrokerage only uses Volley for writing process managers and read model projections. For delivering commands to consumers, I think it's considered an anti-pattern to use the EventStoreDB as a message broker; you can use a message broker or even just HTTP calls for simplicity.

Is there a slack/forum channel were I can join? I don't want to create useless issues here. Thanks!

I'm on the DDD-CQRS-ES, Elixir, Erlang and RabbitMQ Slacks plus the Elixir and Erlang forums if you have questions especially about Spear or things built with it implementation-wise. I'm not super knowledgeable about DDD/CQRS/ES so it may be easier to get questions to answers like that from the DDD-CQRS-ES Slack or the #commanded channel in the Elixir Slack. I'm most active on github though. I can go ahead and enable github discussions on the spear repo but we'll need an active NFIBrokerage member to enable them here too

Thank you for the answers. The third one looks like what I want. It seems like a general pattern for any aggregate root to follow.

Afaik, NFIBrokerage only uses Volley for writing process managers and read model projections
So do you mean you use sql for storing your entities/aggregates?

Could you clarify what you mean by "For delivering commands to consumers, I think it's considered an anti-pattern to use the EventStoreDB as a message broker"?

One thing i don't understand is:
event_history = MySpearClient.stream!(stream_name)

This seems to replay history every time a command is handled?

So do you use sql for storing your entities/aggregates?

We use EventStoreDB for storing entities/aggregates. An example aggregate might be a Phoenix application that receives commands as POSTs and GenServer.call/3s a GenServer that keeps the consistency guarantees. The implementation for that GenServer can look just like the code-snippet above (although it wouldn't need the expectation part because the GenServer forces consistency). It's a little limited throughput-wise and you do end up recomputing the event_history for every handled command but in practice it works well and is very fast for entities with event history streams containing fewer than ~100 events.
Volley is meant for long-running consumption of EventStoreDB streams. I suppose you could use Volley to read the event history for an entity when making a decision but it's simpler to use Spear.stream!/3 for that use-case.

I think it's considered an anti-pattern to use the EventStoreDB as a message broker

It certainly can work to put your commands in EventStoreDB and have aggregates consume commands from them. You could use Volley for this but you would want to handle one command at a time or partition commands by entity ID. Once a command is handled though there isn't much reason for it to remain in the EventStoreDB. With EventStoreDB, persistence of messages is the default which is good for events. Message brokers are typically geared toward treating messages as semi-transient data to be discarded at the end of handling, which is good for commands. Performance-wise, EventStoreDB is very good at reads and okay at writes; message-brokers tend to have roughly equal performance for publishing and consuming. I'm not sure how well EventStoreDB deals with high event churn (commands being published, consumed, and then deleted with high throughput) internally. It may not be a use-case EventStoreDB was built for.

This seems to replay history every time a command is handled?

Yep! If your event streams are short (<5k events) and each event is reasonably small (~100KB), this ends up not being a practical problem. There are optimizations you can make if it becomes a problem though: you can cache event histories or create snapshots for entity streams.

The simplest way to prevent a consistency problem there would be to have a single process in charge of handling all commands

Actually, I really like this simple approach. Do you have an example of code for this that would also work for all types of aggregates? I assume it would be something like what you provided before but simplified?
Here is my attempt:
def handle_command(command) do
  stream_name = "#{command.aggregate_name}-#{command.id}"
  event_history = MySpearClient.stream!(stream_name)

  state = Enum.reduce(event_history, %State{}, &fold_history_into_state/2)
  case decide_new_events_for_command_and_state(command, state) do
     {:ok, new_events} -> pass
     {:error, reason} -> {reply, {:error, reason}, ...}
  end

 MySpearClient.append(new_events, stream_name)
  {reply, :ok}
  end
end

Yep that looks perfect 👍
For the GenServer part of it, you don't even need to care about state really:
defmodule MyCommandHandler do
  use GenServer

  def handle_command(command, timeout \\ 5_000) do
    GenServer.call(__MODULE__, {:handle_command, command}, timeout)
  end

  @doc false
  def start_link(arg) do
    GenServer.start_link(__MODULE__, arg, name: __MODULE__)
  end

  @impl GenServer
  def init(_init_arg) do
    {:ok, nil}
  end

  @impl GenServer
  def handle_call({:handle_command, command}, _from, gen_server_state) do
    stream_name = "#{command.aggregate_name}-#{command.id}"

    event_history = MySpearClient.stream!(stream_name)
    entity_state = Enum.reduce(event_history, %State{}, &fold_history_into_state/2)

    case decide_new_events_for_command_and_state(command, entity_state) do
      {:ok, new_events} ->
        :ok = MySpearClient.append(new_events, stream_name)
        {:reply, :ok, gen_server_state}

      {:error, reason} ->
        {:reply, {:error, reason}, gen_server_state}
    end
  end
end

Or you could use the GenServer state to track event histories to make things faster at the cost of memory.