How to run mulitple instances of Workermann?

Hi,
I have two AsyncTcpConnection which connect to different websockets. Both come from seperate parts of the application. They are independent of each other.
I can't run both processes at the same time. When I start the second whilest the first is running it will close down the first one.
When I then try to run the first process together with the second process I get the message: already running
Any idea how I can solve this?

Show your codes please.

Worker 1 which listens to Lbank Websockets:
<?php

namespace App\Models\Lbank;

use App\Models\Lbank\LbankExchange;
use App\Models\User;
use App\Notifications\Lbank\TelegramNotification;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;
use Workerman\Connection\AsyncTcpConnection;
use Workerman\Timer;
use Workerman\Worker;

class CloudWebsocket3
{
    public function run($action, $deamon)
    {
        $worker = new Worker();
        $worker->name = 'Lbank Websocket';

        global $argv;

        $argv[1] = $action;
        $argv[2] = $deamon == "on" ? '-d' : '';

        $worker->onWorkerStart = function () {
            printf("Connecting to Lbank websocket\n");
            Log::debug("Connecting to Lbank websocket");

            $ws_connection = new AsyncTcpConnection('ws://www.lbkex.net/ws/V2/');
            $ws_connection->transport = 'ssl';

            Timer::add(10, function () use ($ws_connection) {
                $randomStr = Str::random(64);
                $pingMessage = '{"action":"ping","ping":"' . $randomStr . '"}';

                $ws_connection->send($pingMessage);
                printf("Sent PING: %s\n", $pingMessage);
                Log::debug('Sent PING', ['message' => $pingMessage]);
            });

            $ws_connection->onConnect = function ($connection) {
                $subscribeKey = LbankExchange::getInstance()->fetch_subscribe_key();
                $message = '{"action":"subscribe","subscribe":"orderUpdate","subscribeKey":"' . $subscribeKey . '","pair":"all"}';

                $connection->send($message);
                printf("Subscribe: %s\n", $message);
                Log::debug('Subscribe', ['message' => $message]);
            };

            $ws_connection->onMessage = function ($connection, $data) {
                $dataObj = json_decode($data);

                if (property_exists($dataObj, 'SERVER') && (array) !empty($dataObj->orderUpdate)) {
                    printf("Recieved SERVER: %s\n", $data);
                    Log::debug('Recieved SERVER', ['message' => $data]);
                    $dataObject = json_decode($data);

                    // Don't send message for intermidate withdrawing state
                    if ($dataObject->orderUpdate->orderStatus !== 4) {
                        User::first()->notify(new TelegramNotification($data));
                    }
                }

                if (property_exists($dataObj, 'action') && $dataObj->action == 'ping') {
                    printf("Received PING: %s\n", $data);
                    Log::debug('Received PING', ['message' => $data]);

                    $pongMessage = '{"action":"pong","pong":"' . $dataObj->ping . '"}';
                    $connection->send($pongMessage);

                    printf("Sent PONG: %s\n", $pongMessage);
                    Log::debug('Sent PONG', ['message' => $pongMessage]);
                }

                if (property_exists($dataObj, 'action') && $dataObj->action == 'pong') {
                    printf("Received PONG: %s\n", $data);
                    Log::debug('Received PONG', ['message' => $data]);
                }
            };

            $ws_connection->onError = function ($connection, $code, $msg) {
                Log::debug('Connection Error', ['code' => $code, 'error' => $error]);
                echo "Code: $code\n";
                echo "Error: $msg\n";
            };

            $ws_connection->onClose = function ($connection) {
                Log::debug('Connection Closed', ['connection' => $connection]);
                echo "Connection closed\n";
                die();
            };

            $ws_connection->connect();
        };

        Worker::runAll();
    }
}

Worker 2 which listens to Bitmart WS:
<?php

namespace App\Models\Bitmart;

use App\Models\Bitmart\Helpers\CloudConfig;
use App\Models\Bitmart\Helpers\CloudUtil;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Workerman\Connection\AsyncTcpConnection;
use Workerman\Lib\Timer;
use Workerman\Worker;

class CloudWebsocket extends Model
{
    use HasFactory;

    protected $cloudConfig = null;
    protected $useLogin = false;
    protected $reconnectionEnabled = true;
    protected $reconnectionSubscribeParam = array();

    public function __construct(CloudConfig $cloudConfig)
    {
        $this->cloudConfig = $cloudConfig;
        $this->reconnectionEnabled = true;
    }

    /**
     * First login, then send subscribe message then receive message
     * @param array $subscribeParam {"op": "subscribe", "args": ["spot/user/ticker:ETH_BTC"]}
     * @param func $callback Receive message, callback function
     */
    public function subscribeWithLogin(array $subscribeParam, $callback, $action, $deamon)
    {
        $this->useLogin = true;
        $this->connection($subscribeParam, $callback, $action, $deamon);
    }

    /**
     * Send subscribe message and receive message
     * @param array $subscribeParam {"op": "subscribe", "args": ["spot/user/ticker:ETH_BTC"]}
     * @param func $callback Receive message, callback function
     */
    public function subscribeWithoutLogin(array $subscribeParam, $callback, $action, $deamon)
    {
        $this->connection($subscribeParam, $callback, $action, $deamon);
    }

    private function connection($subscribeParam, $callback, $action, $deamon): void
    {
        $subscribeParam = json_encode($subscribeParam);

        array_push($this->reconnectionSubscribeParam, $subscribeParam);

        $worker = new Worker();
        $worker->name = 'Bitmart Websocket';

        global $argv;

        $argv[1] = $action;
        $argv[2] = $deamon == "on" ? '-d' : '';

        $worker->onWorkerStart = function ($worker) use ($subscribeParam, $callback) {

            echo ("[websockets] Connecting to " . $this->cloudConfig->url . PHP_EOL);
            $ws_connection = new AsyncTcpConnection($this->cloudConfig->url);
            $ws_connection->transport = 'ssl';

            // Keep-AliveAsyncTcpConnection
            Timer::add(10, function () use ($ws_connection) {
                $ws_connection->send("ping");
            });

            $ws_connection->onConnect = function ($connection) use ($subscribeParam) {
                if ($this->useLogin) {
                    $loginParam = $this->createLoginParam();
                    if ($this->cloudConfig->xdebug) {
                        echo ("[websockets] Send:" . $loginParam . PHP_EOL);
                    }
                    $connection->send($loginParam);

                    sleep(2); // wait login successful
                }
            };

            $ws_connection->onMessage = function ($connection, $data) use ($callback, $subscribeParam) {
                if ($data == "pong") {
                    return;
                }

                if (!str_starts_with($data, "{")) {
                    $data = gzinflate($data);
                }

                if ($this->cloudConfig->xdebug) {
                    echo ("[websockets] Recv:" . $data . PHP_EOL);
                }

                $data = json_decode($data, true);
                call_user_func_array($callback, array($data));

                if (isset($data["event"])) {
                    if ($data["event"] == "login" && isset($data["errorCode"])) {
                        $this->reconnectionEnabled = false;
                        $connection->cancelReconnect();
                        echo "[websockets] Close. Reason: login failed......" . PHP_EOL;
                    }

                    if ($data['event'] == "login") {
                        if ($this->cloudConfig->xdebug) {
                            echo ("[websockets] Send:" . $subscribeParam . PHP_EOL);
                        }

                        $totalAmountOfTopic = count(json_decode($subscribeParam)->args);

                        if ($totalAmountOfTopic > 20) {
                            $params = json_decode($subscribeParam);
                            $chunks = array_chunk($params->args, 2);

                            foreach ($chunks as $chunk) {
                                $subscribeParamChunked = json_encode($this->createChunkedSubscribeParam($chunk));
                                $connection->send($subscribeParamChunked);
                            }
                        } else {
                            $connection->send($subscribeParam);
                        }
                    }
                }
            };

            $ws_connection->onError = function ($connection, $code, $msg) {
                echo "Error: $msg" . PHP_EOL;
            };

            $ws_connection->onClose = function ($connection) {
                echo "[websockets] Connection closed" . PHP_EOL;

                if ($this->reconnectionEnabled) {
                    echo ("[websockets] Reconnecting to " . $this->cloudConfig->url . PHP_EOL);
                    $connection->reconnect(2);

                    if ($this->useLogin) {
                        $connection->send($this->createLoginParam());
                        sleep(2); // wait login successful
                    }

                    foreach ($this->reconnectionSubscribeParam as $key => $value) {
                        $connection->send($value);
                    }
                }
            };

            $ws_connection->connect();
        };

        Worker::runAll();
    }

    public function createLoginParam(): string
    {
        $timestamp = CloudUtil::getTimestamp();
        $sign = CloudUtil::signature($timestamp, "bitmart.WebSocket", $this->cloudConfig);

        return json_encode([
            'op' => "login",
            'args' => [$this->cloudConfig->accessKey, $timestamp, $sign]
        ]);
    }

    private function createChunkedSubscribeParam($chunk)
    {
        return   [
            'op' => "subscribe",
            'args' => $chunk
        ];
    }
}

Try set up a separate PID file for each process, like this.
Worker::$pidFile = '/var/run/CloudWebsocket3.pid';
$worker = new Worker();
....

Worker::$pidFile = '/var/run/CloudWebsocket.pid';
$worker = new Worker();
....

Try set up a separate PID file for each process, like this.
Worker::$pidFile = '/var/run/CloudWebsocket3.pid';
$worker = new Worker();
....

Worker::$pidFile = '/var/run/CloudWebsocket.pid';
$worker = new Worker();
....

Thanks for your reply. I am now able to run both processes at the same time.


I installed MMCV==1.4.8 but the dependencies of the program requires mmvc>=2.0.0rc4, <2.2.0

Thanks a lot to the authors for the wonderful work. I have some quick questions about the repo.
I had a problem when I want to begin training.It say that  MMCV==1.4.8 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0.
And I found that there is not mmcv>=2.0.0rc4, <2.2.0 based on torch1.7-cu110.I hope to hear from you,thank you.

