darwin: Use posix_spawn to spawn subprocesses in macOS

Issue
This PR tackles #3050.
Overview
With Big Sur (macOS 11), apple introduced a significant performance degradation when trying to fork()/exec a new child process when the parent has many pages mmaped with MAP_JIT (like, say, a javascript interpreter). At the same time, on macOS spawning a subprocess with posix_spawn (as chromium does) does not incur on the overhead.
This bug impacts electron apps that spawn subprocess, like for example, VSCode. There is an issue filed against electron itself as a consequence.
Using the repro app from the issue, I implemented the forking logic specific to macOS using posix_spawn, as far as I know, doing everything that the normal fork path does, with the extra advantage of having the macOS extension to posix_spawn POSIX_SPAWN_CLOEXEC_DEFAULT that treats all descriptors, regardless if opened or not with O_CLOEXEC, as if they had; that way we can guarantee no descriptors leak into the child process.
🚨  Caveats (AKA: :warning: Help! :warning:)
There are two caveats with this PR:

there are some questionable function calls that work but I'm not backed up by documentation, and
~failing unit test case~ (FIXED!)

The following sections dig a little deeper on these caveats.
Questionable function calls
The call to posix_spawnattr_set_groups_np (trying to mimic what the fork/exec flow does with setgroups) is super sketchy because I found 0 docs on that one, and coded by example (and by the analogy with setgroups). Please help me figure that one out too.
~Failing unit test case~
~There is one unit test failure: spawn_reads_child_path. This test verifies that the child uses the env parameter that sets a value for the PATH environment variable to resolve the value of the executable passed in as options->file.~
~In the fork/execvp world this works because right after fork in the uv__process_child_init function, that executes in the child process the environ global variable is replaced with options->env if that is set to non-NULL. So by the time execvp is called, the new PATH is set in the environment.~
~In the posix_spawn world, the file resolution occurs in the parent process, or, if it happens after the clone/fork/whatever is used underneath, it does so with the parent environment, not the one in options->env.~
~I argue that the behavior of posix_spawn is the correct thing to do anyway, but still, the library already works this way and so I cannot just blatantly change the behavior, but I don't have a good alternative. Manually trying to resolve the PATH is bound to run who knows what host of problems with unicode or IFSs or whatever.~