Thanks a lot to the authors for the wonderful work. I have some quick questions about the repo. I had a problem when I want to begin training.It say that MMCV==1.4.8 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0. And I found that there is not mmcv>=2.0.0rc4, <2.2.0 based on torch1.7-cu110.I hope to hear from you,thank you.

Could you provide me with more information about this issue? For example, where and when does It say that MMCV==1.4.8 is used but incompatible?

Thanks a lot to the authors for the wonderful work. I have some quick questions about the repo. I had a problem when I want to begin training.It say that MMCV==1.4.8 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0. And I found that there is not mmcv>=2.0.0rc4, <2.2.0 based on torch1.7-cu110.I hope to hear from you,thank you.

Could you provide me with more information about this issue? For example, where and when does it say that MMCV==1.4.8 is used but incompatible?

When I want to retrain the model, i.e. when I run the tools/train.py file, I get the following error:No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8'
Traceback (most recent call last):
File "E:\LYJ\MCGaze-master\MCGaze-master\tools\train.py", line 17, in
from mmdet import version
File "C:\Users\Administrator\AppData\Roaming\Python\Python39\site-packages\mmdet_init_.py", line 16, in
assert (mmcv_version >= digit_version(mmcv_minimum_version)
AssertionError: MMCV==1.4.8 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0.

Thanks a lot to the authors for the wonderful work. I have some quick questions about the repo. I had a problem when I want to begin training.It say that MMCV==1.4.8 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0. And I found that there is not mmcv>=2.0.0rc4, <2.2.0 based on torch1.7-cu110.I hope to hear from you,thank you.

Could you provide me with more information about this issue? For example, where and when does it say that MMCV==1.4.8 is used but incompatible?

When I want to retrain the model, i.e. when I run the tools/train.py file, I get the following error:No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8' Traceback (most recent call last): File "E:\LYJ\MCGaze-master\MCGaze-master\tools\train.py", line 17, in from mmdet import version File "C:\Users\Administrator\AppData\Roaming\Python\Python39\site-packages\mmdet__init__.py", line 16, in assert (mmcv_version >= digit_version(mmcv_minimum_version) AssertionError: MMCV==1.4.8 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0.

@BmonsterYJ After you installed mmcv-full, did you run the commands below?
cd MCGaze
pip install -v -e .

I guess maybe there is some incompatibility (e.g., CUDA version, it seems that your CUDA version is 11.8, not 11.0). So please refer to the lastest branch of the MMCV installation documentation, then choose the correct command based on your actual environment.

If this is truly the cause, don't simply replace the old one; uninstall it first.
   pip uninstall mmcv
   pip uninstall mmdet

You can also refer to InstBlink to seek possible solutions.


#error "Eigen should not be used with Kokkos"

The following setup seems common enough:
set(SINGULARITY_USE_KOKKOS ON)
set(SINGULARITY_USE_KOKKOSKERNELS OFF)

Without kokkoskernels, the library defaults to using Eigen as the LA backend. However, in singularity-eos/closure/mixed_cell_models.hpp:123 there is
#error "Eigen should not be used with Kokkos"

My understanding is that Eigen + Kokkos is okay, but Eigen + Kokkos + CUDA is what should be avoided; if so, then the check should be for Eigen + CUDA, without reference to kokkos. In any event, we should clear up the configuration of when Eigen is used, and when it is not used and do this in the CMake configuration. The preprocessor line is then redundant.

This looks to be removed in main, closing.

Addressed build failures in !126, but not clear to me if this has been resolved.

:+1: Let's close the issue for now then and re-open if needed.


[Question]: sentence-spliter's randomness

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
hi,
i just wanna if the split-results of one specific sentence will be the same if we instantiated two sentence-spliter with the same initial-args ?
looking forward to your reply
best,

@guangyuli-uoe it should be the same? Is there a case where its not?


Alpha 1.0.3 crash and memory leak

After running the app for few hours, the program closes all connections and stops working. although it says all connections are closed, memory usage is still very high which I believe shows a serious memory leak.

I think the problem is from your server side.Bugs are fixed in the new version(alpha 1.0.4). Use the new version and report it if there is a problem.


Query graph to update node ip and alias

Implement methods to selectively get info about our peers from public routing graph if they stay disconnected for a long time for example (ip might have changed).

Fixed in release 2.4.20.


What are the requirements to make zoomToFit work on sap.suite.ui.commons.imageeditor.ImageEditor?

OpenUI5 version: 1.96
Browser/version (+device/version): Chrome 96
Any other tested browsers/devices(OK/FAIL):
URL (minimal example if possible):https://plnkr.co/edit/9GhXbOzuIqP6VxqS?preview

Hi @piejanssens ,
I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.
Regards,
Oliver

Helle @stoyanovski,
I managed to find a solution: https://plnkr.co/edit/utmABmSUy4Uoo1ps
Setting a fixed height on the FlexBox (HBox height="80vh" in my case) + patch the flexItem css:
  <style>
    .fixEditor .sapMFlexItem {
      flex: 1 1 auto !important
    }
    </style>

Hi colleague,
In the plunker, the ImageEditor is trying to fit into the height given in the HBox which is greater than the height of window. So try to lower the HBox height or make the window height to 100%.
Regards,
Keerthi G


Add release version in metadata for deployments

As we will have different instances on different versions it would be great to be able to display the version number somehow to allow us to be certain which version is being used if clients or the team discover bugs.

Attribution will can now be set on a locale allowing to specify what should be shown in the map control attribution.
This allows to set the XYZ attribution to include a version in the link text. The link itself can also use branch and or commit specifier.


Potential Code Injection Vulnerability

Code injection could happen via environment variable.
In code here, it directly eval the value from environment variable. A malicous local actor could set something like export WARM_CONTAINER='os.system("touch rickroll")' to execute arbitrary commands. It would be better to use  ast.literal_eval here.
For ref, this issue is similar to CVE-2022-2054.

Thanks for reporting @nevercodecorrect


Console error when attempting to load a non-existent Global Badge

Occurs when trying to load a global badge that does not exist in the dashboard e.g., /administrator/globalBadges/idonotexist

:+1:


[utfcpp] Use vcpkg_*_cmake and add features

This port provides CMakeLists.txt, switch to use cmake. Add feature sample and test.
Fixes #13495.
Test features successful on x86-windows, x64-windows and x64-windows-static.

CI failures look legitimate.

Thanks for your contribution!


Refine Examples in README

Provide an executable pipeline example
Explain how to access key-value pairs using artifacts provided by the resource

This developed example is very didactic, thanks for the contribution!


Papers100M model requirement

Description
Hi!
I'm doing some research with giant's code. I did make use of the embeddings of papers100M and arxiv, as well as the encoder model of the latter one, but it seemed that the encoder model of papers100M is not available right now. I wonder if you could publicize the model (maybe by offering the download method) ? That would be really helpful.
Thx!

Same question

The encoder for ogbn-papers100M dataset are available at [link]. Closing this issue. Feel free to re-open if you encounter any additional issue.


Vault Service

Change log

Add vault models and access patterns

Add vault service with storeVault and retrieveVault methods.

Tested the flows successfully from the space-daemon. Tested:

Storing vault

Retrieving vault

Failure when storing vault without JWT

Failure when retrieving vault with mismatching vsk.

Failure when storing vault with empty params.

Note
Needs merging #13 first, but used that branch as the base to only display the new stuff.

Merged in #17


expose RSVP.asap as public API

@krisselden  r?

can you merge?

releasing now

released as v3.5.0


Update minor comment in ERC721A.sol

Fix comment in _getApprovedSlotAndAddress that describes the assembly code.
It is equivalent to approvedAddress = _tokenApprovals[tokenId].value and not approvedAddress = _tokenApprovals[tokenId]

Nice catch! Thanks!


Add HidFastReadWrite classes

I tried to add them because of the need for the faster Write() methods.
(also mentioned in this comment)
The names may be a little ugly...

To be honest, I think the other solution with a single Boolean would be the simpler and I prefer it to the solution with HidFastRead classes.


updated version number to 5.5.2 Tanks to MihkelBaranov

I have resubmitted the changes that  MihkelBaranov  wants to merge here Remove lodash dependency in a new pull request: Feature/remove lodash dependency

Coverage remained the same at 91.228% when pulling 239626333dbbdb28165fb52b30c5086caee53e38 on luxcium:master into c6f1c3b8bb5407d2494dc82028366baa7638b0dc on szokodiakos:master.

Coverage remained the same at 91.228% when pulling 239626333dbbdb28165fb52b30c5086caee53e38 on luxcium:master into c6f1c3b8bb5407d2494dc82028366baa7638b0dc on szokodiakos:master.

also updated coveralls to reset the cached image from 87% to 91%

@szokodiakos, @Ben305 and other working on this project...  Just a quick message to let you know I installed and configured TSLint + Prettier and EditorConfig. I use VS Code  with Prettier - Code formatter by @esbenp (Esben Petersen)  and with integrated TSLint by Microsoft (along with EditorConfig for VS Code) by @jedmao, @chrisdias, @SamVerschueren, @alexandrudima and by @EditorConfig team ... I updated .vscode/settings.json and .editorconfig accordingly to work with .prettierrc and tslint.json files to auto fix errors in VS Code. Let me know what you think of the new work flow ...

@luxcium Please keep pull requests clean, don‘t mix multiple things. If this is a PR that increases the Version number, it should only contain those changes. Please also rebase on master.
I‘d like to keep the commit history clean and straight forward b

@luxcium Please keep pull requests clean, don‘t mix multiple things. If this is a PR that increases the Version number, it should only contain those changes. Please also rebase on master.
I‘d like to keep the commit history clean and straight forward b

the previously committed changes are here twice how should I remove them ?
can you approuve this merge regardless or do I have to change something ?

@Ben305 also if those changes are accepted it include the pull request #74 by
@Omegahorus to: make all properties writable in class  if you accept mine you should remove the other

@Ben305 I am trying to separate the stuff and will resubmit a new pull request


Float parser: allow implicit exponentiation sign

Currently, something like 1e7 would fail the float parser where it could be interpreted as 1e+7. FWIW, JavaScript allows 1e7 so it would be nice to have this baked into the standard parser.

Done! Thank you!
https://github.com/GregRos/parjs/commit/70b57be1a5b37db76d87606ce45d427f25fb781e


[BEAM-11574] Enable cross-language integration tests on Dataflow

Contains a variety of small changes needed to enable cross-language tests to work on Dataflow. Here's a list of changes:

Allow running pipelines with portable job submission (required for x-lang transforms).
Allow submitting Dataflow jobs with multiple environments.
Add SdkHarnessContainerImageOverrides flag to allow specifying overrides for multiple environments. This implementation works by calling the flag multiple times, once for each override.
Update the ValidatesRunner script to use the above functionality (portable submission and overrides) as well as uploading a Java SDK container for cross-language in addition to a Go SDK container.
Don't namespace environments in external transform expansion. This avoids bugs that occurred because an environment with an empty value was present in the final pipeline.
Skip fake impulse generation in external transform expansion. Something must have changed on the expansion service end, because this is no longer necessary, and was causing problems because the fake impulse wasn't getting properly removed.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Go PostCommit

Run Go PostCommit

Run GoPortable PreCommit

Run Go Flink ValidatesRunner

There's light discussion around the format of the override flag happening, but that's not a reason to block this change from getting in.


some design questions

Hi, saw the froscon restic talk and want to compare it to obnam which I'm currently using. I've some questions about the design. I'd have written this in a mailing list if there'd be one.?.
Why packfiles?
What is the advantage of having packfiles instead of mapping one backed up file to one blob file? In Git packfiles combine similar files and thus reduce storage size. But this is not the case with restic packfiles. I guess it's about avoiding the overhead of seeking to many small files?
How do you decide which files to combine into one packfile?
Why json?
Json as the format for index and tree files seems to be too verbose. Why not use a binary format here too? Or at least an ASCII based format like git trees?
What's in the content array in trees?
The design document says that the content field of a tree node "contains a list with one plain text SHA-256 hash". Shouldn't this rather say that it contains a list of chunk hashes? Otherwise where is the mapping from the plain text hash to the hashes of the content chunks?
Leaking content hashes?
It seems that an attacker with read access to the repository can find out, whether the repository contains the backup of a file with a certain SHA-256 hash if the data blob for this file is not contained in a pack. This could easily be avoided with "another layer of indirection" :-) by using arbitrary ids for the data blobs and encrypted index files that map hashes to data blobs. This would also allow to upgrade hash algorithms without the need to rewrite the whole repository.
why not use uuid for the repository id?
Git annex uses uuids for the repository ids too. This might not make any difference, just caught my eye.
version number might not be enough
Git annex also uses a version number to signal the features of a repository. In the end this is not enough and now it stores which features or configs are used in a particular repository.
https://git-annex.branchable.com/devblog/day_248__workload_tuning/
authenticated?
What does it mean, a blob is "authenticated"? Same for the pack header? Why is it necessary?
pack CRC over plaintext?
I understood the the MAC of data files is over the encrypted data. Thus the integrity can be checked without decrypting the data? In Pack files however the MAC is over the plain text? Why is this different. So one needs to decrypt the blobs in the pack file to verify them?
Explain Crypto algos
Please explain or link to explanations about the used encryption, hash and CRC algorithms. Especially the following seems to be needed to understand restic:

What's an initialization vector?
What's Poly1305-AES?
Of course I found good informations in the net, but maybe you could give a summary of the parts that are important in the context of restic.

gpg instead of password?
Wouldn't it be saver to use gpg to encrypt the keys files instead of just a user password? GPG can also encrypt to multiple recipients and thus a repository can be used from different machines with different GPG keys. Obnam does it that way.
Thank you for this interesting project! Good luck!

Hi,
thanks for your interest and questions, I'll try to answer them.

I'd have written this in a mailing list if there'd be one.?.

Yeah, there isn't one. I did use mailing lists years back, but found that most people are not able to. In addition, I felt like handling another channel too much work (besides the GitHub issues and the IRC channel). So there isn't one.

What is the advantage of having packfiles instead of mapping one backed up file to one blob file? In Git packfiles combine similar files and thus reduce storage size. But this is not the case with restic packfiles. I guess it's about avoiding the overhead of seeking to many small files?

Exactly. I started without pack files and measured that the overhead per blob (or small file) was huge, so pack files were introduced.

How do you decide which files to combine into one packfile?

First, that's not on the "file" level, but rather on the "blob" level. Archiving a file means splitting it into blobs (by means of the CDC, see this blog entry.
Afterwards, the blobs are collected and grouped into pack files as they come. There are a few rules (not more than 200 unfinished packs, where a pack is written to the repository and finished when it is between 4 and 16 MiB in size), you can find the code here: https://github.com/restic/restic/blob/master/repository/repository.go#L217

Json as the format for index and tree files seems to be too verbose. Why not use a binary format here too? Or at least an ASCII based format like git trees?

JSON was deliberately chosen because of it's verbosity and widespread use. I think that this helped in quite a few places during development. A custom format was out of the question, I didn't want having to write my own encoder/decoder, and JSON was readily available in the Go standard library.

What's in the content array in trees?

A file is split into blobs by the chunker (see blog article above) and these blobs are identified by their sha256 hash. So a file's content can be described by the list of sha256 hashes of the blobs it consists of. That's what in the content list is stored.

The design document says that the content field of a tree node "contains a list with one plain text SHA-256 hash". Shouldn't this rather say that it contains a list of chunk hashes?

In the example you're talking about a directory contained one file called testfile which consists of only one blob of data, identified by its sha256 hash. You can think of this as the "ID" of the chunk. I think the wording is appropriate here.

Otherwise where is the mapping from the plain text hash to the hashes of the content chunks?

The JSON structures always reference plaintext sha256 hashes (e.g. the hash of a blob of data, or the hash of the JSON representation of a tree). There is no explicit "mapping". In order to enable restic to find the plaintext blobs without having to download everything and re-calculating the sha256 hash, the list of plaintext hashes of the blobs in a pack is contained in the header of the pack. These are contained in turn in the index files.

It seems that an attacker with read access to the repository can find out, whether the repository contains the backup of a file with a certain SHA-256 hash if the data blob for this file is not contained in a pack.

I'd be very surprised if that's possible. The plaintext sha256 hashes contained in the index files and the pack file's header are both encrypted, so attackers who do not know the password cannot decrypt anything. Did you read that the header of the pack is encrypted by itself? Did I miss something?

This could easily be avoided with "another layer of indirection" :-) by using arbitrary ids for the data blobs and encrypted index files that map hashes to data blobs.

And this would also add a lot of unnecessary code complexity. I like to keep it simple where ever possible.

This would also allow to upgrade hash algorithms without the need to rewrite the whole repository.

When such a drastic change like replacing the hash algorithm is needed, I think it may be warranted to rewrite the whole repository. I don't think that this is necessary in the foreseeable future, so I decided again to keep it simple.

why not use uuid for the repository id?
Git annex uses uuids for the repository ids too. This might not make any difference, just caught my eye.

Yeah, it's entirely possible to use a uuid. But in most cases (and I suspect that it's the case for obnam too), random uuids are used. And what's the real difference to 32 random bytes, except the peculiar formatting (with the dashes)?

version number might not be enough
Git annex also uses a version number to signal the features of a repository. In the end this is not enough and now it stores which features or configs are used in a particular repository.

Restic will not be configurable in every detail, but provide sane defaults that will work almost all users instead. When at some point in the future we need a new format, we'll increase the version number (and keep it backwards compatible).

authenticated?
What does it mean, a blob is "authenticated"? Same for the pack header?

A blob is authenticated because its ciphertext is "signed" with a message authentication code (MAC), so restic can authenticate the ciphertext ("verify its signature").

Why is it necessary?

This is done so that no modified ciphertext is ever attempted to be decrypted or otherwise handled by complex functions. The restic threat model includes attackers that are able to modify files stored in the repository, and restic needs to be able to detect such tampering.

pack CRC over plaintext?

I don't know what you mean. CRC is not a replacement for a MAC, and CRC isn't used anywhere in restic.

I understood the the MAC of data files is over the encrypted data. Thus the integrity can be checked without decrypting the data?

Exactly.

In Pack files however the MAC is over the plain text? Why is this different. So one needs to decrypt the blobs in the pack file to verify them?

That's wrong. Pack files a are a concatenation of encrypted blobs and an encrypted header, that's it. If the contents of a blob is to be verified, restic indeed needs to download and hash it.

Explain Crypto algos
Please explain or link to explanations about the used encryption, hash and CRC algorithms. Especially the following seems to be needed to understand restic:
What's an initialization vector?
What's Poly1305-AES? Of course I found good informations in the net, but maybe you could give a summary of the parts that are important in the context of restic.

I'm sorry and I really don't mean to sound harsh, but this is not a crypto 101 course and the design document isn't there to explain basic crypto vocabulary. An IV is a standard concept in cryptography and for the MAC algorithm the paper by Bernstein is linked, this is enough.
If you are not familiar with such basic concepts as an IV, the restic design document is never able to teach you all the (subtle) things that you need to know. There great introductions out there, please read them.

gpg instead of password?
Wouldn't it be saver to use gpg to encrypt the keys files instead of just a user password? GPG can also encrypt to multiple recipients and thus a repository can be used from different machines with different GPG keys. Obnam does it that way.

I've deliberately decided to stay away from GnuPG, although I use it regularly. The user interface is plain bad for new users and hard to use the right way. In addition, this introduces complexity and a dependency that I'd like to avoid. When you're trying to restore a backup because your hard drive just failed, you wouldn't want to fiddle around with your gpg setup.
If your questions are answered, please close this issue.

I'll close this for now, if you have other questions feel free to add a comment to this issue :)


Multicall do not run in BSC TESTNET