I verified that spawn times are just as fast with & without JIT using the repro project (https://github.com/deepak1556/libuv-spawn)!
Results taken using a codesigned build, 2016 MacBook Pro, macOS 11.0.1
posix_spawn
Without MAP_JIT
bash-3.2$ ./out/Default/uv_spawn
ls process launched with ID : 79108 and in : 1.23733 ms
ls process exited with status : 0 and in : 5.55769 ms

ls process launched with ID : 79113 and in : 1.41789 ms
ls process exited with status : 0 and in : 5.66987 ms

ls process launched with ID : 79118 and in : 0.89105 ms
ls process exited with status : 0 and in : 4.87111 ms

ls process launched with ID : 79123 and in : 0.794623 ms
ls process exited with status : 0 and in : 4.54644 ms

ls process launched with ID : 79128 and in : 0.868151 ms
ls process exited with status : 0 and in : 4.66897 ms

ls process launched with ID : 79133 and in : 0.998443 ms
ls process exited with status : 0 and in : 5.41041 ms

ls process launched with ID : 79138 and in : 1.06477 ms
ls process exited with status : 0 and in : 5.14938 ms

ls process launched with ID : 79143 and in : 0.964673 ms
ls process exited with status : 0 and in : 5.09582 ms

ls process launched with ID : 79148 and in : 0.887238 ms
ls process exited with status : 0 and in : 4.8716 ms

ls process launched with ID : 79153 and in : 0.932572 ms
ls process exited with status : 0 and in : 4.58974 ms

With MAP_JIT
bash-3.2$ ./out/Default/uv_spawn --use-jit
ls process launched with ID : 79160 and in : 0.98975 ms
ls process exited with status : 0 and in : 4.46968 ms

ls process launched with ID : 79165 and in : 0.763886 ms
ls process exited with status : 0 and in : 3.7277 ms

ls process launched with ID : 79170 and in : 1.10253 ms
ls process exited with status : 0 and in : 4.79186 ms

ls process launched with ID : 79175 and in : 0.923323 ms
ls process exited with status : 0 and in : 5.28865 ms

ls process launched with ID : 79180 and in : 1.03655 ms
ls process exited with status : 0 and in : 5.19892 ms

ls process launched with ID : 79185 and in : 0.891606 ms
ls process exited with status : 0 and in : 5.07491 ms

ls process launched with ID : 79190 and in : 1.13192 ms
ls process exited with status : 0 and in : 6.28628 ms

ls process launched with ID : 79195 and in : 1.1995 ms
ls process exited with status : 0 and in : 5.56335 ms

ls process launched with ID : 79200 and in : 0.999381 ms
ls process exited with status : 0 and in : 5.27073 ms

ls process launched with ID : 79205 and in : 1.11228 ms
ls process exited with status : 0 and in : 5.3832 ms

fork
Compare the results above against the head of the v1.x branch below:
Without MAP_JIT
bash-3.2$ ./out/Default/uv_spawn
ls process launched with ID : 84481 and in : 1.34959 ms
ls process exited with status : 0 and in : 5.45108 ms

ls process launched with ID : 84482 and in : 1.1263 ms
ls process exited with status : 0 and in : 5.045 ms

ls process launched with ID : 84483 and in : 1.02336 ms
ls process exited with status : 0 and in : 5.0336 ms

ls process launched with ID : 84484 and in : 1.09634 ms
ls process exited with status : 0 and in : 4.89075 ms

ls process launched with ID : 84485 and in : 1.00101 ms
ls process exited with status : 0 and in : 4.84648 ms

ls process launched with ID : 84486 and in : 1.80779 ms
ls process exited with status : 0 and in : 6.67846 ms

ls process launched with ID : 84487 and in : 1.26541 ms
ls process exited with status : 0 and in : 5.44206 ms

ls process launched with ID : 84488 and in : 1.02727 ms
ls process exited with status : 0 and in : 4.8705 ms

ls process launched with ID : 84489 and in : 1.07131 ms
ls process exited with status : 0 and in : 5.43011 ms

ls process launched with ID : 84490 and in : 1.07475 ms
ls process exited with status : 0 and in : 4.72903 ms

With MAP_JIT
bash-3.2$ ./out/Default/uv_spawn --use-jit
ls process launched with ID : 84494 and in : 53.6429 ms
ls process exited with status : 0 and in : 57.4913 ms

ls process launched with ID : 84495 and in : 45.3467 ms
ls process exited with status : 0 and in : 48.786 ms

ls process launched with ID : 84496 and in : 44.0292 ms
ls process exited with status : 0 and in : 47.2501 ms

ls process launched with ID : 84497 and in : 45.9806 ms
ls process exited with status : 0 and in : 49.2605 ms

ls process launched with ID : 84498 and in : 46.071 ms
ls process exited with status : 0 and in : 49.3887 ms

ls process launched with ID : 84499 and in : 43.6015 ms
ls process exited with status : 0 and in : 47.0534 ms

ls process launched with ID : 84500 and in : 47.0892 ms
ls process exited with status : 0 and in : 50.5227 ms

ls process launched with ID : 84501 and in : 55.4421 ms
ls process exited with status : 0 and in : 59.0695 ms

ls process launched with ID : 84502 and in : 45.3965 ms
ls process exited with status : 0 and in : 48.9634 ms

ls process launched with ID : 84503 and in : 49.845 ms
ls process exited with status : 0 and in : 53.2581 ms

Switched to a proper PR. Updated the description to include all the information I have about the successful/failed builds and their respective command lines emited by the build systems.

Ok, with the help of @marcello3d the build is now back up, and so I could run the unit tests and fix all but one. I've rewritten the PR description to reflect the current state of affairs.

Moved the process spawn and initialization logic to a separate function which in turn delegates to a purpose specific one (posix_spawn or fork+exec). Also, corrected all formatting and convenction issues.

Uh oh. Apparently CI did not like the changes to the stubs.

Thanks @bnoordhuis for the review! I've addressed all comments.

Resolved all pointed out issues. I refactored the initialization of the posix_spawnattr and posix_spawn_file_actions to separate functions that either return a properly initialized object on success, or an already-destroyed one on failure, making the cleanup in the top level more simple and also the main happy path more readable.

Reviewed this, and looks nearly done. Note it also fixes https://github.com/joyent/libuv/issues/1483

There is one unit test failure: spawn_reads_child_path
You might want to look at the execvpe emulation in the file?

I realized the code for execvpe emulation (support for older glibc) isn't actually available in this fork of libuv, so that comment wasn't helpful. Here's the code I intended to reference: https://github.com/JuliaLang/libuv/commit/9af3af617138d6a6de7d72819ed362996ff255d9

I realized the code for execvpe emulation (support for older glibc) isn't actually available in this fork of libuv, so that comment wasn't helpful. Here's the code I intended to reference: https://github.com/JuliaLang/libuv/commit/9af3af617138d6a6de7d72819ed362996ff255d9

Sorry for the bump, but I was wondering - because it now seems complete - if there were any updates about landing this?
Visual Studio Code on Apple Silicon (which only works on Big Sur), is pretty degraded because of this issue. 😕
Thanks!

Sorry for the bump, but I was wondering - because it now seems complete - if there were any updates about landing this?
Visual Studio Code on Apple Silicon (which only works on Big Sur), is pretty degraded because of this issue. 😕
Thanks!

@vtjnash I though doing something like that, but I was concerned with potential issues with path handling and unicode paths, but if it is a real alternative (I've been looking at the source of execve from glibc, and it is essentially the same. So I'll go ahead an mimic that behavior.

@vtjnash I though doing something like that, but I was concerned with potential issues with path handling and unicode paths, but if it is a real alternative (I've been looking at the source of execve from glibc, and it is essentially the same. So I'll go ahead an mimic that behavior.

@vtjnash I've been going over the emulation of the execvpe path resolution, but I'm not sure that we can replicate all the possible scenarios.
We have no control over the environment that posix_spawn uses to resolve the file to be executed (we can't manipulate environ as that would break concurrent operations): it will just use the environment of the current image.
Most cases I think will be ok, but there is one case that I'm not sure how to handle: given how the fork() flow works, the search that execvp does is over the provided environment only if any is supplied (since it replaces environ with options->env in the child init func). So if the caller supplied an environment with no PATH env, execve would have no PATH to resolve the file if it does not contain an /.
In the same scenario, but in the posix_spawn flow, I cannot mimic that particular case. I can try to resolve the file in the supplied env PATH if any, but if none is provided, I cannot emulate posix_spawnp trying to resolve the file in an empty path, as it will always pick up the PATH from the parent process.
Yes, it would be a much subtle difference and probably a corner case, but different nevertheless.
I'll continue working on this emulation, but would love some feedback on this potential limitation.

@vtjnash I've been going over the emulation of the execvpe path resolution, but I'm not sure that we can replicate all the possible scenarios.
We have no control over the environment that posix_spawn uses to resolve the file to be executed (we can't manipulate environ as that would break concurrent operations): it will just use the environment of the current image.
Most cases I think will be ok, but there is one case that I'm not sure how to handle: given how the fork() flow works, the search that execvp does is over the provided environment only if any is supplied (since it replaces environ with options->env in the child init func). So if the caller supplied an environment with no PATH env, execve would have no PATH to resolve the file if it does not contain an /.
In the same scenario, but in the posix_spawn flow, I cannot mimic that particular case. I can try to resolve the file in the supplied env PATH if any, but if none is provided, I cannot emulate posix_spawnp trying to resolve the file in an empty path, as it will always pick up the PATH from the parent process.
Yes, it would be a much subtle difference and probably a corner case, but different nevertheless.
I'll continue working on this emulation, but would love some feedback on this potential limitation.

If no PATH exists, then the default path (_PATH_DEFPATH) should be used in the emulation.
The glibc version should not be referenced as it is GPL3. The code I linked above is MIT-licensed (from musl) and can be included directly. I believe it already handles the cases you're concerned about, just replacing execve with posix_spawn. This is only needed when the user passes options->env. Otherwise, it can use posix_spawnp.

If no PATH exists, then the default path (_PATH_DEFPATH) should be used in the emulation.
The glibc version should not be referenced as it is GPL3. The code I linked above is MIT-licensed (from musl) and can be included directly. I believe it already handles the cases you're concerned about, just replacing execve with posix_spawn. This is only needed when the user passes options->env. Otherwise, it can use posix_spawnp.

@vtjnash This last set of commits fix all the style issues and also make the unit test pass.
🚨 Still, we are investigating with @marcello3d and @pdesantis a slowdown when using this patched version of libuv in node that manifests in poor throughput when piping data between std streams (stdout -> stdin) of spawned processes. It is reproducible when consuming in node when using this branch of libuv, but have not (yet) been able to reproduce with libuv by itself. So please, don't merge just yet.

I don't have a repro for the bug in libuv itself, but I can repro with a custom node.js build (nodejs branch/changes).
I get a 30x slowdown with the following javascript (requires ffmpeg installed):
const { spawn } = require('child_process');
const targetProc = spawn('wc');
spawn(
    'ffmpeg',
    ['-f', 'lavfi', '-i', 'testsrc=duration=2:size=1920x1080:rate=30', '-f', 'rawvideo', '-'],
    { stdio: ['pipe', targetProc.stdin, process.stderr] },
).on('exit', () => {
    console.log('decoder exited');
    targetProc.stdin.end();
});

vanilla node 12.18.3 (to match the Electron version we're using):
frame=   60 fps= 36 q=-0.0 Lsize=  364500kB time=00:00:02.00 bitrate=1492992.0kbits/s speed= 1.2x
video:364500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
decoder exited

real	0m1.818s
user	0m1.583s
sys	0m0.406s

with patches:
frame=   60 fps=1.1 q=-0.0 Lsize=  364500kB time=00:00:02.00 bitrate=1492992.0kbits/s speed=0.0367x
video:364500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
decoder exited

real	0m54.616s
user	0m2.026s
sys	0m1.058s

I don't have a repro for the bug in libuv itself, but I can repro with a custom node.js build (nodejs branch/changes).
I get a 30x slowdown with the following javascript (requires ffmpeg installed):
const { spawn } = require('child_process');
const targetProc = spawn('wc');
spawn(
    'ffmpeg',
    ['-f', 'lavfi', '-i', 'testsrc=duration=2:size=1920x1080:rate=30', '-f', 'rawvideo', '-'],
    { stdio: ['pipe', targetProc.stdin, process.stderr] },
).on('exit', () => {
    console.log('decoder exited');
    targetProc.stdin.end();
});

vanilla node 12.18.3 (to match the Electron version we're using):
frame=   60 fps= 36 q=-0.0 Lsize=  364500kB time=00:00:02.00 bitrate=1492992.0kbits/s speed= 1.2x
video:364500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
decoder exited

real	0m1.818s
user	0m1.583s
sys	0m0.406s

with patches:
frame=   60 fps=1.1 q=-0.0 Lsize=  364500kB time=00:00:02.00 bitrate=1492992.0kbits/s speed=0.0367x
video:364500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
decoder exited

real	0m54.616s
user	0m2.026s
sys	0m1.058s

Does anyone have an idea why this might happen? It seems like something about how the pipes are being configured with posix spawn is just wrong…
Here's another strange test case I found that doesn't exhibit the performance problem, but seems to terminate the pipe early:
const { spawn } = require('child_process');
const destination = spawn('wc', ['-l']);
destination.stdout.pipe(process.stdout);

// Just need a large file passed in to repro, using /bin/bash binary as a test
spawn('cat', ['/bin/bash'], {
    stdio: ['pipe', destination.stdin, process.stderr],
}).on('exit', () => {
    destination.stdin.end();
});

with vanilla node:
 $ time node test-pipe.js
    1858

real	0m0.127s
user	0m0.062s
sys	0m0.059s

with the patched node it seems to crash with this interesting error "cat: stdout: Resource temporarily unavailable":
[LIBUV] USING POSIX_SPAWN (v2)
[LIBUV] USING POSIX_SPAWN (v2)
cat: stdout: Resource temporarily unavailable
      12

real	0m0.048s
user	0m0.034s
sys	0m0.013s

Does anyone have an idea why this might happen? It seems like something about how the pipes are being configured with posix spawn is just wrong…
Here's another strange test case I found that doesn't exhibit the performance problem, but seems to terminate the pipe early:
const { spawn } = require('child_process');
const destination = spawn('wc', ['-l']);
destination.stdout.pipe(process.stdout);

// Just need a large file passed in to repro, using /bin/bash binary as a test
spawn('cat', ['/bin/bash'], {
    stdio: ['pipe', destination.stdin, process.stderr],
}).on('exit', () => {
    destination.stdin.end();
});

with vanilla node:
 $ time node test-pipe.js
    1858

real	0m0.127s
user	0m0.062s
sys	0m0.059s

with the patched node it seems to crash with this interesting error "cat: stdout: Resource temporarily unavailable":
[LIBUV] USING POSIX_SPAWN (v2)
[LIBUV] USING POSIX_SPAWN (v2)
cat: stdout: Resource temporarily unavailable
      12

real	0m0.048s
user	0m0.034s
sys	0m0.013s

That is usually EAGAIN, which would mean a pipe was incorrectly put in non-blocking mode.

That is usually EAGAIN, which would mean a pipe was incorrectly put in non-blocking mode.

Ok, I have something. I reproduced the slowdown in the fork flow too by commenting out this line, which means very likely right, @vtjnash, with respect to the non-blocking mode.
Now my problem is that as far as I know there are no posix_spawn file actions fo invoke random fnctls or to mark the fd as non blocking, so I don't know how to replicate that behavior on this alternate flow.

Ok, I have something. I reproduced the slowdown in the fork flow too by commenting out this line, which means very likely right, @vtjnash, with respect to the non-blocking mode.
Now my problem is that as far as I know there are no posix_spawn file actions fo invoke random fnctls or to mark the fd as non blocking, so I don't know how to replicate that behavior on this alternate flow.

Ahah then, that seems like this known issue: https://github.com/libuv/libuv/issues/2062. Since that flag is on the file description, not the fd, you should be able to call that in the parent before calling posix_spawn and the result will be exactly the same.

Ahah then, that seems like this known issue: https://github.com/libuv/libuv/issues/2062. Since that flag is on the file description, not the fd, you should be able to call that in the parent before calling posix_spawn and the result will be exactly the same.

Awesome. Calling uv__nonblock_fcntl on the descriptors resolved the problem in all our tests. I think we are done here.

Awesome. Calling uv__nonblock_fcntl on the descriptors resolved the problem in all our tests. I think we are done here.

Thanks for the help @vtjnash! JP implemented that change (https://github.com/libuv/libuv/pull/3064/commits/9a3d751d67807cfa1377c9f9bff35208f8402f0c), and he & Marcello verified it fixed the slow pipes in our test scripts listed above. I'm rebuilding Electron now to verify it there.
JP is looking in to writing a unit test to verify this behavior. However, as far as we know this doesn't need any more functional changes!

Thanks for the help @vtjnash! JP implemented that change (https://github.com/libuv/libuv/pull/3064/commits/9a3d751d67807cfa1377c9f9bff35208f8402f0c), and he & Marcello verified it fixed the slow pipes in our test scripts listed above. I'm rebuilding Electron now to verify it there.
JP is looking in to writing a unit test to verify this behavior. However, as far as we know this doesn't need any more functional changes!

@santigimeno thanks for the review. I think I addressed all the style nits.

@santigimeno thanks for the review. I think I addressed all the style nits.

Thanks again, @vtjnash. I think I addressed them all. I had to rewrite a little the path routine because the new one had some issues, but I kept the spirit of the suggestion.

Thanks again, @vtjnash. I think I addressed them all. I had to rewrite a little the path routine because the new one had some issues, but I kept the spirit of the suggestion.

@vtjnash @bnoordhuis @santigimeno Ok, I think this is it.

@vtjnash @bnoordhuis @santigimeno Ok, I think this is it.

@santigimeno Thanks, addressed all but one, with had an open question to which I replied; but I'll change if requested.

@santigimeno Thanks, addressed all but one, with had an open question to which I replied; but I'll change if requested.

is it ready to merge?!

is it ready to merge?!

CI: https://ci.nodejs.org/view/libuv/job/libuv-test-commit/2117/

CI: https://ci.nodejs.org/view/libuv/job/libuv-test-commit/2117/

@santigimeno The output of Jenkins shows failures, but it seems it is mostly unit tests that are unrelated to this change. Or is there anything that needs to be done here too?

@santigimeno The output of Jenkins shows failures, but it seems it is mostly unit tests that are unrelated to this change. Or is there anything that needs to be done here too?

@vtjnash @bnoordhuis @santigimeno a friendly heads up - we'll be on vacation for the first 3 weeks of February. So if possible, let us know soon if there are any more changes required, otherwise we won't be able to implement them until later next month. Thanks again for the help!

@vtjnash @bnoordhuis @santigimeno a friendly heads up - we'll be on vacation for the first 3 weeks of February. So if possible, let us know soon if there are any more changes required, otherwise we won't be able to implement them until later next month. Thanks again for the help!

Any chance @santigimeno and @bnoordhuis could have a look?

@jpcanepa could you rebase to current v1.x  and squash the commits with a proper commit message? Thanks!!

@santigimeno done!

FYI - we had to revert this because it was causing failures in the Node.js test suite.

FYI - we had to revert this because it was causing failures in the Node.js test suite.

Can you link to those test failures? Figuring out if we can fork and apply the patch without issues.


About GPU memory

hi！ I tried to run your code on double GPU, RTX3090(24G), but it didn't work, the error message showed "cuda:out of memory".

Hi,
Can you please let me know what commands you used to run the code? Make sure that the use_checkpointing flag is set to reduce GPU memory. You can see all the hyperparameters and arguments when the code starts running as well. Otherwise, GPU memory shouldn't be an issue for the default models, we also used 24GB GPUs for the experiments.

Hi @Aristot1e, did you manage to run the code? Please let me know if there is still some issue.

I have solved this problem, and running the code successfully. Thank you so much.


Stringvalidator crashes on intl icu version 55.1

StringValidator defines:
$this->tooLong = Yii::t('yii', '{attribute} should contain at most {max, number} {max, plural, one{character} other{characters}}.');
This works fine locally on php 5.6.11 using INTL ICU version 54.1
On my server on PHP 5.6.13 using INTL ICU version 55.1 it causes a crash in
MessageFormatter->format.
By redefining toolong as '{attribute} should contain at most {max} characters.' the problem was solved.

yes, this is an issue with ICU, what should we do about it?

There will be more people like me, that cannot control the icu version on the server.
So maybe we should have a workaround because it will cost them quite some time to figure out the cause of the problem and to make their own workaround.

First of all, it should be reported to PHP bug tracker for intl extension (if it's not there yet).

@cebe is it ICU crashing or intl crashing?

afair it was a bug in ICU but not sure

Could be there was something wrong with the intl icu implementation on the server I use.
The provider removed it and of course the problem is over now.
Issue can be closed as far as I'm concerned.


Error adding products from publish product page in admin and french translation is not working

What am I trying to do :
adding products from publish product page in admin and french translation is not working
..What's happening :
An uncaught Exception was encountered
Type: Error
Message: Call to undefined function mb_ereg_replace()
Filename: C:\MAMP\htdocs\application\helpers\except_letters_helper.php
Line Number: 9
Backtrace:
File: C:\MAMP\htdocs\application\modules\admin\models\Products_model.php
Line: 154
Function: except_letters
File: C:\MAMP\htdocs\application\modules\admin\controllers\ecommerce\Publish.php
Line: 39
Function: setProduct
File: C:\MAMP\htdocs\index.php
Line: 292
Function: require_once
About transaltion I ve modify and save  but it doesnt work :

@Coco0185
Which version of php you use? And did you have enabled mbstring php extension (by default is not enabled)?

Hi ,
I am using php 7.4.1:

i didn't enable mbstring extension.
How can I enable it?
Thank you for your answer

I've found it in my phpinfo page:

I guess it is enable

below a full screenshot of the mbstring

@Coco0185 Check your configurations or replace this function with another one in the  application/helpers/except_letters_helper.php.
This is not a bug in the platform.


Document playback.user.new trigger in Notion

https://www.notion.so/livepeer/playback-user-new-65cd8ee94ebd4581950d6cb3f1e368c1


[Proposal/Bug Fix] Change truncation to termination in Car Racing after finishing a lap

Proposal
Currently in Car Racing, when the agent finishes a lap, the environment is marked as truncated instead of terminated. This seems like a really odd choice to me.
https://github.com/Farama-Foundation/Gymnasium/blob/cc7d8ddbd43d5a924d79c4ac9bd3b76569f44ceb/gymnasium/envs/box2d/car_racing.py#L557-L561
This was added in openai/gym#2890 alongside an actual fix to the environment logic. I suspect the review focused on the bug fix, and omitted the undiscussed change, so it slipped through the cracks. (BTW now you see why I'm always being annoying about out-of-scope changes in PRs and similar stuff)
Finishing a lap is a very clear example for episode termination. You reach a terminal state after making a full loop, and the episode ends. It should never have been marked as truncation.
The annoying part the environment version was bumped for this (but also for the actual bug), so we'll have to bump it again. But I can't really see any justification for keeping this marked as truncation, which is inconsistent with the entire rationale for what truncation is meant to be (reaching the time limit). The explanation in some of the comments was that finishing the lap shouldn't be treated as a failure, but termination does not imply failure. Failure or success is defined by the reward. Termination says "You're done, nothing more to do". Truncation says "You took too long, try again".
@pseudo-rnd-thoughts @jkterry1 @araffin

I don't think it's an MDP if you change it to be the done signal since the observation doesn't really carry any information about whether a lap has been completed/how much of a lap has been completed. So making it the done signal may be problematic, at least that would be my understanding.

I don't think it's an MDP if you change it to be a termination

I don't really buy this. The observation is a pixel rendering in a radius around the environment, so it's hardly an MDP in the first place.


AttributeError: 'UTC' object has no attribute 'key'

Dear Zipline Maintainers,
I have run zipline-reloaded on colab and my windows.
Both met  the same problem.
In colab:
AttributeError: 'UTC' object has no attribute 'key'
windows:
AttributeError: 'datetime.timezone' object has no attribute 'key'
I have checked the original package. The error come from parse_date in calendar_helpers.py.
It works well.
from exchange_calendars.calendar_helpers import parse_date,parse_timestamp
ts = parse_timestamp("2020-08-21 00:00:00", 'start', raise_oob=False)
print(ts.tz.key)

How to fix the problem?

this is working on my environment
pyenv virtualenv 3.11.6 test
pip install zipline-reloaded
python
Python 3.11.6 (main, Oct 27 2023, 15:55:33) [Clang 15.0.0 (clang-15<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from exchange_calendars.calendar_helpers import parse_date,parse_timestamp
>>> ts = parse_timestamp("2020-08-21 00:00:00", 'start', raise_oob=False)
>>> print(ts.tz.key)
UTC

if this is an error it's an error on exchange_calendars and not on zipline-reloaded.

Hi @gnzsnz
I encounter the sam issue as above. When I run your code it works for me and I print 'UTC' nonethless, when I run run_algorithm I get the error:
'''AttributeError: 'datetime.timezone' object has no attribute 'key''''
Any idea where this might come from? Both zipline and exchange_calendars are up to date.
Thanks!

Hi @litonchen
I encountered the same error message, and solved the problem by making the variables passed to the start and end (parameters of the run_algorithm function) timezone unaware, ie, avoid using .tz_localize("UTC").
The problem lies in the parse_date function of the calendar_helpers.py (see the related code below):
    375 ts = parse_timestamp(date, param_name, raise_oob=False, side="left", utc=False)
    377 if ts.tz is not None:
    378     raise ValueError(
--> 379         f"Parameter `{param_name}` received with timezone defined as '{ts.tz.key}'"
    380         f" although a Date must be timezone naive."
    381     )

If start and end are timezone aware, the date parameter on line 375 will be timezone aware, and the ts (returned value) will also be timezone aware. Because utc=False, ts.tz won't be given a key attribute by parse_timestamp, resulting in the error. Your code chunk works because utc=True by default, and parse_timestamp function will change the ts by adding a key attribute to it.

in my case, on notebook "02_backtesting_with_zipline" chapter 8
I have commented the lines causing problems and added below a fix.
def load_predictions(bundle):
    predictions = pd.read_hdf('../00_data/backtest.h5', 'data')[['predicted']].dropna()
    tickers = predictions.index.get_level_values(0).unique().tolist()

    assets = bundle.asset_finder.lookup_symbols(tickers, as_of_date=None)
    #predicted_sids = pd.Int64Index([asset.sid for asset in assets])
    predicted_sids = pd.Index([asset.sid for asset in assets])
    ticker_map = dict(zip(tickers, predicted_sids))
    return (predictions
            .unstack('ticker')
            .rename(columns=ticker_map)
            .predicted
            #.tz_localize('UTC')), assets
            .tz_localize(None)), assets

there are a few cases in the notebooks that require changes due to changes on the underlying APIs. this happens with pandas 2 and greater.

Hi @jianjiu-chen & @gnzsnz ,
I'm running into the AttributeError: 'datetime.timezone' object has no attribute 'key'
issue as well.  I've tried localizing the start and end dates with no success.  Any other ideas?
result = run_algorithm(start=start.tz_localize('UTC'),
                       end=end.tz_localize('UTC'),

@ctbo3  .tz_localize(None) is not working?

I am running into this as well. My solution was change the start=datetime(2000,1, 1) to a timestamp:
result = run_algorithm(start=pd.Timestamp(2000,1,1) ...

The AttributError 'datetime.timezone' object has no attribute 'key' is not an issue of Zipline itself but of the underlying exchange_calendars module. I filed an issue in the exchange_calendars repo: https://github.com/gerrymanoim/exchange_calendars/issues/408 .

The AttributError 'datetime.timezone' object has no attribute 'key' is not an issue of Zipline itself but of the underlying exchange_calendars module. I filed an issue in the exchange_calendars repo: gerrymanoim/exchange_calendars#408 .

Although they have not yet replied there, I expect they will not accept this as an bug in exchange_calendars.  That error you're reporting is occurring at the point where a ValueError is being raised because a timezone aware date (line 377: if ts.tz is not None:)  was given to parse_date which comes from the call to trading_calendar.sessions_distance:
https://github.com/stefan-jansen/zipline-reloaded/blob/e945ae1b9ffcb0b2b3222dae30e58c8cdd2a4a0d/src/zipline/utils/run_algo.py#L103
That change is what caused run_algorithm to no longer simply accept pd.Timestamps for start and end that TradingSimulation takes.


Add progress saving

Description of the new feature/enhancement
I think it would be beneficial for the user to have the ability to save their workflow into a file and then automatically open the saved workflow when the terminal is opened. Maybe a .terminal-workspace file where all the details would be saved.
Usage Examples

I have 2 tabs opened (a PowerShell tab and an Azure Cloud Shell tab). I have the PowerShell tab split into 2 windows, one for running my unit tests and the other for manual testing. Every time close the terminal and then later continue with my work, I have to open all my tabs again.
Say I get some issues when running my tests, then I restart the terminal (maybe took a break or something) when reopening the terminal it would be great if all the history would load because now, I have to run the test again.

Thanks for the suggestion! Looks like we're tracking this in #776.
/dup #766

So for reference, I like to do like the following each time I boot up the Terminal in the morning:
{ "command": { "action": "wt", "commandline": "new-tab --title OpenConsole cmd.exe /k #work 15 ; split-pane -s .30 --title OpenConsole cmd.exe /k #work 15 ; split-pane  -s .25 -H cmd.exe /k media ; new-tab --title \"Symbols Script\" powershell dev\\symbols.ps1 ; new-tab -p \"Ubuntu 18.04\" ; new-tab -p \"microsoft/Terminal\" ; sp -V -p \"microsoft/Terminal\" ; sp -H -p \"microsoft/Terminal\" ; focus-tab -t 0" }, "name": "Good Morning" },

(you could probably make it shorter by replacing new-tab/split-pane with nt/sp, respectively).
I add that to the keybindings/actions. This creates a new command in the Command Palette named "Good Morning". That opens up a few tabs & panes, running various build environments. I like having it in a command rather than startupActions, because I only really want this in one terminal window, not every single one I launch. It's personal taste.
You could repeat this for multiple different "session"s if you wanted. That way you could have layouts pre-defined for various different dev environments.
We're also tracking adding commands to the new tab dropdown in #1571.

Alright, good to know, Thanks!


[QUESTION] Optional Body(...) parameter?

Hey folks...
I have an API request (a POST) that currently takes one path var and two body vars as follows:
@api.post("/account/{account_id}/report", status_code=201)
def create_report(account_id: int, user_params: UserParams, report_type: str = Body(...)):

(UserParams is a pydantic BaseModel defined earlier in the script)
I now need to add another body param. Just a string. But it's optional.
I didn't see anything in the FastAPI docs that demonstrated an optional Body param, other than setting a BaseModel value to None.
I looked at the source code and saw that Body takes a Schema, but haven't been able to figure out how to make it optional or default it to None.
I tried:
def create_report(account_id: int, user_params: UserParams, report_type: str = Body(...), sf_rec_id: int = Body(..., default=None)):

But got the following exception:
TypeError: Body() got multiple values for argument 'default'
Any help would be greatly appreciated.
Thanks!

sigh
Nevermind. Looks like this does it:
def create_report(account_id: int, user_params: UserParams, report_type: str = Body(...), sf_rec_id: str = Body(default=None)):

Out of curiosity, would anybody mind elaborating on the ... that gets passed in? It looks like I don't need to use it if I'm sending in a default value. I tried the other way because I saw importance: int = Body(..., gt=0), in the FastAPI docs, so assumed that the ... was necessary and any other args would follow. Clearly, that was incorrect :)
Thanks!

Thanks for reporting back and closing the issue.
The ... means "this is required", in contrast to None, not required, or a literal value "Foo", that means that "Foo" is the default.

You changed the datatype in the answer compared to the Question, but what if the optional data is supposed to be int/float and default value is None.

@jibinmathew69 I don't understand your question.
If your default value is actually "None", then your type is not int/float, is Optional[int/float]. "..." would mean that the value is required meanwhile None would mean that actually your default value is None.
Of course this means you can not distinguise when a "myvalue: null" was sent and when directly "myvalue" was not set. I think this problem is quite extended when processing JSON input.
Pydantic models "solve" it by having control over unset values (https://fastapi.tiangolo.com/tutorial/body-updates/#partial-updates-with-patch), but I guess for "primitive" types you don't have such options.
Was that your question?


Class 'Github\Client' not found

Once I run this project it showing me this error:

An uncaught Exception was encountered
Type: Error
Message: Class 'Github\Client' not found
Filename: /Applications/MAMP/htdocs/website/application/libraries/Github_api.php
Line Number: 26
Backtrace:
File: /Applications/MAMP/htdocs/website/application/core/MY_Controller.php
Line: 65
Function: library
File: /Applications/MAMP/htdocs/website/application/controllers/Welcome.php
Line: 53
Function: __construct
File: /Applications/MAMP/htdocs/website/index.php
Line: 277
Function: require_once

It sounds like the Guzzle package hasn't been installed. Did you do a composer install/update inside the project before running it?

No I didn't do nothing. So how can I install Guzzle package?

Assuming you have composer installed, execute the "composer install" from a command prompt, in the root of your project. The dependencies are built in to composer.json. If you are using an IDE, it usually has a "composer install" accessible from a menu.

I just execute "composer install" and I think it got installed. But still the same error :(

Can you PM me on our IRC channel? I think that would be faster than trying to resolve this via email / issue comments

Can you please tell me how to do that in IRC channel. I have no idea about that !!!

If you have an IRC client, point it at #codeigniter
If you don't, you can use http://webchat.freenode.net/?channels=%23codeigniter&uio=d4"
If you are not comfortable with IRC, check http://workaround.org/getting-help-on-irc
If you join the channel with the same name as here, I can trigger a private conversation with you

@jim-parry I joined with same name(shihasck) on #codeigniter channel

@jim-parry  I tried installing the composer again and I fixed it now. Thanks 👍

I noticed, but only a minute before you left the channel, sorry :(
You said there that you "fixed it"? Can you share what the solution was? Do I need to update the readme on this repo?


Match template tags with host tag for vm deployment

Description

Match the template tags with host tags for VM deployment/migration
Allow updating templates/isos with template tag by admin
Allow adding template tag while registering/creating template/iso
Allow searching templates/isos using template tags

If a template has a template tag then deploy the VM which uses this
template on hosts that match the template tags. If no suitable
hosts are found then throw an exception
Similarly, match the template tag with host tags while starting or
migrating a VM to a different host

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] Enhancement (improves an existing feature and functionality)

Screenshots (if appropriate):
How Has This Been Tested?

test 1
add different tag to template than hosts
try to deploy. it should fail
try to migrating existing vm. it should fail
test 2
remove all the tags on template
add tags to hosts
try to deploy vm
it can be deployed on any host
try to migrate it.
migration should be possible
stop/start is also possible
test 3
add tag to template
remove tags from host
try to deploy vm
deployment should fail
try to migrate already created vm with template tag
migration should fail
test 4
set same template tag on template and only one host
try to deploy vm
it should deploy vm on host with matching tag
test 5
ow try to migrate above created vm having specific tag
migration should fail as other hosts have either no tags or different tag
test 6
stop the above created vm
try to start of different host
start should fail as the tags dont match
test 7
now remove the tag from the template of the above created vm
try to migrate it
it should work fine
test 8
remove all tags from everyhwere
select any vm and set service offering tag as "ubuntu"
now set host tag as "windows" for all hosts
try to start/deploymigrate vm
it should not start/deploy/migrate as tags dont match
test 9
now set service offering tag as "windows"
try to start/deploy/migrate
it should successfully start/deploy/migrate on/to any host
Same steps for iso as well

this pr also has some changes on api: create/update/list template/iso by admin

@ravening could you give me some of the use cases for this change please, I'm not quite following.

@ravening could you give me some of the use cases for this change please, I'm not quite following.

@PaulAngus if template has a tag "windows" then the VM's created using this template should be deployed on hosts with tags "windows". Same thing for templates having tags like "linux", "Unix" it any other tag.
So we should not deploy templates having "windows" tag on hosts having "linux" tag
Hope it's clear

@ravening Needs conflicts to be resolved. Moving to <IP_ADDRESS> milestone based on base branch please update if needed

@ravening Needs conflicts to be resolved. Moving to <IP_ADDRESS> milestone based on base branch please update if needed

@ravening Needs conflicts to be resolved. Moving to <IP_ADDRESS> milestone based on base branch please update if needed

@shwstppr resolved conflicts

@ravening Needs conflicts to be resolved. Moving to <IP_ADDRESS> milestone based on base branch please update if needed

@shwstppr resolved conflicts

as #4452 has been merged, build will fail.

ping @ravening conflict fixing please

@ravening any update on this please

Ping @ravening

good functionality, clear description and sane as far as I can tell.
@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 946

Ping @ravening

ping @ravening, can you fix conflicts

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 1290

@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2091)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 36329 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4362-t2091-kvm-centos7.zip
Smoke tests completed. 89 look OK, 0 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

running test_host_tags.py, I get
Test template/host tag ... === TestName: test_01_template_host_tag | Status : EXCEPTION ===
ERROR

======================================================================
ERROR: Test template/host tag
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/marvin/tests/component/test_host_tags.py", line 210, in test_01_template_host_tag
    cls.vm_3.start(cls.apiclient, hostid = host.id)
  File "/usr/local/lib/python3.6/site-packages/marvin/lib/base.py", line 722, in start
    apiclient.startVirtualMachine(cmd)
  File "/usr/local/lib/python3.6/site-packages/marvin/cloudstackAPI/cloudstackAPIClient.py", line 4014, in startVirtualMachine
    response = self.connection.marvinRequest(command, response_type=response, method=method)
  File "/usr/local/lib/python3.6/site-packages/marvin/cloudstackConnection.py", line 381, in marvinRequest
    raise e
  File "/usr/local/lib/python3.6/site-packages/marvin/cloudstackConnection.py", line 376, in marvinRequest
    raise self.__lastError
  File "/usr/local/lib/python3.6/site-packages/marvin/cloudstackConnection.py", line 105, in __poll
    % async_response)
Exception: Job failed: {accountid : 'e423f3e7-16f6-11ec-a2d3-1e00b900043d', userid : 'e4251d92-16f6-11ec-a2d3-1e00b900043d', cmd : 'org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin', jobstatus : 2, jobprocstatus : 0, jobresultcode : 530, jobresulttype : 'object', jobresult : {errorcode : 431, errortext : 'The virtual machine dd283411-86dd-4b94-866c-3d32dd72a89c (Test VM) is already running'}, jobinstancetype : 'VirtualMachine', jobinstanceid : 'dd283411-86dd-4b94-866c-3d32dd72a89c', created : '2021-09-17T10:44:08+0000', completed : '2021-09-17T10:44:08+0000', jobid : '0e11e39a-3329-4cdd-820f-6f904480b5f1'}

running test_template_tags.py
executing /usr/local/bin/nosetests --with-xunit --xunit-file=/marvin/MarvinLogs/test_template_tags.py.xml --with-marvin --marvin-config=/marvin/pr4362-t2092-kvm-centos7-advanced-cfg --hypervisor=kvm -s -a tags=advanced tests/component/test_template_tags.py

==== Marvin Init Started ====

=== Marvin Parse Config Successful ===

=== Marvin Setting TestData Successful===

==== Log Folder Path: /marvin/MarvinLogs/Sep_17_2021_11_08_00_IQNIPQ All logs will be available here ====

=== Marvin Init Logging Successful===

==== Marvin Init Successful ====
=== TestName: test_01_update_template_tags | Status : SUCCESS ===

=== TestName: test_02_register_template_with_tags | Status : SUCCESS ===

I created a template with no tag
I have two hosts
one host as no tags
the other one has a tag "none"
I deploy a VM
result:

2021-09-17 11:26:32,657 DEBUG [c.c.a.ApiServlet] (qtp769798433-15:ctx-9d0ad7da) (logid:30c456f4) ===START===  <IP_ADDRESS> -- GET  jobId=f29d9a58-fd07-4186-bc85-ea2cc60ac1f3&command=queryAsyncJobResult&response=json
2021-09-17 11:26:32,661 DEBUG [c.c.a.ApiServer] (qtp769798433-15:ctx-9d0ad7da ctx-89672168) (logid:30c456f4) CIDRs from which account 'Acct[e423f3e7-16f6-11ec-a2d3-1e00b900043d-admin] -- Account {"id": 2, "name": "admin", "uuid": "e423f3e7-16f6-11ec-a2d3-1e00b900043d"}' is allowed to perform API calls: <IP_ADDRESS>/0,::/0
2021-09-17 11:26:32,669 DEBUG [c.c.a.ApiServlet] (qtp769798433-15:ctx-9d0ad7da ctx-89672168) (logid:30c456f4) ===END===  <IP_ADDRESS> -- GET  jobId=f29d9a58-fd07-4186-bc85-ea2cc60ac1f3&command=queryAsyncJobResult&response=json
2021-09-17 11:26:32,670 DEBUG [c.c.r.ResourceLimitManagerImpl] (API-Job-Executor-47:ctx-5239873f job-69 ctx-448d1fc4) (logid:f29d9a58) Updating resource Type = volume count for Account = 2 Operation = decreasing Amount = 1
2021-09-17 11:26:32,673 DEBUG [c.c.r.ResourceLimitManagerImpl] (API-Job-Executor-47:ctx-5239873f job-69 ctx-448d1fc4) (logid:f29d9a58) Updating resource Type = primary_storage count for Account = 2 Operation = decreasing Amount = (50.00 MB) 52428800
2021-09-17 11:26:32,680 WARN  [c.c.a.AlertManagerImpl] (API-Job-Executor-47:ctx-5239873f job-69 ctx-448d1fc4) (logid:f29d9a58) alertType=[8] dataCenterId=[1] podId=[null] clusterId=[null] message=[Failed to deploy Vm with Id: 7, on Host with Id: null].
2021-09-17 11:26:32,683 WARN  [c.c.a.AlertManagerImpl] (API-Job-Executor-47:ctx-5239873f job-69 ctx-448d1fc4) (logid:f29d9a58) No recipients set in 'alert.email.addresses', skipping sending alert with subject: Failed to deploy Vm with Id: 7, on Host with Id: null and content: Failed to deploy Vm with Id: 7, on Host with Id: null
2021-09-17 11:26:32,685 DEBUG [c.c.r.ResourceLimitManagerImpl] (API-Job-Executor-47:ctx-5239873f job-69 ctx-448d1fc4) (logid:f29d9a58) Updating resource Type = user_vm count for Account = 2 Operation = decreasing Amount = 1
2021-09-17 11:26:32,689 DEBUG [c.c.r.ResourceLimitManagerImpl] (API-Job-Executor-47:ctx-5239873f job-69 ctx-448d1fc4) (logid:f29d9a58) Updating resource Type = cpu count for Account = 2 Operation = decreasing Amount = 1
2021-09-17 11:26:32,692 DEBUG [c.c.r.ResourceLimitManagerImpl] (API-Job-Executor-47:ctx-5239873f job-69 ctx-448d1fc4) (logid:f29d9a58) Updating resource Type = memory count for Account = 2 Operation = decreasing Amount = 512
2021-09-17 11:26:32,699 ERROR [c.c.a.ApiAsyncJobDispatcher] (API-Job-Executor-47:ctx-5239873f job-69) (logid:f29d9a58) Unexpected exception while executing org.apache.cloudstack.api.command.admin.vm.DeployVMCmdByAdmin
com.cloud.utils.exception.CloudRuntimeException: No suitable host found for follow compute offering tags:
        at com.cloud.host.dao.HostDaoImpl.findHostByComputeOfferings(HostDaoImpl.java:1255)
        at com.cloud.host.dao.HostDaoImpl.listByHostTag(HostDaoImpl.java:770)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at com.cloud.utils.db.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:34)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
        at com.sun.proxy.$Proxy46.listByHostTag(Unknown Source)
        at com.cloud.agent.manager.allocator.impl.FirstFitAllocator.allocateTo(FirstFitAllocator.java:177)
        at com.cloud.agent.manager.allocator.impl.FirstFitAllocator.allocateTo(FirstFitAllocator.java:106)
        at com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator.allocateTo(FirstFitRoutingAllocator.java:41)
        at com.cloud.deploy.DeploymentPlanningManagerImpl.findSuitableHosts(DeploymentPlanningManagerImpl.java:1541)
        at com.cloud.deploy.DeploymentPlanningManagerImpl.checkClustersforDestination(DeploymentPlanningManagerImpl.java:1212)
        at com.cloud.deploy.DeploymentPlanningManagerImpl.planDeployment(DeploymentPlanningManagerImpl.java:539)
        at org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl.reserveVirtualMachine(VMEntityManagerImpl.java:203)
        at org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl.reserve(VirtualMachineEntityImpl.java:202)
        at com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:5090)
        at com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:4617)
        at com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:4606)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

not sure if these are new, but I see a number of
021-09-17 11:24:09,054 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-43:ctx-e44070b0 job-65) (logid:97bfaefa) Complete async job-65, jobStatus: FAILED, resultCode: 530, result: org.apache.cloudstack.api.response.ExceptionResponse/null/{"uuidList":[],"errorcode":"431","errortext":"Invalid resource type: Host"}

as well
i'll update with more logs if i find out more.

follow up:
when I remove the tag from the host the template still won't deploy.
setting the tag "none" onboth the template and one of the hosts, the deploy proceeds, and a VM ends out on the tagged host.
@ravening, can you look at my scenario, please?

follow up:
when I remove the tag from the host the template still won't deploy.
setting the tag "none" onboth the template and one of the hosts, the deploy proceeds, and a VM ends out on the tagged host.
@ravening, can you look at my scenario, please?

@DaanHoogland i will look into it and get back to you


lsdsng-export print song tempo

request to also show song tempo when -p is used

Sure, easy to add


Should this be a dev dependency?

Hello, thank you so much for project!
I was curious about whether this should be a dev-dependency or just a dependency.

Hi @xylarshayu
I think it depends on your rendering mode. If you use SSR, then I would say that it's part of your normal dependencies (as it's needed at runtime). If you just render your site in a static mode, then dev deps would be enough.


Ashleigh berghorst

trying something new

Hello,
It seems like these pull requests are getting pushed to my account (the original template and repo). This may be because whoever forked the repository may not have made it their own. Be sure this template is no longer associated with the original files since I cannot accept any changes to the original branch. This may mean cloning the repo or downloading the files to another repository to which I do not have access and that you all own.
All the best,
Professor Burnley
———————
Sandy Burnley, Ph.D. (she/her)
English Literature, Animal Studies, & DH
Assistant Professor in CIS, Dept. of Sociology
Michigan State University
<EMAIL_ADDRESS>“Michigan State University occupies the ancestral, traditional and contemporary lands of the Anishinaabeg – Three Fires Confederacy of Ojibwe, Odawa and Potawatomi peoples. The university resides on land ceded in the 1819 Treaty of Saginaw.”
On Dec 5, 2022, at 9:32 AM, Ashleigh E Berghorst<EMAIL_ADDRESS>wrote:
trying something new

You can view, comment on, or merge this pull request online at:
https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtNpbjBXS$
Commit Summary

6bca334https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/6bca33482f45597222b43a470dfef0265d66a0ed__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtPTdy4WA$ Update index.html
027ac9ehttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/027ac9e063f7d62450307074dfb5edec4c6327af__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtAnZSEXt$ Update index.html
31e0b59https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/31e0b59188d125c168f8594ab079f80b4e50f007__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtL2NPevc$ Merge pull request #2 from Iss210-001-Group-6/Marley-Haeberle
5716150https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/57161505b78689dfc6a83b05e9200998b8ff9269__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtDlrqWpB$ Update index.html
11d219chttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/11d219c208bd3b59d35d42ea2b4aa5f0ba383647__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtHriY1W2$ Update index.html
a9010cehttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/a9010cef5904ae71bbd440cd4ea0afab87342fac__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtCbPHE21$ Update index.html

File Changes
(1 filehttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/files__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtCcVanYr$)

M index.htmlhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/files*diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051__;Iw!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtMSCcW-1$ (10)

Patch Links:

https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.patchhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.patch__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtB83TTiH$
https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.diffhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.diff__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtH_y6MRI$

—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtNpbjBXS$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AMLOHU6JHRMXIMYVOUK2YNDWLX4G3ANCNFSM6AAAAAASULATDQ__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtOc5Q5hJ$.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Oops! I'm so sorry! Thanks for letting me know!

From: Sandy-Burnley @.>
Sent: Monday, December 5, 2022 12:00 PM
To: Sandy-Burnley/ISS210FinalTemplate @.>
Cc: Berghorst, Ashleigh @.>; Author @.>
Subject: Re: [Sandy-Burnley/ISS210FinalTemplate] Ashleigh berghorst (PR #10)
Hello,
It seems like these pull requests are getting pushed to my account (the original template and repo). This may be because whoever forked the repository may not have made it their own. Be sure this template is no longer associated with the original files since I cannot accept any changes to the original branch. This may mean cloning the repo or downloading the files to another repository to which I do not have access and that you all own.
All the best,
Professor Burnley
———————
Sandy Burnley, Ph.D. (she/her)
English Literature, Animal Studies, & DH
Assistant Professor in CIS, Dept. of Sociology
Michigan State University
<EMAIL_ADDRESS>“Michigan State University occupies the ancestral, traditional and contemporary lands of the Anishinaabeg – Three Fires Confederacy of Ojibwe, Odawa and Potawatomi peoples. The university resides on land ceded in the 1819 Treaty of Saginaw.”
On Dec 5, 2022, at 9:32 AM, Ashleigh E Berghorst<EMAIL_ADDRESS>wrote:
trying something new

You can view, comment on, or merge this pull request online at:
https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtNpbjBXS$
Commit Summary

6bca334https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/6bca33482f45597222b43a470dfef0265d66a0ed__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtPTdy4WA$ Update index.html
027ac9ehttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/027ac9e063f7d62450307074dfb5edec4c6327af__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtAnZSEXt$ Update index.html
31e0b59https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/31e0b59188d125c168f8594ab079f80b4e50f007__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtL2NPevc$ Merge pull request #2 from Iss210-001-Group-6/Marley-Haeberle
5716150https://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/57161505b78689dfc6a83b05e9200998b8ff9269__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtDlrqWpB$ Update index.html
11d219chttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/11d219c208bd3b59d35d42ea2b4aa5f0ba383647__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtHriY1W2$ Update index.html
a9010cehttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/commits/a9010cef5904ae71bbd440cd4ea0afab87342fac__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtCbPHE21$ Update index.html

File Changes
(1 filehttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/files__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtCcVanYr$)

M index.htmlhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10/files*diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051__;Iw!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtMSCcW-1$ (10)

Patch Links:

https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.patchhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.patch__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtB83TTiH$
https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.diffhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10.diff__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtH_y6MRI$

—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtNpbjBXS$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AMLOHU6JHRMXIMYVOUK2YNDWLX4G3ANCNFSM6AAAAAASULATDQ__;!!HXCxUKc!0TrVpKxWk-d3e0emXUh1IVHUbD0Z1HZiG5e0rhFpw-I1tC4TidBsCHytWkaQ3Uvqe5cBa4rPHGo0Y01DtOc5Q5hJ$.
You are receiving this because you are subscribed to this thread.Message ID: @.***>
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/Sandy-Burnley/ISS210FinalTemplate/pull/10*issuecomment-1337732622__;Iw!!HXCxUKc!yTNqvFhUIxDQf56DbcEGGgRKhfonjLeaoNmY6J1pEmdPArEQSfAqeSFmyi4TOXDBnJAyKo3_geoqeu_LqGqF5vCE$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/A4N4ROHJGE4BFWGKIZ5262TWLYNTHANCNFSM6AAAAAASULATDQ__;!!HXCxUKc!yTNqvFhUIxDQf56DbcEGGgRKhfonjLeaoNmY6J1pEmdPArEQSfAqeSFmyi4TOXDBnJAyKo3_geoqeu_LqH1H3Ih5$.
You are receiving this because you authored the thread.Message ID: @.***>


numba.errors.RedefinedError: ... (step: analyzing bytecode) $const_0.5

Reporting a bug
Using Numba 0.48.0 with Python 3.7.6, running the script below:
import numba

@numba.njit()
def fun(a, b, c, d):
    return 0

@numba.njit()
def test():
    a = (0, 1)
    return fun(*a, +.5, 0) * fun(*a, 0, 0) + fun(*a, +.25, 0) * fun(*a, 0, 0)

if __name__ == '__main__':
    test()

results in the following error:
$ python3  bug.py
Traceback (most recent call last):
  File "bug.py", line 13, in <module>
    test()
  File "/usr/local/lib/python3.7/dist-packages/numba/dispatcher.py", line 409, in _compile_for_args
    error_rewrite(e, 'interpreter')
  File "/usr/local/lib/python3.7/dist-packages/numba/dispatcher.py", line 344, in error_rewrite
    reraise(type(e), e, None)
  File "/usr/local/lib/python3.7/dist-packages/numba/six.py", line 668, in reraise
    raise value.with_traceback(tb)
numba.errors.RedefinedError: Failed in nopython mode pipeline (step: analyzing bytecode)
$const_0.5

For the record, even shorter code to reproduce it:
import numba
@numba.njit(numba.float64())
def test():
    a = (0, 1)
    return fun(*a, +.5, 0) * fun(*a, 0, 0) + fun(*a, +.25, 0) * fun(*a, 0, 0)

Thanks for the report. Unfortunately this is a known bug, root cause is the same as https://github.com/numba/numba/issues/5243, PR https://github.com/numba/numba/pull/5351 fixes it and is scheduled for 0.49.0RC which will (hopefully) be generally available later this week.

Fixed by #5351, closing. Version 0.49.0* will ship with this.


demo/script-08.sh  is aws-cert/san.cnf  ever used client side?

Hi.
I see that /home/vagrant/aws-cert has a file san.cnf
It is created by root and later chowned to user vagrant
As far as I can tell this file is never used on the client, only on the server ?
(and then only for openssl in the setup phase, before tls.{key,crt} get moved to /ibm/cesShared/ces/s3-config/certificates/). Likewise the other key.* files are never needed on the client?
ie. I think that san.cnf can be removed from client side and therefore from /home/vagrant ?
Plus the other files in aws-cert - just the site public certificate is needed?.
As an aside, putting and chowning tls.key on the client as readable by the vagrant user must be a security hole too - isn't this the server's private key?!

Hi. I see that /home/vagrant/aws-cert has a file san.cnf It is created by root and later chowned to user vagrant
As far as I can tell this file is never used on the client, only on the server ? (and then only for openssl in the setup phase, before tls.{key,crt} get moved to /ibm/cesShared/ces/s3-config/certificates/). Likewise the other key.* files are never needed on the client?

Correct, only tls.crt is required client-side.

ie. I think that san.cnf can be removed from client side and therefore from /home/vagrant ? Plus the other files in aws-cert - just the site public certificate is needed?.

In theory yes, but we do not really have a "client-side" here as the node is both client and server. I prefer to leave the san.cnf and tls.csr there for inspection purposes.

As an aside, putting and chowning tls.key on the client as readable by the vagrant user must be a security hole too - isn't this the server's private key?!

Security is not a focus for this demo/trial system. But as the key is also copied to /ibm/cesShared/ces/s3-config/certificates I am OK with deleting that from the aws-cert directory.


Add Mistral AI extension

Based on the Claude extension, this one has been adapted to use Mistral's La Plateforme API, with help from an official Mistral team member.

Looks and works great! Thanks for submitting this.


Add support for querying player userinfo cvars in script

not merging this yet as this needs to use the new KeyValues class in launcher rather than just directly calling KeyValues::GetString

not merging this yet as this needs to use the new KeyValues class in launcher rather than just directly calling KeyValues::GetString

Should I convert to draft then maybe? ^^


helm init is not recognized

Output of helm version:
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-28T15:20:58Z", GoVersion:"go1.11", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:09:08Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
Kubeadm install on Centos 7.
On my mac 10.13.6, tried installing help using brew, then using binary. Also, tried the binary install on a Linux client. Helm init gives the same response on all, as if the 'init' is unrecognised.
$ helm init
The Kubernetes package manager
Common actions for Helm:

helm search:    search for charts
helm pull:      download a chart to your local directory to view
helm install:   upload the chart to Kubernetes
helm list:      list releases of charts

Environment variables:
+------------------+-----------------------------------------------------------------------------+
| Name             | Description                                                                 |
+------------------+-----------------------------------------------------------------------------+
| $XDG_CACHE_HOME  | set an alternative location for storing cached files.                       |
| $XDG_CONFIG_HOME | set an alternative location for storing Helm configuration.                 |
| $XDG_DATA_HOME   | set an alternative location for storing Helm data.                          |
| $HELM_DRIVER     | set the backend storage driver. Values are: configmap, secret, memory       |
| $HELM_NO_PLUGINS | disable plugins. Set HELM_NO_PLUGINS=1 to disable plugins.                  |
| $KUBECONFIG      | set an alternative Kubernetes configuration file (default "~/.kube/config") |
+------------------+-----------------------------------------------------------------------------+
Helm stores configuration based on the XDG base directory specification, so

cached files are stored in $XDG_CACHE_HOME/helm
configuration is stored in $XDG_CONFIG_HOME/helm
data is stored in $XDG_DATA_HOME/helm

By default, the default directories depend on the Operating System. The defaults are listed below:
+------------------+---------------------------+--------------------------------+-------------------------+
| Operating System | Cache Path                | Configuration Path             | Data Path               |
+------------------+---------------------------+--------------------------------+-------------------------+
| Linux            | $HOME/.cache/helm         | $HOME/.config/helm             | $HOME/.local/share/helm |
| macOS            | $HOME/Library/Caches/helm | $HOME/Library/Preferences/helm | $HOME/Library/helm      |
| Windows          | %TEMP%\helm               | %APPDATA%\helm                 | %APPDATA%\helm          |
+------------------+---------------------------+--------------------------------+-------------------------+
Usage:
helm [command]
Available Commands:
completion  Generate autocompletions script for the specified shell (bash or zsh)
create      create a new chart with the given name
dependency  manage a chart's dependencies
env         Helm client environment information
get         download extended information of a named release
help        Help about any command
history     fetch release history
install     install a chart
lint        examines a chart for possible issues
list        list releases
package     package a chart directory into a chart archive
plugin      install, list, or uninstall Helm plugins
pull        download a chart from a repository and (optionally) unpack it in local directory
repo        add, list, remove, update, and index chart repositories
rollback    roll back a release to a previous revision
search      search for a keyword in charts
show        show information of a chart
status      displays the status of the named release
template    locally render templates
test        run tests for a release
uninstall   uninstall a release
upgrade     upgrade a release
verify      verify that a chart at the given path has been signed and is valid
version     print the client version information
Flags:
--add-dir-header                   If true, adds the file directory to the header
--alsologtostderr                  log to standard error as well as files
--debug                            enable verbose output
-h, --help                             help for helm
--kube-context string              name of the kubeconfig context to use
--kubeconfig string                path to the kubeconfig file
--log-backtrace-at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
--log-dir string                   If non-empty, write log files in this directory
--log-file string                  If non-empty, use this log file
--log-file-max-size uint           Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
--logtostderr                      log to standard error instead of files (default true)
-n, --namespace string                 namespace scope for this request
--registry-config string           path to the registry config file (default "/Users/prXX/Library/Preferences/helm/registry.json")
--repository-cache string          path to the file containing cached repository indexes (default "/Users/prXX/Library/Caches/helm/repository")
--repository-config string         path to the file containing repository names and URLs (default "/Users/prXX/Library/Preferences/helm/repositories.yaml")
--skip-headers                     If true, avoid header prefixes in the log messages
--skip-log-headers                 If true, avoid headers when opening log files
--stderrthreshold severity         logs at or above this threshold go to stderr (default 2)
-v, --v Level                          number for the log level verbosity
--vmodule moduleSpec               comma-separated list of pattern=N settings for file-filtered logging
Use "helm [command] --help" for more information about a command.

Helm init has been removed from helm 3.0 :-). You don't need it anymore. There is no more Tiller and the client directories are initialised automatically when you start using helm.

I get that it has been removed by when I do a helm list I got no charts listed

did you install those charts into a namespace other than default or what your current kube context is pointing at?
You can use helm list --namespace foo to list charts installed in that particular namespace, and helm list --all-namespaces to get a global view of the cluster (assuming you have cluster admin privileges).
More info here: https://helm.sh/docs/faq/#release-names-are-now-scoped-to-the-namespace

don't need it anymore.

In official site need update documentation, use the helm init there.(

Can you point out where it’s listed in the docs? We can make edits to that section if necessary. Thanks.

Just bumped myself on this too; here's where init is listed in the docs signifying it's part of 3.x  https://helm.sh/docs/helm/helm_init/ (found via the left-nav under Helm Commands)

thanks. We'll go ahead and remove that from the documentation.

Hey @bacongobbler I went ahead and tried my hand at a PR to resolve this: https://github.com/helm/helm-www/pull/484
Hopefully crossed all the ts, no worries if this needs to be resolved differently.

Thanks @zackbrown. I went ahead and re-generated the whole documentation for the helm commands in helm/helm-www#485. There's a few more spots that were missing.

there are more docs talks about the helm init and Tiller

That is the Helm 2 documentation.


Improving layout of Why Build resume page.

Want to improve layout of "Why Build my resume with our Website?"  using CSS flexbox.
Demo what I want to do is attached .Also more effects will be added.
Assign this to me!!

Ok, Will Review.


Missing features

Hi @igrr
Recently found this repo and was hoping it would be part for the solution for a burning need as identified in https://github.com/espressif/esp-dev-kits/issues/99
Whilst all the support for a basic RFC2217 session is there, the support required to enable remote UART flashing an ESP32 device is missing. Primarily the simulated control of DTR and RTS signals.
Any specific technical reason why this was omitted?

Hi @ammaree, controlling DTR and RTS signals is already possible with the existing API, just not demonstrated in the example.
To support remote flashing, RFC2217 server needs to detect the beginning of the DTR/RTS reset sequence, and instead of passing it on to the GPIOs, it needs to generate a precise enough reset sequence itself — something similar to what this code in esp_rfc2217_server is doing. I think this doesn't require changes in rfc2217-server component and can be implemented in the on_control callback of the application.
If I find some time to work on rfc2217-server component I'll add an example to flash an ESP chip remotely.

Hi @igrr thanks for the feedback.
The most important item for me to move forward is the DTR/DSR support. I have started adding it (simplistically) by toggling DSR & DTR pins as required, but obviously that will not be sufficient.
Another item I need to add is simultaneous support for at least 2 telnet sessions:
a) port 23 connection feeding HOST device CLI (as if from local UART); and
b) port 1023 connection feeding TARGET device CLI and flashing
Any suggestions on how to adapt your RFC2217 component to handle 2 simultaneous sessions in the most effective manner?

Could you please clarify what you mean by "HOST device CLI"? Does it mean simply forwarding the console logs of the rfc2217-server to the TCP port? Or is there an actual CLI with line editing, command prompt, etc?

We have an actual CLI on the Telnet RFC2217 HOST device, primarily used for Wifi configuration but also with significant debug capability.
What we would like to achieve with the first Telnet session is to remotely have access the CLI on the HOST device
The second Telnet session would be used to "passthrough" commands to the CLI on the TARGET device as well as to reflash the TARGET device using the RFC2217 functionality


misspelled

Description
Huamn instead of Human
(Optional:) Please add any files, screenshots, or other information here.
No response
(Required) What is this issue most closely related to? Select one.
Choose One
Internal issue ID
7dae132b-8e0c-4ccd-a2ed-261db56fd5c8
Paper URL
https://arxiv.org/html/2402.14852v1
Browser
Safari/605.1.15
Device Type
Desktop

Well @MaximilianVW99 , the misspelling is made by the authors, see https://arxiv.org/abs/2402.14852v1.
So this is not a bug of the HTML renderer.


Change 'assert' handle to pass only upon boolean true is received

LGTM, but please fix the spaces

@zherczeg, I've added spaces before each left parenthesis that follows a letter, in changed files from tests/jerry-test-suite.

Good to me.

Please fix precommit, before merge.

Please fix precommit, before merge.

@egavrin, of course. All merges should be performed only if precommit passes successfully.


[Roadmap]Superset proposed feature roadmap 2021-2022

Dear Superset users,
Thanks to all your support, feedback, and patience, we successfully launched Superset v1.0 last month. As our development team is working hard on polishing the product to provide the best user experience, we want to think ahead of the future and next milestone of Superset.
We put together some proposed feature roadmap items in (https://docs.google.com/spreadsheets/d/1V82lxvWeWJK48o8S0OkeTnlL409DbtZSa9qTzdSHx6I/edit#gid=0) for Superset 2021-2022 development. It's now available for everyone to review and comment.
If ☝that's too much to digest, we also set up a feature upvote page for you to help us prioritize.
----> https://superset.hellonext.co/
Please let us know the most important features to you and your organization by upvoting them.
Note: the upvote list is only a subset of the complete proposed list. It does not include projects already in development.

The steps we took

Scape entire repo issues, mark issues that are feature requests
Categorize the ones that are aligned with Superset long-term product vision, mark committed
Classify all the committed items by user persona and product area with a defined theme and goal
Set priority based on items' impact level, motivation, risk, project size, and type
Open the discussion to the Superset development team(PMC and committer) to collect feedback
Adjust based on the first round of feedback
Open the discussion to bigger Superset community (Current stage)

We will keep the google sheet and upvote list open for discussion for a week before iterating on them.

If the feature you want is missing from the lists
If you want to take on ownership or contribute to any of these items
If you disagree with any details stated in the sheet
please feel free to leave your comment here ⬇

Thanks again for choosing Superset as your BI tool~ 😉

Hi, thanks for openly providing your roadmap. It looks great !
I cannot find anywhere our number 1 missing feature : a widget of templated markdown text, where values are inserted from a SQL query. "big number" widget is good, but we need more dense information widget and we love markdown, but it has to be dynamic !
Sidenote : hellonext requires read AND write access to github repos, as well as full personal info access, which is a big NO-NO !

Sidenote : hellonext requires read AND write access to github repos, as well as full personal info access, which is a big NO-NO !

Thanks for you input and reasonable concerns. There are alternate authentication methods for HelloNext if you'd rather not use Github auth. HelloNext voting is also quite optional. If you want to side-step HelloNext, I don't see why you couldn't make a bullet list of +1s and paste it here.

I cannot find anywhere our number 1 missing feature : a widget of templated markdown text, where values are inserted from a SQL query. "big number" widget is good, but we need more dense information widget and we love markdown, but it has to be dynamic !

Hi @vpicavet, thanks for requesting feature.  I tried to search but did not find anything.
There are a few reasons why any particular item are not included in the roadmap item list.

This has not been highly requested by the community 2) The use case and values are not clear 3) It may not perfectly aligned with the product vision
If this feature is important to you and your org, please do provide more info. Now your comment is in the public, hopefully it will gain more visibility for people to vote it up by replying to the thread.

Sidenote : hellonext requires read AND write access to github repos, as well as full personal info access, which is a big NO-NO !

As @rusackas mentioned. Connecting to user's Github account is only one way to sign-in, or you can simply comment in the roadmap sheet. From the product standpoint, we do need to ensure the quality and uniqueness of each vote, which will evaluate the impact of implementing different roadmap items.
Thanks again for bringing up your request and concern.

Hello, thanks for your welcoming answers.
I did not filed a feature request yet, as I found the amount of issues filed recently quite overwhelming already, and was not sure something alike had not been filed before. But I will create an issue and try to be as descriptive as possible.
I added some comments on the Google sheet. I have no trouble with authentication for voters, but requiring write acess to repos and full personal info from hellonext sounds clearly like an abuse of power. As soon as there are other methods, it does not really matter, but I was surprised and wanted to let you know.
I will post the link to the feature request as soon as I fill it.

I checked through issues history and my need would be aligned with already proposed features, such as reviving the Markup Viz chart, or using Jinja2 templates, or a parameterized Markdown chart.
Even if it would prevent inserting dynamic images, something like a "Big card" chart would already be great, as I could generate the full text in SQL. Less convenient and no image though.
References :

Big card : https://github.com/apache/superset/issues/12516
Jinja2 support : https://github.com/apache/superset/issues/6771
Description of a totally similar need : https://github.com/apache/superset/issues/5747


use correct var for container name

This fixes clab exec when running against multiple nodes.
A wrong variable name was used.

thanks!


[Question] Location Lists

I am aware of actions.sel_to_qf.
Does a similar feature exist for location lists, or a config alteration I could make to do something similar?

It doesn’t exist currently but you can easily add a custom action that sends to the location list:
_G.my_action = function(selected, opts)
    -- code from `actions.file_sel_to_qf`
    local qf_list = {}
    for i = 1, #selected do
      local file = require'fzf-lua'.path.entry_to_file(selected[i])
      local text = selected[i]:match(":%d+:%d?%d?%d?%d?:?(.*)$")
      table.insert(qf_list, {
        filename = file.path,
        lnum = file.line,
        col = file.col,
        text = text,
      })
    end
    vim.fn.setloclist(qf_list)
    -- open the location list
    vim.cmd('lopen')
end

-- set as the default action for all files providers
require'fzf-lua'.setup {
  actions = {
    files = { ['default'] = _G.my_action }
  }
}

Thanks!
For anyone seeing this make sure to add a 0 as a first argument to setloclist, referring to the window number.

Thanks! For anyone seeing this make sure to add a 0 as a first argument to setloclist, referring to the window number.

Thanks for catching this, I copy pasted the code from actions.file_sel_to_qf and just change the API call without testing :-)
Edited my comment to refelect the correct usage of setloclist.

Out of curiosity, what does _G do here? What's the difference between using _G v/s local?

Out of curiosity, what does _G do here? What's the difference between using _G.my_action v/s local my_action?

You can’t call a local lua funcrion via :lua … unless it was exported as a module, using _G enables you to call it using :lua _G.<function>.
Personally I don’t use _G much, I prefer using modules and calling functions using their file name / module combination.

How do I create this as a new action instead of replacing the default one. I tried to add it as a new action to buffers using
require('fzf-lua').setup {
    actions = {
        buffers = { ["alt-l"] = _G.sel_to_ll }
    }
}

However it still ends up replacing the default action ([https://github.com/kshenoy/dotfiles/blob/cb525d781d8fe19db52a06f346fafc0e7c184d0b/nvim/lua/packages.lua#L168-L197](link to dotfiles))

How do I create this as a new action instead of replacing the default one. I tried to add it as a new action to buffers using
require('fzf-lua').setup {
    actions = {
        buffers = { ["alt-l"] = _G.sel_to_ll }
    }
}

However it still ends up replacing the default action (link to dotfiles)

Which provider action did you you wish to replace, what you posted above is only for buffer related providers (buffers, lines, blines, etc), what does F1 (help) show for alt-l?

I was trying to add it as a new action and not replace an existing action. The use case being that I search for lines in the buffer, select what I want and press alt-l to send the selection to the location list.
This is what F1 shows me when I run FzfLua BLines:

Seems the new definition is there, you can see the custom function under alt-l, you need to debug the function by adding print statements for see what goes wrong.

These are the actions for BLines when I don't add my function as an action:

Comparing with the previous screenshot (BLines with sel_to_ll enabled), the ctrl-s, ctrl-v and ctrl-t actions are missing.
Also, these are the actions for Buffers with sel_to_ll enabled:

Here you can see that the action to edit the buffer is missing. It looks like the new function is replacing the default actions of the buffer providers. After a little digging I found this in lua/fzf-lua/init.lua:
  -- do not merge, override the bind tables
  for t, v in pairs({
    ['keymap']  = { 'fzf',   'builtin' },
    ['actions'] = { 'files', 'buffers' },
  }) do
    for _, k in ipairs(v) do
      if opts[t] and opts[t][k] then
        globals[t][k] = opts[t][k]
      end
    end
  end

Commenting out the above code results in the new action being appended to all the other actions. What is the reason for not merging actions for files and buffers?

What is the reason for not merging actions for files and buffers?

The reason is that binds are very personal, for example, some users are used to ctrl-x for split (as opposed to ctrl-s), in this case, merging would require to set the ctrl-s to false.
Since you only set default actions once for all providers it’s not a big deal to copy the default actions and set this up to your liking.
If you set an action for a single provider (I.e just for blines) the default actions (even your custom ones will get merged), together that gives a lot of flexibility IMHO.

However it still ends up replacing the default action

I apologize I misunderstood your issue as “my custom action isn’t working” as opposed to “my default actions” disappear - in your case just copy the default actions you wish to use to the default table or if you wish to set this up only for blines you can do it under blines.actions to avoid having to copy the default actions.

Hmm, my end goal was to add this as a default action wherever set_to_qf is available as an action. I'll do this locally but it would be a lot easier if you support this out of box. Would you consider doing so?

@kshenoy - https://github.com/ibhagwan/fzf-lua/commit/d59bc583287b8925d044ffb139920da5e21a16b3 introduces 2 new actions file_sel_to_ll and buffer_sel_to_ll sending selection to the location list, default bind is alt-l.

Haha, that’s great. Thanks! :D


Android - Adreno - Model not responding initially for few seconds

When loading a glb model (~6.5K entites) there's an initial lag for ~10 seconds before the model responds to touch events.  This happens only on Adreno GPUs, even on the recent top end device (tested on OnePlus Open / S23 Ultra / S23+).
Since the lag is closer to 10 seconds, users exit the screen thinking that app is not responding.  Is there a workaround for this?  Currently we set the zoom level to -1 which takes the camera closer to the model so frustum culling helps there - the lag is lesser but still long enough to think that app is frozen
To Reproduce
Steps to reproduce the behavior:

Load a larger model in any adreno device
Observe model is not responding for ~10 seconds
After the initial lag, model responds to touch events without a lag

Screenshots
Here is the recording of sample-gltf-viewer app running on S23,
https://drive.google.com/file/d/1JKu4lqXT_lMD2UpiTx3as6v2LmB3hXBM/view?usp=sharing
Logs
I see the panic log, but it appears on Mali devices too which don't have this initial lag issue,
in HandleBase::HandleId filament::backend::HandleAllocator<32, 64, 136>::allocateHandleSlow(size_t) [P0 = 32, P1 = 64, P2 = 136]:128

Smartphone (please complete the following information):
Samsung S23 FE / Android 15
Additional context
Tested on recent commit

I would have to look into it with systrace. can you share your glb model with us? If not publicly could you share it privately?

Is this different from #8028 ?

Is this different from #8028 ?

It may be related.  In 8028, larger models (like 10K+) don't even load on Adreno devices but they load just fine on Mali.  In this issue, relatively smaller models (7K) render on Adreno but not responsive for the ~10 seconds.  After that interaction becomes a lot smoother (no lag at all).  This initial lag issue happens very consistently.
Shared the google drive link privately with you

We had issues in our engine with some Mali drivers (G76) behaving like there is a mutex in the driver when compiling shaders so we had to implement a multiprocess solution for this. Not for Adreno though.


Real life analysis: Yarn's loader

Cf https://github.com/nodejs/loaders/issues/19#issuecomment-885932581
I was in vacation at the time of the past meetings (and I needed some time to ramp up on our implementation, since I didn't write it myself), but I'd be available for the next one if you're still interested. Note that I can't add the loaders-agenda tag myself.
In the meantime, if you want to take an early peek, those are the two most relevant files from the implementation:

https://github.com/yarnpkg/berry/blob/merceyz/esm-loader/packages/yarnpkg-pnp/sources/esm-loader/loader.ts
https://github.com/yarnpkg/berry/blob/merceyz/esm-loader/packages/yarnpkg-pnp/sources/loader/nodeUtils.ts

@arcanis would you be interested in joining the loaders group? Then you’d have access to things in this repo, like adding labels.

Thanks for the offer! I'm not sure I'll be able to attend every meeting but I'd be happy to try 👍


Android Settings Disappeared

Following the setup of Android, the "Android Preferences" item within FydeOS Settings has disappeared.
I can open the Android "Settings" app manually, by right clicking an Android app, selecting "App info", and then navigate through the sections. I can then pin the app to the taskbar.
However, on reboot, the pin disappears, and it isn't available in the app drawer.
The built-in app "Android" (which takes me to the Android "Settings" app) no longer works.
Any help will be appreciated.

This project does not concern FydeOS. Sorry mate, wrong place.

This project does not concern FydeOS. Sorry mate, wrong place.


Unit testing

First commit of working functions to branch sixtine-functions - see file prototype.py in commit 9b667a9

Tests written onto Sarah's branch but still have a few issues. The tests aren't finding the functions, think they are set to the parent class but can't find them in the daughter classes? Specifically there is a problem with the init file, need to import from pkmodel IV or SC.