I use muticall to call in bsc testnet with web3js but it cause a error Error: Returned error: execution reverted.
I am sure my contract address and ABI is correct because I am able to call this contract without muticall.

Could anyone tell me if I missed anything?

hey please post example

deployed new bsc testnet contract let me know if fixed closing for now


allow dialog return to be typed

This change allows users to specify the type of the return value from dialogs, in addition to the type of the data sent to the dialog. It should be backwards-compatible with all existing code, as the type is optional and defaults to {}, which is how things behave now.

@rapropos Thank you!


The autocomplete dropdown won't close

This problem has happened to me many times. When I click on a field and the autocomplete shows up, if I rapidly click on another request, the dropdown won't leave, no matter where I click. I either have to restart the application or click on one of the options, which will autocomplete the field and then I have to correct it.
This gif shows the problem: (I have added a white target to hide some sensitive URI from a public API.

Desktop (please complete the following information):

Windows 10 Pro 120.2212.31.0
Installation Method: exe file
App Version 2020.3.3

I've had this issue for a while too. Very difficult to deal with when it happens, requires a restart

Version: Insomnia Core 2020.5.2
Release date: 09/12/2020
OS: Windows_NT x64 10.0.17134
Electron: 9.1.1
Node: 12.14.1
V8: <IP_ADDRESS>-electron.0
Architecture: x64


Removed "the" from "VoiceOver" strings

Several instances of definite article before names, not used in English. Starting w/ VoiceOver which will draw most attention.

Fell free to merge it 😄

I think only you can merge? (write access)

Oh, didn't notice that,
I'll merge it, but thanks one more time for the contribution!


Lumberjack protocol seems to strip fields

(This issue was originally filed by @Mister-X- at https://github.com/elastic/logstash/issues/2843)

I'm doing some kind of log collector using logstash (not the forwarder since we won't collect logs from files) and forwarding all the logs to a central location for analysis. I am using Logstash 1.5RC2 from the debian package on Ubuntu 14.04.2 LTS 64 bit (on both sides)
Here is the configuration of the log collector (this is a test system, hence why it only has a single input):
input {
        syslog {
                port => 1514
                type => "syslog"
        }
}

filter {
        if [type] == "syslog" and [host] == "<IP_ADDRESS>" {
                mutate {
                        replace => [ "host", "<IP_ADDRESS>" ]
                }
        }
        mutate {
                add_field => {
                        "location" => "vmware"
                }
        }
}

output {
        lumberjack {
                hosts => "<IP_ADDRESS>"
                port => 6782
                ssl_certificate => "/etc/pki/tls/certs/logstash/server.crt"
        }
        file {
                path => "/var/log/logstash/output.log"
                codec => "rubydebug"
        }
}

and here is one log message I get from that output.log file:
{"message":"blah\n","@version":"1","@timestamp":"2015-03-17T19:54:58.000Z","type":"syslog","host":"<IP_ADDRESS>","priority":13,"timestamp":"Mar 17 12:54:58","logsource":"ubuntu","program":"user1","severity":5,"facility":1,"facility_label":"user-level","severity_label":"Notice","location":"vmware"}

And we can see that it is parsed correctly and the location field has been added.
On the other side, on the central system, fields from that log entry are stripped:
{"message":"2015-03-17T19:54:58.000Z <IP_ADDRESS> blah\n","@version":"1","@timestamp":"2015-03-17T19:54:58.255Z"}

Here is the config from that central system:
input {
        lumberjack {
                port => 6782
                ssl_certificate => "/etc/pki/tls/certs/logstash/server.crt"
                ssl_key => "/etc/pki/tls/private/logstash/server.key"
        }
}

output {
        elasticsearch { host => localhost }
        file {
                path => "/var/log/logstash/output.log"
                codec => "rubydebug"
        }
}

Based on a discussion I had on IRC in #logstash, it sounds like Lumberjack stripping all those fields is a bug.

This bug is currently burning me. It means I have to have separate ingestion ports depending on which client I'm using. I started poking at the lumberjack output plugin and I'm wondering the fix is really as easy as changing https://github.com/logstash-plugins/logstash-output-lumberjack/blob/master/lib/logstash/outputs/lumberjack.rb#L25
@client.write({ 'line' => payload })
to
 @client.write({ 'line' => payload }.merge(event.to_hash))
@jordansissel tell me whats wrong with that approach?

I think the solution here is to set codec => json for lumberjack output and for your input, and things should just work after that.
Can anyone confirm?

On 1.5.0 if you use tags with the json codec for input, logstash-forwarder fails with an EOF error:
logstash lumberjack json output -> logstash lumberjack json input works
logstash-forwarder -> logstash lumberjack json input fails
Using this config for logstash-forwarder:
{
  "network": {
    "servers": [ "localhost:9998" ],
    "ssl certificate": "./lumberjack.crt",
    "ssl key": "./lumberjack.key",
    "ssl ca": "./lumberjack.crt",
    "timeout": 15
  },
  "files": [
    {
      "paths": [
        "./messages"
      ],
      "fields": { "type": "syslog","tags": "foobar" }
    }
  ]
}

Using this config for logstash:
input {
   lumberjack {
       port => 9998
       ssl_certificate => "/home/msimos/logstash/lumberjack.crt"
       ssl_key => "/home/msimos/logstash/lumberjack.key"
       codec => json
       tags => [ "blah_logs" ]
   }

}
output {
  stdout {
    codec => rubydebug
  }
}

logstash-forwarder throws this error repeatedly:
2015/06/02 16:34:32.595952 Loading client ssl certificate: ./lumberjack.crt and ./lumberjack.key
2015/06/02 16:34:32.701675 Setting trusted CA from file: ./lumberjack.crt
2015/06/02 16:34:32.701860 Connecting to [<IP_ADDRESS>]:9998 (localhost)
2015/06/02 16:34:32.755777 Connected to <IP_ADDRESS>
2015/06/02 16:34:32.760652 Read error looking for ack: EOF
If you remove tags. It works fine.

Setting codec=json in both input and output solved this problem for me.   we had to add a second lumberjack input on a different port for it so that we didn't break regular lumberjack messages.

For now a workaround (possibly the correct step?) is to set codec => json here. Closing this with a known solution.

This is also a problem I had. adding codec => json to both the input and output made it work. I agree this should be documented somewhere. I spent awhile scratching my head trying to figure out why my logs were not being received when in reality they were there just not being caught by my filters because the [type] field was not detected. Glad i stumbled across this thread.

same thing here. This really should be in the documentation pages


storm-mesos versioning

@brndnmtthws @tnachen @DarinJ @dskarthick @jessicalhartog
I'm opening this issue to create a place for us to brainstorm and decide on a new versioning scheme for this project.
Current version scheme
The version is currently just directly set to the version of storm being "used".  Where used means:

included as build dependency of the java bits in this project
bundling of the storm binary bits into this project's resultant package

This unfortunately doesn't allow us to vary the version of this project as we make changes to the code that are independent of the storm version.
Simplistic storm-independent versioning
The first idea is to simply set the version at say 0.1.0 to start, and then we increment the version as we make changes to the code.  However, this limits us to having only ever 1 version of storm and mesos within a given "version" of the code.
Supporting multiple storm versions
Per this discussion in #68, we are planning to support multiple versions of storm from a given version of the code in this project.  This implies that we should be somehow tagging / naming / versioning the resultant package with the storm version used.
Supporting multiple mesos versions
We could also potentially build against multiple mesos versions, in case there are backwards incompatible changes.
Docker image versioning
I'm admittedly ignorant about Docker image versioning, but when I look at the builds on Dockerhub, I cannot even figure out what commit SHA the image was built from.  I feel like we can do better with the versioning there, ideally taking advantage of the conclusion of this discussion.
Proposal
Use maven classifiers and follow the maven artifact description scheme of suffixing the artifact description with the classifier string. Whoa that's a mouthful, let me give an example:
Basically, an example classifier could be:  storm0.9.6.  Then the artifact & resultant package could be called:

maven artifact: storm-mesos-0.1.0-storm0.9.6.jar
built package: storm-mesos-0.1.0-storm0.9.6.tar.gz

Then if we decided to start tweaking the mesos version as well, we could make this even longer:

built package: storm-mesos-0.1.0-storm0.9.6-mesos0.25.0.tar.gz

@erikdw I like maven artifact: storm-mesos-0.1.0-storm0.9.6.jar, it would really help with keeping track of framework version vs storm version.  I'm not certain I care about the Mesos version, but it wouldn't hurt.  I am pro making it an option in the build-release though as don't like editing poms much.
I don't mind making the changes in my PR as it will make it more coherent.  I submitted a WIP to facilitate the conversation.
Should we start at 0.1.0?

:+1: from me.
For the Docker automated builds, we can build automatically from tags and branches.

+1 for the maven artifact naming scheme, but my only concern is would this be troublesome since we have to maintain support for multiple versions of storm and mesos at a given point of time?
For example, the moment one of these deps become backward incompatible, then our code AND the build system will be complex. Hence, would it makes sense to support only one storm version with the latest release? Just thinking aloud

I'm in favor of the proposed:
storm-mesos-0.1.0-storm0.9.6-mesos0.25.0.tar.gz style naming because:
(1) Changes that are made to this project that are related to storm-version specifics may determine whether or not this project will run in a given setup (see PR #68 as an example)
(2) Changes that are made to this project that are related to mesos-version specific have already happened (for example which is related to MESOS-1807 which will force behavior in future releases) -- now it just so happens that the previous changes were backwards compatible, but there is high probability that there will be further non-backwards compatible changes.
Since we depend on both storm versions and mesos versions -- it seems to make sense that we include both in our conventions.
Because that's a lot of dependencies and versioning, perhaps we can limit it to a maximum of two versions each of storm and mesos -- or alternatively only support two versions of either dependency when there are major non-backwards compatible changes, giving people time to adopt the new changes and then falling back to support for only a single version of storm and mesos after a time?

@echinthaka : yup, I hear you that it could become an unseemly burden to support multiple versions.  But I wanna maintain support if it's relatively trivial to build against 0.10.0 and 0.9.x, which @DarinJ's change aims to provide (haven't had time to review it yet).
Notably, today this project doesn't even declare which version of storm are supported.  Until #77, the project will only work against 0.9.x I believe (maybe earlier versions, not sure, have never used them).
Storm 0.10.0 is a major change from 0.9.x.  It's got "crazy lots" of stuff in it, and I'm nowhere near being ready to upgrade to it, so I definitely don't wanna drop 0.9.x support for many months.  But I don't wanna hold back people from using 0.10.0 if they can.

@brndnmtthws : cool, and that would somehow add the metadata into the Dockerhub build/image list, and also allow us to specify the version/tag in our mesos.container.docker.image config field?  (I'm confused by the lack of info in the Dockerhub interface.)

@JessicaLHartog : thanks for the examples and references.  And yes, I don't think we need to make superhuman efforts to be perfectly compatible as the landscape shifts.  I just really want the storm 0.9.x stuff to continue working for awhile at least.  I'm less scared about upgrading mesos. ;-)

@DarinJ : thanks for PR #77.  And sure, your PR seems a natural place to introduce this version scheme.  Regarding the initial version: sure, 0.1.0 seems reasonable, we can follow semantic versioning (semver) if we feel ambitious.

With PR #77 landing we now have the groundwork in place to implement this versioning scheme.  I will leave this (issue #76) open for the moment in order to leave a cookie crumb pointing to commits for releasing the "first version" when I spend some time on that.

@erikdw , awesome .
It would now be doubly awesome to just go to https://github.com/mesos/storm/releases and download releases build based storm version, mesos versions and storm-mesos versions :)
Thanks

Thanks to @salimane for the contribution of #117 which allows us to automatically upload releases by .
Since we don't yet have the ability to use the mvn release plugin, I've taken the following steps to release v0.1.0:

Prepared for v0.1.0 release by modifying project.version and project.parent.version in pom.xml files from 0.1.0-SNAPSHOT to 0.1.0
Merged that PR to the mesos/storm master branch
Created a release on the mesos/storm release page

Notably, I used v0.1.0 instead of 0.1.0, in compliance with the suggestion on the right hand side

Prepared for next development iteration by updating pom.xml versions to 0.1.1-SNAPSHOT


match merged context API

Updates the API a bit to match the one that was actually merged into React https://github.com/facebook/react/pull/11818
From what we’ve gathered there hasn’t been a final decision on which API is going to make it into a release but I thought it worthwhile to send this over

They've gone back to the previous JSX API, so this PR isn't needed anymore: facebook/react#12123


[SPARK-50589][SQL] Avoid extra expression duplication when push filter

What changes were proposed in this pull request?
Use With expression to push down predicate.
Why are the changes needed?

Avoid nested expansion of filters expression causing execution plans to become too large.
Avoid duplicate non-cheap expressions for better performance

Does this PR introduce any user-facing change?
No.
How was this patch tested?
UT.
Was this patch authored or co-authored using generative AI tooling?
No.

@cloud-fan Can you help first to see if the overall design is feasible? It involves a lot of UT, so I will modify it step by step.

I'm very confused. When pushing predicates through Project, the problem we hit is we need to rewrite the attributes in the predicate with the corresponding expression in the Project. If the attribute appears more than once in the predicate, and the expression from Project is expensive, filter pushdown may make the query slower.
The solution is to wrap the predicate with With expression, adding the expression from Project as the common expression, and replace attributes in predicate with the common expression reference. But this PR does some rewriting and I don't understand what it does.

Filters support partial pushdown. If an attribute exists in two conditions, one condition is pushed to one level, and the other condition is pushed down to multiple levels. Therefore, after splitting by and, each filter need generates a With, then they need to share commonexprdef. Only the lowest commonexprdef will generate a common expression project. In addition, the child of the original common expression Alias also needs to be replaced.

Why do we care about common expressions in the original predicate? This is an optimization opportunity but what we should focus on is to avoid perf regression when pushing filter through project that duplicate expensive expressions.
Maybe we should discuss this with a concrete example.

Why do we care about common expressions in the original predicate? This is an optimization opportunity but what we should focus on is to avoid perf regression when pushing filter through project that duplicate expensive expressions.
Maybe we should discuss this with a concrete example.

As the ut in pr, I hope that the common expression will only be calculated only once. _common_expr_0 finally used in two Filters and as e.

Do you want to make it simpler, commonexprdef is not shared, and the original alias is ignored?

OK let's make the scope clear. We do not aim to find all duplicated expressions in the query plan tree and optimize them with With. We aim to avoid extra expression duplication that happens during pushing filter through project. So the change should be we update the filter pushdown rule and use With to avoid the aforementioned expression duplication.

OK let's make the scope clear. We do not aim to find all duplicated expressions in the query plan tree and optimize them with With. We aim to avoid extra expression duplication that happens during pushing filter through project. So the change should be we update the filter pushdown rule and use With to avoid the aforementioned expression duplication.

OK, I'll do it as later, thank you.

how about the rule PushPredicateThroughNonJoin?

how about the rule PushPredicateThroughJoin?

There is no replaceAlias logic in PushPredicateThroughJoin.

ah ok. Shall we implement the better predicate split-and-combine in this PR to make it more useful? Otherwise we can't handle common cases like a + a > 5 AND a < 10.

@cloud-fan It seems that the change in filters order causes the execution plan to mismatch. Is there any good solution?

@cloud-fan https://github.com/zml1206/spark/actions/runs/12478377527/job/34825933696, Do you know the reason for the pyspark ci failure?

CI failure is not relevant.


More Informative Dashboard Container Status

This PR contains makes the dashboard better reflect the true status of a container. It also better documents the dashboard API by providing examples.
Summary

return the actual container state according to docker
style running and not running container cards differently
update documentation/tests

@bjcoleman


fix: return 404 if record not found

Summary
The following API was returning status code 500 if the record was not found, in this PR it is fixed to returning 404 instead of 500
GET /plugins/jira/connections/{connectionId}/scopes/{scopeId}
GET /plugins/github/connections/{connectionId}/scopes/{scopeId}
GET /plugins/gitlab/connections/{connectionId}/scopes/{scopeId}
GET /plugins/jenkins/connections/{connectionId}/scopes/{scopeId}
Does this close any open issues?
No, related to https://github.com/apache/incubator-devlake/issues/3468
Screenshots

Other Information
Any other information that is important to this PR.

Aren't we going to stop using gorm?

Aren't we going to stop using gorm?

yes, but there is a lot of work to be done to remove the dependency on gorm, I'm not going to do it in this bug-fixing PR


Enable CA2017: Parameter count mismatch

https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2017

@xtqqczze Please add motivations in PR description. I see there are more rules (CA2018 and etc.).

@xtqqczze Please add motivations in PR description. I see there are more rules (CA2018 and etc.).

It seems we don't use the API and haven't need for the rule.
But there are new rules for the last year.


Support "argmin" and "argmax" in graphblas.reduce_to_vector

Note that we return tensors with 32-bit integer elements as a workaround for https://github.com/metagraph-dev/mlir-graphblas/issues/178.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

16 of 16 (100.0%)  changed or added relevant lines in 2 files are covered.
5 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.1%) to 83.122%

Files with Coverage Reduction
New Missed Lines
%

mlir_graphblas/engine.py
1
75.29%

mlir_graphblas/tests/test_profile.py
4
51.95%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
2620

Relevant Lines:
3152

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

16 of 16 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 83.28%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
2625

Relevant Lines:
3152

💛  - Coveralls


Does upsert cannot work in $transaction([])

Bug description
Does upsert cannot work in $transaction? as it returns  Prisma.Prisma__DataClient<Data> instead of PrismaPromise.
I tried to use upsert in transaction, but the executed upsert before error didn't roll back.
it doesn't work in $transaction([]), but it works well in interactive transaction $transaction(prisma => {}).
the data doesn't roll back.
await prisma.$transaction([
      prisma.data.update({ where: { id }, data }),
      prisma.$executeRaw`TRUNCATE TABLE Words`,  // non exisiting table to force throw error
    ])

the data rolled back
await prisma.$transaction(async prisma => {
      await prisma.data.update({ where: { id }, data })
      await prisma.$executeRaw`TRUNCATE TABLE Words`  // non exisiting table to force throw error
    })

How to reproduce
as above.
Expected behavior
No response
Prisma information
as above.
Environment & setup

OS:  Windows 11, Ubuntu 22.4
Database: Mysql 8
Node.js version: 18.6

Prisma Version
prisma                  : 4.1.1
@prisma/client          : 4.1.1
Current platform        : debian-openssl-3.0.x
Query Engine (Node-API) : libquery-engine 8d8414deb360336e4698a65aa45a1fbaf1ce13d8 (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 8d8414deb360336e4698a65aa45a1fbaf1ce13d8 (at<EMAIL_ADDRESS>Introspection Engine    : introspection-core 8d8414deb360336e4698a65aa45a1fbaf1ce13d8 (at<EMAIL_ADDRESS>Format Binary           : prisma-fmt 8d8414deb360336e4698a65aa45a1fbaf1ce13d8 (at<EMAIL_ADDRESS>Default Engines Hash    : 8d8414deb360336e4698a65aa45a1fbaf1ce13d8
Studio                  : 0.469.0
Preview Features        : interactiveTransactions

Hey @shtse8, can you please describe your problem again?
Your issue title mentioned upsert but then all the examples (both with sequential and interactive transactions) actually use update. Is this a typo in the title or in the example? Or does it apply to both?
I assume the second query prisma.$executeRaw'TRUNCATE TABLE Words' is just a random query to trigger a failing transaction, which should lead to a rollback of the previously executed update? And that is not happening for you?

Hey @shtse8, can you please describe your problem again?
Your issue title mentioned upsert but then all the examples (both with sequential and interactive transactions) actually use update. Is this a typo in the title or in the example? Or does it apply to both?
I assume the second query prisma.$executeRaw'TRUNCATE TABLE Words' is just a random query to trigger a failing transaction, which should lead to a rollback of the previously executed update? And that is not happening for you?

I need some time to figure out what I was asking two months ago. Will reply soon.

Of course. Did you have time to get to that @shtse8? With the current information we unfortunately will need to close the issue as it is not enough to understand what is going on and reproduce it. Thanks!

Of course. Did you have time to get to that @shtse8? With the current information we unfortunately will need to close the issue as it is not enough to understand what is going on and reproduce it. Thanks!

will reply you in 7 days. sorry for my late. I am working on an urgent project this month.

@shtse8 Should we assume that you just meant update but typed upsert?


Add more clear draggable area

Currently the draggable area is around the buttons. This is not clear for the user.

merged a while ago


Move D3D12 fence SetEventOnCompletion call to fence_wait to avoid stalling on some platforms

This is a weird one and hasn't been reported upstream.
Basically SetEventOnCompletion() should be fine to call anytime after the Signal() and before we wait on the fence. The docs don't indicate that it should stall, but in testing, it appears that there are cases where it will stall until GPU work finishes. In any case, all the official samples call SetEventOnCompletion() immediately before WaitForSingleObjectEx() so we should do the same.
In testing with our complex 3D test project on the affected hardware we get roughly double the performance from this change.

Thanks!


Incomprehensible sentence

But if you wish to try out Snowplow locally, using an HTML file on disk whose URI starts with "file://", you should manually insert "http:", changing it to "http://d1fc8wv8zag5ca.cloudfront.net/2.5.1/sp.js".

Please rewrite this sentence to be legible.

This is fixed now. Thanks for spotting it @aragnon !


Possibility to group items

When having multiple flags related to one feature (eg. we have a feature that we can enable with one flag and because we are also developing two extension to this feature we have another two flags etc.) it would be nice if there would be a possibility to group flags.
Eg. by adding groupId = "" in flag deklaration:
SomeFeature {
        withOption("Enabled")
        withDefaultOption("Disabled")
        withGroupId("FeatureSet1")
}

And based on that we could introduce some new way of representing flags in groups:

expandable list - regular items (without group) could be represented as switches, groups could be represented as expandable list items
child screen - regular items (without group) could be represented as switches, groups could be items without switch that would open additional screen with child flags.

Related to issue: https://github.com/MiSikora/laboratory/issues/82

There are two ideas here.  Grouping flags and having some parent–child relation between the flags.
As far as the grouping goes you can at the moment group features in tabs using Gradle modules. I think it is a better idea than groupId as it also requires you to decouple flags in your code.
// First module
laboratory {
  packageName = "com.app.first"

  featureFactory {
    isPublic = true
    projectFilter { it == project }
  }

  FeatureA {
    withOption("Enabled")
    withDefaultOption("Disabled")
  }
}

// Second module
laboratory {
  packageName = "com.app.second"

  featureFactory {
    isPublic = true
    projectFilter { it == project }
  }

  FeatureB {
    withOption("Enabled")
    withDefaultOption("Disabled")
  }
}

Then in the app code.
import com.app.first.featureGenerated as firstModule
import com.app.second.featureGenerated as secondModule

val configuration = LaboratoryActivity.Configuration.builder()
    .laboratory(Laboratory.inMemory())
    .featureFactories(mapOf(
        "First" to FeatureFactory.firstModule(),
        "Second" to FeatureFactory.secondModule(),
    ))
    .build()
LaboratoryActivity.configure(configuration)

It will group them like this.

The only thing is that generated factories need to be in separate packages, which might be annoying (but personally I like that it forces you to split it logically in the code as well).
Now to the second part – parent–child relationship. It's not that straightforward because the example assumes that a feature has only two states. My first idea would be to do it like this.
laboratory {
  parentFeature("ParentFeature") {
    isEnabledByDefault = true // optional parameter

    ChildFeature {
      withDefaultOption("FirstOption")
      withOption("SecondOption")
      withOption("ThirdOption")
    }
  }
}

This way you can have a switch on a parent item as it is constrained only to two values and depending on a state of this switch the children could be expanded or contracted. It also prevents you from mixing group IDs between different modules.

How about children depending on options instead of features?
Consider this hierarchy:
ParentFeature:
  |- Disabled
  |- EnabledLegacy
     |- FirstLegacyChildFeature
     |- SecondLegacyChildFeature
  |- EnabledModern
     |- FirstModernChildFeature
     |- SecondModernChildFeature
        |- Enabled
        |- Disabled

Another thing to consider is the direction of dependencies. It seems to me that it would make sense for parents to define their children instead of the opposite. That way the hierarchy of features (and their options) would match a project's module tree.
Am I missing something?

Yes, linking to parent options makes much more sense. The UI will be harder though but that is a separate topic.

@vudzkostek I changed the issue title. If you feel like there is a need for different grouping mechanism please open another issue. Though IMO using Gradle modules solves this problem.


test(mongodb): test support with multiple MongoDB versions

:tada: This PR is included in version 0.18.10 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


NRF52840  how to read data from internal themperature sensor

Hello,
I tried example samples\sensor\termometer, added CONFIG_TEMP_NRF5=y in prj.conf but have
error: no temp device

This may be of some help. In the nRF Connect SDK,
https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/mesh/sensor_server/src/model_handler.c
This example has a device node for internal die temperature.


Segmentation fault (core dumped)

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the FAQ documentation but cannot get the expected help.
[X] The bug has not been fixed in the latest version (master) or latest version (3.x).

Task
I'm using the official example scripts/configs for the officially supported tasks/models/datasets.
Branch
master branch https://github.com/open-mmlab/mmdetection
Environment
/home/scholar/mmcv/mmcv/init.py:20: UserWarning: On January 1, 2023, MMCV will release v2.0.0, in which it will remove components related to the training process and add a data transformation module. In addition, it will rename the package names mmcv to mmcv-lite and mmcv-full to mmcv. See https://github.com/open-mmlab/mmcv/blob/master/docs/en/compatibility.md for more details.
warnings.warn(
sys.platform: linux
Python: 3.8.16 (default, Mar  2 2023, 03:21:46) [GCC 11.2.0]
CUDA available: True
GPU 0: NVIDIA GeForce RTX 3090 Ti
CUDA_HOME: /usr/local/cuda-11.3
NVCC: Cuda compilation tools, release 11.3, V11.3.58
GCC: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
PyTorch: 1.12.0
PyTorch compiling details: PyTorch built with:

GCC 9.3
C++ Version: 201402
Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)
OpenMP 201511 (a.k.a. OpenMP 4.5)
LAPACK is enabled (usually provided by MKL)
NNPACK is enabled
CPU capability usage: AVX2
CUDA Runtime 11.3
NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_37,code=compute_37
CuDNN 8.3.2  (built against CUDA 11.5)
Magma 2.5.2
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.3.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.12.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=OFF, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.13.0
OpenCV: 4.7.0
MMCV: 1.7.1
MMCV Compiler: GCC 9.4
MMCV CUDA Compiler: 11.3
MMDetection: 2.28.2+e9cae2d
this is result that i run python mmdet/utils/collect_env.py
Reproduces the problem - code sample
2023-03-18 14:01:05,618 - mmdet - INFO - Epoch [4][1850/4624]	lr: 1.000e-03, eta: 8:35:48, time: 0.324, data_time: 0.007, memory: 8330, loss_rpn_cls: 0.0024, loss_rpn_bbox: 0.0057, loss_cls: 0.0530, acc: 98.1929, loss_bbox: 0.0608, loss: 0.1219
2023-03-18 14:01:21,727 - mmdet - INFO - Epoch [4][1900/4624]	lr: 1.000e-03, eta: 8:35:31, time: 0.322, data_time: 0.007, memory: 8330, loss_rpn_cls: 0.0017, loss_rpn_bbox: 0.0051, loss_cls: 0.0515, acc: 98.2642, loss_bbox: 0.0578, loss: 0.1161
Segmentation fault (core dumped)
While running, and then suddenly this problem occurs
Reproduces the problem - command or script
i use python train.py my_maskrcnn.py
my_maskrcnn.py inherits from the  ../configs/mask_rcnn
Reproduces the problem - error message
I tried using gdb to locate the error, but when it comes to source code, I can't resolve it
Additional information
This problem has occurred many times. I have reinstalled cuda, cudnn, and pythoch, but it still cannot be resolved.
However, there is a problem that an error will be reported in my dataset, Corrupt JPEG data: 1022 extended bytes before marker 0xd9. I looked up and found that this does not matter, but I have some doubts.

Corrupt JPEG data:44 extraneous bytes before marker 0xd9,once this error occurs, either a segment error occurs or the screen is stuck

I had a similar problem:
'Corrupt JPEG data: 514 extraneous bytes before marker 0xd9
Corrupt JPEG data: premature end of data segment'
when running the mmdetection codes. Have you solved this? It didn't stop the training but was super annoying because it made the log file a mess.

You can try different cuda versions.
My original environment was python3.10+cuda11.8+pytorch2.10.
Segmentation fault (core dumped) occurred during training.
If cuda is changed to 11.7, training can be done normally without changing other versions.


deepconsensus on metagenomic data

Hi,
Is it ok to run deepconsensus on HiFi metagenomic data? I can see that it has been tested on human genomic data.
Many thanks

Hi @ay-amityadav,
Thank you for your question. DeepConsensus should work for metagenomic data. We've tested DeepConsensus on E.coli and several plant species. For E.coli we see higher accuracy as measured against the known sequence of the reference strain. For plant species, we see improvements to assembly contiguity and correctness.
As a result of those investigations, we believe DeepConsensus should work well for metagenomic samples as well.

Thank you very much!


List of prominent blog posts

One of our goals for the 4.0 release is to email prominent blog posts and ask them to update with the new syntax.  So my question is, what are the prominent blog posts? @contra @travm @sindresorhus

@alexgorbatchev has a couple Gulp posts.
https://scotch.io/tutorials/automate-your-tasks-easily-with-gulp-js
http://leveluptuts.com/tutorials/learning-gulp
http://code.tutsplus.com/tutorials/managing-your-build-tasks-with-gulpjs--net-36910
http://www.sitepoint.com/introduction-gulp-js/
http://www.smashingmagazine.com/2014/06/11/building-with-gulp/

maybe this series: http://stefanimhoff.de/2014/gulp-tutorial-1-intro-setup/

There's also https://github.com/markdalgleish/presentation-build-wars-gulp-vs-grunt which, while not having a lot of stars, is the first result for a search for "gulp vs. grunt".

My articles are updated and ready to go live as soon as 4.0 hits. I'll keep an eye out for other articles and see if I can get in touch with the authors to make sure they are aware of the changes.

@travm Why not post those articles now? Gulp 4 will drop soon enough (@phated any ETA?), and many people will want to get a headstart on their migrations.

@pikeas https://github.com/gulpjs/gulp/issues?q=is%3Aopen+is%3Aissue+milestone%3A"gulp+4"

I remember using @greypants' gulp starter.

Article: https://www.viget.com/articles/gulp-browserify-starter-faq
Repo: https://github.com/vigetlabs/gulp-starter

It might be worth hitting some of the most prominent Gulp questions on Stack Overflow dealing with things Gulp v4 makes easier or fixes (for example):

http://stackoverflow.com/questions/22824546/how-to-run-gulp-tasks-synchronously-one-after-the-other/22826429#22826429
http://stackoverflow.com/questions/22391527/gulps-gulp-watch-not-triggered-for-new-or-deleted-files?s=34|0.0000

I am totally on board with @ilanbiala suggestion of leveluptuts. Scotts video series on youtube was what got me started with gulp 3 all those years ago.

I wrote an article over at CSS-Tricks about combining Gulp 4 with Webpack.
https://css-tricks.com/combine-webpack-gulp-4/


[BEAM-13015] Use a DirectExecutor for state since we are just completing futures on the callback.

Baseline:
Result "org.apache.beam.fn.harness.jmh.ProcessBundleBenchmark.testStateWithCaching":
  4588.967 ±(99.9%) 51.317 ops/s [Average]
  (min, avg, max) = (4518.876, 4588.967, 4778.099), stdev = 68.507
  CI (99.9%): [4537.650, 4640.284] (assumes normal distribution)
Result "org.apache.beam.fn.harness.jmh.ProcessBundleBenchmark.testStateWithoutCaching":
  2725.915 ±(99.9%) 17.143 ops/s [Average]
  (min, avg, max) = (2660.523, 2725.915, 2768.138), stdev = 22.885
  CI (99.9%): [2708.773, 2743.058] (assumes normal distribution)

With DirectExecutor (About a 1-2% change for state heavy workloads):
Result "org.apache.beam.fn.harness.jmh.ProcessBundleBenchmark.testStateWithCaching":
  4653.439 ±(99.9%) 33.903 ops/s [Average]
  (min, avg, max) = (4580.343, 4653.439, 4733.079), stdev = 45.260
  CI (99.9%): [4619.536, 4687.342] (assumes normal distribution)
Result "org.apache.beam.fn.harness.jmh.ProcessBundleBenchmark.testStateWithoutCaching":
  2728.673 ±(99.9%) 24.360 ops/s [Average]
  (min, avg, max) = (2671.593, 2728.673, 2777.028), stdev = 32.520
  CI (99.9%): [2704.313, 2753.034] (assumes normal distribution)

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @scwhittle

Run Java PreCommit

Run Java PreCommit

What is the next step on this PR?

If this is blocked on experimenting with ManagedChannelBuilder.html#directExecutor perhaps we should just submit as is since this improved things and leave a comment to try that later.

@lukecwik LGTM, friendly ping to merge

Run Spotless PreCommit

Run Spotless PreCommit

Run Spotless PreCommit

Run Java PreCommit

Run Java PreCommit

Run Java PreCommit

Run Java_PVR_Flink_Batch PreCommit

It looks like this broke Java PreCommit, see BEAM-14008


shellscript syntax highlighting broken after update to v1.76.0

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.76.0
OS Version: Linux Mint 21.1 Cinnamon

Steps to Reproduce:

Update vscode to latest version 1.76.0

There was a similar issue with the update from v1.74.3 to v1.75.0. Then it was fixed in v1.75.1 and now it shows up again in v1.76.0.
Please dedicate some time to make it work properly, or don't touch it otherwise. There are people, such as myself that work with shell scripts on a day to day basis and rely on the syntax highlighting.

"${variable}" is no longer being highlighted within VSCode when used as an argument to a command or function.
Furthermore, every unquoted ${variable} loses correct highlighting of its opening and closing bracket (from the colouring, they look like they are being are being bracket matched).
I enabled better-shell-syntax extension to see if any improvements were made in the upstream version. While it does improve the highlighting of variables inside strings, case statements no longer correctly recognise that they should be part of an unmatchedBracketScope and every punctuation.definition.case-pattern.shell within turns red.

Commenting for visibility. seeing similar issues.

All variables in ${} should be highlighted and aren't.

Duplicate of https://github.com/microsoft/vscode/issues/176190


Note for Azure Stack HCI versions

@shashban : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@shashban - Thanks for adding this note.
Hi Team, request you to please merge this PR.
#sign-off

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Keep track of search queries

Feature request
I'm submitting a proposal to ...

[x] new feature
[ ] change an existing feature

Describe your request
It would be nice if there was a history of search queries where you can edit previous search queries, remove them or empty the search history.
Describe the use case
Often when you look for something you want to edit a previous search, rather than start over. Also previous search queries tend to be needed later to refind the same thing (e.g. check if a new season is available). The Netflix add-on is not as convenient for finding something specific, which makes searching quite important in this add-on.
Describe an alternative

Development tips

Additional details or screenshots (if appropriate)
Specific details

Screenshots

yes i could memorize the last searched text

Not just the last searched text, but all previous texts.
We do this in the VRT NU add-on, you can test the interface to see if you like it.

you have made a custom search interface?
can you give a screenshot?

Here is what you can see starting from the main menu.

If you press Search you enter the search history.

When you search for a new search string, you get:

When you search (new, or existing query) you get the overview of results:

Obviously, the results could change over time and we sort them based on when the content became available, so the recent stuff is on top.
If you go back, you return to the search history.

it is nice
there is some work to be done to implement it but it can be done

What you don't see is that the list is ordered but unique (using a python Set).  So the latest additions are always on top, even when the item was already in the list. And if you re-search an existing query (e.g. at the end of the list) it re-appears at the top.

I understand, here i store in the database i will have to see how best to implement it
perhaps a dedicated table for search data is best thing

I have implemented the new Search menu,
when you do a new search you can select the type of search
before you say, i know there is no "Edit" context menu, i want avoid code complexities
if you want try, update and let me know if works good
plugin.video.netflix_1.6.0_20200630_t1.zip

@CastagnaIT Did you know you do not have to actually make a ZIP file, you can point directly to your branch for getting a recent package: https://github.com/CastagnaIT/plugin.video.netflix/archive/new_search.zip
I tested this and it works very well. If you do not want to provide an edit context menu, that is fine. One option we implemented elsewhere is that selecting old search text gives you always an edit dialog with that search text, if you press enter without modification that will redo the original search, but if you modify it, you will get a new search in your search history. This IMO is the best of both worlds (for just an extra click for previous searches).
The reason to be able to modify an earlier search is that when you make a typo, or want to make a slightly different search, you don't have to enter everything again (using a remote control). So some way to edit a previous search is always going to be handy.

Did you know you do not have to actually make a ZIP file, you can point directly to your branch for getting a recent package:
oh nice
what are stored the rules that use to build the zip?

The reason to be able to modify an earlier search is that when you make a typo, or want to make a slightly different search, you don't have to enter everything again (using a remote control). So some way to edit a previous search is always going to be handy.

i agree it is boring without a bluetooth keyboard..
thanks for the report!

@CastagnaIT The ZIP file is an exact copy of the files in your branch, except the files from .gitattributes that have the export-ignore attribute.

The ZIP file is an exact copy of the files in your branch, except the files from .gitattributes that have the export-ignore attribute. Anyone can click through from a PR to the branch and download a ZIP file to test.

interesting
in the end i have added also the edit option

I documented updating to the master branch ZIP or any branch for testing here:

https://github.com/add-ons/plugin.video.vrt.nu/wiki/Updating#running-the-latest-development-branch-master-branch
https://github.com/add-ons/plugin.video.vrt.nu/wiki/Testing#test-the-master-branch-or-any-other-branch

The documentation mostly hints that this is possible, but if you don't have experience with Git or GitHub you would probably need screenshots to understand what you need to do :disappointed:

users who commit todo manual updates are enthusiasts or for some issue that causing rolling balls :)
do not happen often that inexperienced people use complicated ways, especially when they don't even know what github means and his various terminology

Thanks!


Retrive All Fulfillment Orders Of A Specified Order

Issue summary
I want to get all fulfillmentOrders of an order using rest api as below in NestJS application:
  async getFulfillmentOrders(orderId: string) {     const res = await this.shopify.rest.FulfillmentOrder.all({       session: this.getSession(),       order_id: orderId,     });     return res?.fulfillment_orders;   }

@shopify/shopify-api version:  8.0.2
Node version: v16.16.0
Operating system: windows 10

[shopify-api/DEBUG] REST client has a redundant API version override to the default 2023-10
[shopify-api/DEBUG] Making HTTP request  -  GET https://store.myshopify.com/admin/api/2023-10/orders/<orderId>/fulfillment_orders.json  -  Headers: {"X-Shopify-Access-Token":["apiKey"],"User-Agent":["Shopify API Library v8.0.2 | Node v16.16.0"]}
[shopify-api/DEBUG] Completed HTTP request, received 200 OK

Expected behavior
I expect that it should return the fulfillment orders that relevant to the order that I give it.
Actual behavior
the  response contains an object that has a field called data with an empty array value and has headers field.
when I paste url of the order in route with /fulfillment_orders.json it returns the expected fulfillment orders. but with calling rest api returns the mentioned data:

adding 'write_merchant_managed_fulfillment_orders' and 'read_merchant_managed_fulfillment_orders' to scopes of api solved my problem.


Rule suggestion: prefer-parameter-properties

There's a no-parameter-properties rule, but what if you like them? How about a rule that flags code like this:
class Foo {
  foo: number;
  constructor(foo: number) {
    this.foo = foo;
  }
}

in favor of this:
class Foo {
  constructor(public foo: number) {
  }
}

Another option would be to replace no-parameter-properties with a more general parameter-properties rule that lets you say how you feel about them.
See parameter properties in the TS handbook.

Sure, that sounds good. I would like it to be one rule though, so let's add parameter-properties with options "always" | "never" and deprecate no-parameter-properties.

What was the motivation for this rule in the first place?

@codingthat mostly just consistency with other languages like Java for full-stack developers.

@adidahiya That being the case, I'm even happier to see the rule go neutral.  :)

I mean, it is harder to see the list of members at a glance when you use parameter properties. New language features almost always add more cognitive load.

Depends on your formatting, maybe :)  That's a good point to consider though.

Note: per #4534, this issue will be closed in less than a month if no PR is sent to add the rule. If you really need the rule, custom rules are always an option and can be maintained outside this repo!

💀 It's time! 💀
TSLint is being deprecated and no longer accepting pull requests for new rules. See #4534. 😱
If you'd like to see this rule implemented, you have two choices:

Recommended: Use typescript-eslint to lint your TypeScript code with ESLint ✅
Legacy: Write it as a custom TSLint rule 🤷♂

👋 It was a pleasure open sourcing with you!
If you believe this message was posted here in error, please comment so we can re-open the issue!


the OS`s password of the oracle19.3.0 singleInstance images

HI, Thanks for your gread contribution of the https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/README.md. I use it in my mac, and the orcle works well.
I have a question whats the OSs password is. I want to su - root, but I don`t know the password. I neet the root authority to yum vi.
Thanks very much.

Duplicate of issue #2390. Closing the issue.


librarian-puppet fails with new version of puppet_forge gem

Hi All,
Since release of new puppet_forge gem (2.2.5), librarian-puppet fails on our build infrastructure with the following error:
/var/lib/jenkins/.gem/gems/puppet_forge-2.2.5/lib/puppet_forge.rb:10:in `host=': undefined method `[]' for #<URI::HTTPS https://forgeapi.puppetlabs.com> (NoMethodError)
	from /var/lib/jenkins/.gem/gems/librarian-puppet-2.2.3/lib/librarian/puppet/source/forge/repo_v3.rb:14:in `initialize'
	from /var/lib/jenkins/.gem/gems/librarian-puppet-2.2.3/lib/librarian/puppet/source/forge.rb:163:in `new'
	from /var/lib/jenkins/.gem/gems/librarian-puppet-2.2.3/lib/librarian/puppet/source/forge.rb:163:in `repo'
	from /var/lib/jenkins/.gem/gems/librarian-puppet-2.2.3/lib/librarian/puppet/source/forge.rb:152:in `manifests'

More information regarding this change can be found here:

https://github.com/puppetlabs/forge-ruby/pull/45

Could you please have a quick look at this issue?
Thanks in advance!

Found a PR in #46
Librarian is expecting a String but the new puppet_forge is returning a URI.

Should be good now. Fixed in puppetlabs/forge-ruby#47

Thanks for the quick fix @jamebus. I'm going to test it tomorrow within our infrastructure and let you know if it works as expected.

Tested and approved :-) everything is now working again as expected.
Thanks again for the quick fix.


Remove dependency on Java JPS

jps is part of the JDK, but not of the JRE. By removing this dependency and only relying on ps Alluxio FUSE can be run with Java JRE, which is much lighter than the JDK.
Another reason to remove the jps depencency is that the jps documentation mentions that:

NOTE: This utility is unsupported and may not be available in future versions of the JDK.

I tested this with both OpenJDK 8 JRE and OpenJDK 11 JRE.

Codecov Report

Merging #13047 (00280d5) into master (be4ed06) will decrease coverage by 26.62%.
The diff coverage is 4.01%.

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

Thanks @peterroelants  for the improvement!

alluxio-bot, merge this please


[FacebookBridge] Replace post avatar with hires version

Currently the FB bridge directly uses the avatar in each post (56x56) rather than the more clear avatar in that page. This, in some RSS aggregrators which utilize the first picture as the feature image (enlarged), will lead to blurry pictures and poor experience.
This patch replaces the low-res avatar with the hi-res one.

Any follow-ups?

@em92 Hi, still any blocking issues?

@em92 Hi, still any blocking issues?

Hi, still any blocking issues?
@oppilate, hi!
Sorry for long no-anser. Too little free time for maintaining. I would certainly find more, if anyone payed me for this.

Hi, still any blocking issues?
@oppilate, hi!
Sorry for long no-anser. Too little free time for maintaining. I would certainly find more, if anyone payed me for this.

I would certainly find more, if anyone payed me for this.

I don't see any donation link for this project. You may setup a librepay or opencollective account, or GitHub donation. I'll definitely give my cents.  Probably others will do, too, considering the popularity of this project.

I would certainly find more, if anyone payed me for this.

I don't see any donation link for this project. You may setup a librepay or opencollective account, or GitHub donation. I'll definitely give my cents.  Probably others will do, too, considering the popularity of this project.

@oppilate Any progress here?

This PR is with regards to a facebook user profile and their feed of posts. The current behaviour is to insert the user's profile picture in each feed item. Some feed readers take this first image when they create their UX. I suggest removing this profile picture from items. When a user actually posts a picture, it is not picked up by feed readers because the user profile is always inserted at the beginning.
As suggested by em, the user profile image could possibly be inserted in the feed icon. Doubt many readers pick this up though.


Validation Colab SingleWordExample import error

The validation colab fails to run because it is trying to import SingleWordExample which was renamed to SequenceProbExample in the public-colab branch here.

This should be fixed - thanks for identifying the issue!


Google Oauth login says "Project Default Service Account"

Fixed! Thanks for the bug report.

@mldangelo What is the URL (for developers) to change this default name of "project default service account" ?


bugs in pgn output

here is the pgn headers:
[Event "Fast Chess"]
[Site "?"]
[Round "0"]
[White "Engine2"]
[Black "Engine1"]
[Date "2024-04-17"]
[Result "1/2-1/2"]
[SetUp "1"]
[FEN "rn2kbnr/ppq2ppp/2p1p3/2Pp1b2/3P4/1QN2N2/PP2PPPP/R1B1KB1R w KQkq - hmvc 1; fmvn 7;"]
[GameDuration "00:00:30"]
[GameStartTime "2024-04-17T19:36:31 SE Asia Standard Time"]
[GameEndTime "2024-04-17T19:37:01 SE Asia Standard Time"]
[PlyCount "112"]
[TimeControl "10+0.1"]

the reported fen is invalid because its copied directly from the epd file, which means the hmvc and fmvn operators are not removed. also the gamestarttime and gameendtime is not accurate since the timestamp reported is in utc+0 while SE asia standard time is UTC+7, meaning the actual game time is off by 7 hours.

fixed with https://github.com/Disservin/fast-chess/commit/d6181bea7802b015e88d1d456c6f38c096282b7f and https://github.com/Disservin/fast-chess/pull/249


Linggg unittest authentication

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Hi @xulingqing. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@xulingqing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
5aaf99c7cca7098a850e375aa779da19074f5806
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@xulingqing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
5aaf99c7cca7098a850e375aa779da19074f5806
link
/test lint_istio

gencheck_istio
5aaf99c7cca7098a850e375aa779da19074f5806
link
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Could you also reword the PR title to make it formal, descriptive?
Add unit test for mode/authentication to cover X.

@xulingqing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

gencheck_istio
5aaf99c7cca7098a850e375aa779da19074f5806
link
/test gencheck_istio

lint_istio
2a3fcf97999bc9075a163b87446e3603827b8a6e
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@xulingqing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
2a3fcf97999bc9075a163b87446e3603827b8a6e
link
/test lint_istio

gencheck_istio
2a3fcf97999bc9075a163b87446e3603827b8a6e
link
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@xulingqing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
1fd865a5c9907b300568dc64b1f64e6f148554fc
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@xulingqing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
6c4974dcb2f42db79ae155233b7caa280475c1aa
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@xulingqing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
6c4974dcb2f42db79ae155233b7caa280475c1aa
link
/test lint_istio

gencheck_istio
6c4974dcb2f42db79ae155233b7caa280475c1aa
link
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@xulingqing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
6c4974dcb2f42db79ae155233b7caa280475c1aa
link
/test lint_istio

gencheck_istio
6c4974dcb2f42db79ae155233b7caa280475c1aa
link
/test gencheck_istio

unit-tests_istio
6c4974dcb2f42db79ae155233b7caa280475c1aa
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Hi! very useful tanks. do you plan to add it to npm ?

Apologies, that I haven't responded to this before.  I put this control up on Git for demo purposes.  It was not meant for production or product inclusion; only for reference how to build the control and use it in your own implementation.  So, no it was not meant to be packaged up and put on npm.  Thanks.


fix: react-router links

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)
Closes #2790

@OliwiaGowor some links are not working for All Namespaces it's another problem which needs to be resolved in separate task (we are using useUrl and namespaceUrl, we need to find out the solution how to take namespace from resource, not from the link.
The rest is adjusted, I forgot to bring back CSSes.


Update kep link and release version for dockershim removal in faq

Fixes issue https://github.com/kubernetes/website/issues/29776
Updates the dockershim FAQ blog:

fixes the link to the kep
added an update that dockershim is scheduled to be removed in 1.24 according to the KEP https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2221-remove-dockershim. The release of kubelet without dockershim is targeted for 1.24

Preview of update blog:
https://deploy-preview-29780--kubernetes-io-main-staging.netlify.app/blog/2020/12/02/dockershim-faq/

/lgtm
/approve