[Solved] Reverb not dispatching events in production

Reverb Version
@beta (out of the box after install)
Laravel Version
11.0
PHP Version
8.3.4
Description
In a local environment (non herd) with reverb:start when a event is dispatched I get the message in my console log. But in production on a Plesk server it does not. No error messages or anything in the logs that seem to point at the solution.
Steps To Reproduce
Create a new laravel installation, install broadcast.
local .env
REVERB_APP_ID=271094
REVERB_APP_KEY=esa4d8rnyeyadiexuram
REVERB_APP_SECRET=pyubfujwpiqrdwp60zhu
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

production .env
REVERB_APP_ID=271094
REVERB_APP_KEY=esa4d8rnyeyadiexuram
REVERB_APP_SECRET=pyubfujwpiqrdwp60zhu
REVERB_HOST="sub.domain.com"
REVERB_PORT=443
REVERB_SCHEME=https

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

In a controller:
class SampleController extends Controller
{
    public function store(Request $request){
        $message = $request->input('message');
        SampleEvent::dispatch($message);
        return response()->json(['success' => true, 'message' => 'Message sent successfully']);
    }
}

The Event
class SampleEvent implements ShouldBroadcastNow
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $message;

    /**
     * Create a new event instance.
     */
    public function __construct($message)
    {
        $this->message = $message;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return array<int, \Illuminate\Broadcasting\Channel>
     */
    public function broadcastOn(): Channel
    {
        return new Channel('sample');
    }

    public function broadcastAs(): string
    {
        return 'message.sent';
    }
}

On the front-end (works local but not in production)
  window.Echo.channel('sample')
        .listen('.message.sent', (e) => {
            console.log(e);
        })

On the server I have added 'additional nginx directives'
location /app {
	proxy_http_version 1.1;
	proxy_set_header Host $http_host;
	proxy_set_header Scheme $scheme;
	proxy_set_header SERVER_PORT $server_port;
	proxy_set_header REMOTE_ADDR $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "Upgrade";

	proxy_read_timeout 300s;
	proxy_connect_timeout 75s;

	proxy_pass http://<IP_ADDRESS>:8080;
}

A connection on the front-end is made over wss://sub.domain.com/app/~~~~
In the debug of reverb I see a subscribe message to the channel:
1▕ {
   2▕     "event": "pusher:subscribe",
   3▕     "data": {
   4▕         "auth": "",
   5▕         "channel": "sample"
   6▕     }
   7▕ }

But the event doesn't trigger the messages being send in production, but they do in local development.
It feels like that the Laravel Framework is not able to send the message to the Reverb server for unknown reasons.

I have tested this issue with the response https://github.com/laravel/reverb/issues/107#issuecomment-2016692366  here, but this was not the solution.

I have the same problem https://github.com/laravel/reverb/issues/112 here, seems its also pretty much the same conditions. Laravels Broadcasting system cannot connect to the reverb-server, still found no solution.

I have the same problem https://github.com/laravel/reverb/issues/112 here, seems its also pretty much the same conditions. Laravels Broadcasting system cannot connect to the reverb-server, still found no solution.

I looked into your issue but in this case no exception is thrown. I checked the logs and checked this with Telescope.

I have tried to implement the solution of https://github.com/laravel/reverb/issues/107#issuecomment-2019340122 with no success. Echo connects to Reverb and a subscribed message is logged in --debug but when a event is dispatched no socket messages are send in production, I have tried with queue:listen as well.
These two issues seem related but are different.
To me it seems that the issue is somewhere between Laravel Broadcast communicating with Reverb. But no exceptions or logs are made.
What I noticed is that in Telescope there are 0 listeners. It feels unrelated but worth mentioning. This is the same for local as well as production.
Is there still an experiment that I can conduct?

Hi @WesWeCan, the backend routes for Reverb are prefixed with /apps and not /app. Your location rule in your Nginx configuration, is prefixed /app only, so that route will never be hit.

Hi @joedixon Thanks for your reply. But adding a /apps to NGINX doesn't do the trick.
location /app {
	proxy_http_version 1.1;
	proxy_set_header Host $http_host;
	proxy_set_header Scheme $scheme;
	proxy_set_header SERVER_PORT $server_port;
	proxy_set_header REMOTE_ADDR $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "Upgrade";

	proxy_pass http://<IP_ADDRESS>:8080;
}

location /apps {
	proxy_http_version 1.1;
	proxy_set_header Host $http_host;
	proxy_set_header Scheme $scheme;
	proxy_set_header SERVER_PORT $server_port;
	proxy_set_header REMOTE_ADDR $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "Upgrade";

	proxy_pass http://<IP_ADDRESS>:8080;
}

I have the same type of issue. nothing was helpful.
implementing web-sockets in production is like finding water in mars.
All the possible ways i have tried.

all the possible .env configurations
nginx reverse proxy configuration
config/reverb.php config changes with and without certs and different ports

if some one gives a proper setup or guide from start to end would help for production.
in local it took only few minutes to implement. this is the same thing happened before launch of reverb. waiting nearly 6 months to implement in production

I have the same type of issue. nothing was helpful.
implementing web-sockets in production is like finding water in mars.
All the possible ways i have tried.

all the possible .env configurations
nginx reverse proxy configuration
config/reverb.php config changes with and without certs and different ports

if some one gives a proper setup or guide from start to end would help for production.
in local it took only few minutes to implement. this is the same thing happened before launch of reverb. waiting nearly 6 months to implement in production

What kind of environment are you using?
Also Plesk with Apache & NGINX?

Having the same error using Laravel Forge.
I am getting "invalid message format" when subscribing to a channel

and when I notify a user via broadcast I am getting a internal server error:
production.ERROR: Pusher error: Internal server error.. {"exception":"[object] (Illuminate\\Broadcasting\\BroadcastException(code: 0): Pusher error: Internal server error.. at /home/***/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php:164)

@joedixon Okay! I figured it out.  Maybe you have the same oversight @amypo-tech?
In short the issue was just a wrong .env config.
In my production .env I had
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database

but it should be
BROADCAST_CONNECTION=reverb
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database

I am not sure if this is set by the install of reverb or that I did it locally.
So for people that stumble upon this same issue (according to google, I'm not the only one). I always find it frustrating if there is no complete solution given when I google myself.
in .env
...
BROADCAST_CONNECTION=reverb
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database
...
REVERB_SERVER_HOST=<IP_ADDRESS>
REVERB_SERVER_PORT=8080

REVERB_APP_ID=271094
REVERB_APP_KEY=esa4d8rnyeyadiexuram
REVERB_APP_SECRET=pyubfujwpiqrdwp60zhu
REVERB_HOST="sub.domain.com"
REVERB_PORT=443
REVERB_SCHEME=https

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

For me in PLESK (apache + NGINX)
Proxy mode = ON
Additional NGINX Directives:
location /app {
	proxy_http_version 1.1;
	proxy_set_header Host $http_host;
	proxy_set_header Scheme $scheme;
	proxy_set_header SERVER_PORT $server_port;
	proxy_set_header REMOTE_ADDR $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "Upgrade";

	proxy_pass http://<IP_ADDRESS>:8080;
}

location /apps {
	proxy_http_version 1.1;
	proxy_set_header Host $http_host;
	proxy_set_header Scheme $scheme;
	proxy_set_header SERVER_PORT $server_port;
	proxy_set_header REMOTE_ADDR $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "Upgrade";

	proxy_pass http://<IP_ADDRESS>:8080;
}

Running the Reverb server automatically
This may differ in your environment but this is now tested in Plesk AlmaLinux 8, PHP 8.3. All on your own risk form here!
In my case I have the reverb server as a sub-domain.
yum install supervisor
nano /etc/supervisord.conf
[program:reverb-worker]
process_name=%(program_name)s_%(process_num)02d
command=/opt/plesk/php/**8.3**/bin/php /var/www/vhosts/DOMAIN.COM/SUB.DOMAIN.COM/artisan reverb:start
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/vhosts/DOMAIN.COM/logs/reverb-worker.log

When updating the .env you should do
systemctl restart supervisord

location /app {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header SERVER_PORT $server_port;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://<IP_ADDRESS>:8080;
}
location /apps {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header SERVER_PORT $server_port;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://<IP_ADDRESS>:8080;
}

@WesWeCan  This fixed it for me.

I am adding this to cloud admin but not working
`server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
server_name neo.zepay.money;
{{root}}
{{nginx_access_log}}
{{nginx_error_log}}
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
location ~ /.well-known {
auth_basic off;
allow all;
}
{{settings}}
location / {
{{varnish_proxy_pass}}
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Varnish;
proxy_redirect off;
proxy_max_temp_file_size 0;
proxy_connect_timeout      720;
proxy_send_timeout         720;
proxy_read_timeout         720;
proxy_buffer_size          128k;
proxy_buffers              4 256k;
proxy_busy_buffers_size    256k;
proxy_temp_file_write_size 256k;
}
location /app {
    proxy_pass http://<IP_ADDRESS>:8081;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

location ~* ^.+.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
add_header Access-Control-Allow-Origin "*";
expires max;
access_log off;
}
if (-f $request_filename) {
break;
}
}
server {
listen 8080;
listen [::]:8080;
server_name neo.zepay.money;
{{root}}
try_files $uri $uri/ /index.php?$args;
index index.php index.html;
location ~ .php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri =404;
fastcgi_read_timeout 3600;
fastcgi_send_timeout 3600;
fastcgi_param HTTPS "on";
fastcgi_param SERVER_PORT 443;
fastcgi_pass <IP_ADDRESS>:{{php_fpm_port}};
fastcgi_param PHP_VALUE "{{php_settings}}";
}
location ~* ^.+.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
add_header Access-Control-Allow-Origin "*";
expires max;
access_log off;
}
if (-f $request_filename) {
break;
}
}`

for some reason, after switching from http to https, my pusher server does not broadcast the event, i've applied the configs as mentioned by WesWeCan, but its still the same.
ive found out that for some reason vendor/laravel/reverb/src/Protocols/Pusher/EventDispatcher.php line 45 :
            if (! $channel = app(ChannelManager::class)->for($app)->find($channel)) {
the channel manager all() here was returning empty array.
i've changed it to
            if (! $channel = app(ChannelManager::class)->for($app)->findOrCreate($channel)) {
which then worked, the events are broadcasted and shown on client and in reverb console and with --debug (previously the clients did subscribe to the channel before the event was broadcasted, just to clarify)
after doing some more checks, i couldn't figure out why the channel manager was returning empty channels array in the first place, and after reverting back to find() and restarting the reverb server, the events were still being broadcasted successfully.
no idea what's the issue.


Multiple processes handling

Segment will have a new field link.meta.process that gives the process name.

Update cs.Segment struct to reflect the new structure of a segment

Make it possible to FindSegments from only one process (new field in the Filter struct)
This implies adding indexing to all stores

Make it possible to GetMapIDs from only one process

pull request #165


chore(main): release 0.1.9

:robot: I have created a release beep boop
0.1.9 (2023-05-05)
Features

Connections: add custom connection (7ea7739)
Connections: add gcs connection (b8715ea)
Connections: add S3 connection function (e6664fa)
Connections: add tests and small improvement (5499897)

Bug Fixes

Parameter: Validate parameter's code (4d7d666)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/BLSQ/openhexa-sdk-python/releases/tag/0.1.9 :sunflower:


Some MsgEchoServer's problem

hi,
I'm a netty beginner,and when I git clone source code and run some examples,I found some problem in the next classes.
io.netty.example.udt.echo.message.MsgEchoClient <br/>io.netty.example.udt.echo.message.MsgEchoServer
When I run the server and then run client,it'll always print some message like this "13:35:32.524 [connect-2-1] INFO  i.n.handler.logging.LoggingHandler - [id: 0x3846a69c, L:/<IP_ADDRESS>:8007 - R:/<IP_ADDRESS>:51116] FLUSH",both client and server.But when I run the client and server in debug mode,and set the breakpoint on LoggingHandler.flush(ChannelHandlerContext ctx),the problem is gone,I cann't find the reason,some one can help me ?
the code version:4.1.0.Final-SNAPSHOT

@hellocrest - Can you pull the latest code, rebuild, run from the command line, and paste what you see? The client will send a message to the server, the server will echo it back, and then the client will also echo back what it reads ... so its basically an endless loop of sending back and forth (not just a single message). So if you look something like wireshark or tcpdump on local host you should see tons of packets going back and forth.
Server:
./run-example.sh echo-server
[INFO] Running: echo-server (io.netty.example.echo.EchoServer -D_)
[jetty-alpn-agent] Using: alpn-boot-8.1.7.v20160121.jar
11:31:58.689 [nioEventLoopGroup-2-1] INFO  i.n.handler.logging.LoggingHandler - [id: 0xfcf046a9] REGISTERED
11:31:58.692 [nioEventLoopGroup-2-1] INFO  i.n.handler.logging.LoggingHandler - [id: 0xfcf046a9] BIND: <IP_ADDRESS>/<IP_ADDRESS>:8007
11:31:58.693 [nioEventLoopGroup-2-1] INFO  i.n.handler.logging.LoggingHandler - [id: 0xfcf046a9, L:/0:0:0:0:0:0:0:0:8007] ACTIVE
11:32:04.297 [nioEventLoopGroup-2-1] INFO  i.n.handler.logging.LoggingHandler - [id: 0xfcf046a9, L:/0:0:0:0:0:0:0:0:8007] RECEIVED: [id: 0x2418c50b, L:/<IP_ADDRESS>:8007 - R:/<IP_ADDRESS>:40794]

Client:
./run-example.sh echo-client
[INFO] Running: echo-client (io.netty.example.echo.EchoClient -D_)
[jetty-alpn-agent] Using: alpn-boot-8.1.7.v20160121.jar

@Scottmitch  thank you,I'll try.And paste the log later.

I've read the code,and I think I've known the reason,thank you. @Scottmitch


Update version.rb

Due to my previous pull request.

Merged and pushed current gem code to rubygems.. so gem updated

@dyatlov, great, thanks


Cant Run (compile / debug) C# code .

From @Nasr-Z1 on July 16, 2017 13:58

VSCode Version: 1.14.4
OS Version: win7

cant run C# code , i already installed C# plugin , and other plugin to be able to work with C# in VSC ,
what plugin should i install to compile or debug C# thk in advance.
Copied from original issue: Microsoft/vscode#30806

@Nasr-Z1 Are you trying to run/debug .NET Core or full .NET?

a simple c# program and also .net project

@Nasr-Z1 That doesn't really answer my question.
.NET Core is the new open source, xcopiable, cross-platform version of .NET designed primarily for web scenarios (though it certainly works well for other command line scenarios also.
.NET Full framework, is the older and more stable version of .NET that comes with Windows and allows creation of not just web and console apps, but really any kind of Windows app.
If you want to use .NET Core follow instructions on https://www.microsoft.com/net/core#windowscmd. You can also use full Visual Studio.
If you are interested in .NET Full Framework - there is some basic scenarios you can do in VS code if you know what you are doing, but unless you are an expert I would highly recommend Visual Studio: https://www.visualstudio.com/downloads/

@Nasr-Z1 Let me know if you need more help. I am closing this for now.


Add --reuse-image to not rebuild an image but instead re-populate content after r2d starts the container

WIP for #632
Command to pull in remote a repository and run an existing image instead of rebuilding because of the updated repo.

My understanding of #632 was that the repository itself hadn't changed in content but what had changed is what volumes might be mounted or what command you want to execute in the container.
This means I was thinking the process we would be trying to implement is something like performing the following manual steps:
$ repo2docker some/directory/to/a/git/repo
$ docker images
$ docker run <image-name-found-from-previous-command> some/command.sh
$ docker run <image-name-found-from-previous-command> some/other-command.sh
$ docker run <image-name-found-from-previous-command> -v/tmp:/host-tmp some/command.sh

and so on. So you aren't changing the contents of the repository. Is this also what you had in mind? I'm asking because from the text in your comment I think not. Want to make sure we are on the same page :)

I think I might be missing something. It seems like a combination of the command line args '--volumes' and 'cmd' coupled with image caching (which avoids a rebuild) can execute the steps in your example.

Good point. Ok so we are trying to do something else :)
The idea then is to allow the user to specify a repository and if there is already an image for that repository we use it. As well as populating it with the latest content of the repository?
What do you think of making this a separate command to avoid having lots of command-line flags and having to check which of them are exclusive/don't work together (for example what should --image-name do in this case)? Some off the cuff ideas: repo2docker-from-cache, repo2docker-cached, repo2docker-reuse-image, repo2docker-with-new-content. Neither of them really gets me excited but I still think moving towards having separate commands for separate jobs is the future :-/

I think we should modify the build() function in app.py to do something along the lines of:

search for an existing (potentially old) image for this "repo"
if there is one copy the contents of checkout_dir into it
return without performing further build steps

By copying the contents into the image we keep things closer to how building the image works the first time around. This means we can keep the clean up logic as it is in master. Instead of having to add new clean up logic which runs after the container stops which would be quite tricky to do.
I think by not mounting the directory we also side step some/all of the reason for prepending /private to the checkout path.

Another idea for names: repo2docker-refresh-content, repo2docker-with-fresh-content or maybe as a flag --refresh-content? I think we should try and find a name where (ideally) the user knows straight away what it does. For me run_changes is too ambiguous (does it run changes that somehow have been queued up or ...?)

https://docker-py.readthedocs.io/en/stable/containers.html#docker.models.containers.Container.put_archive is probably what is needed if we want to copy things into the container. It doesn't work with an image so we'd have to start a container from the found image, use put_archive, commit the image(?) and then use it. It would mean we get a new image for each new revision that is run without the cost of building the whole image.

I changed the flag name to --reuse-image but we can change it to something better if it could potentially be confused with --no-build. I also merged find_image() and find_repo_image() into one function with a allow_revision flag, like you suggested. And used the copy function (put_archive) instead of mounting a volume.
Before copying the new contents of the image into the container we delete the old contents to ensure that no deleted files from the old image remain. Is there a better way to remove the contents of the container rather than deleting home/user ? Maybe we can change workdir to home/user/repo_name ?

This PR is ready for review, please take a look at your earliest convenience!

Hi! I'm reviewing PRs in the project to help with this project maintenance.

I perceive this feature to be too fragile to work reliably short term, and too complicated to maintain support for long term. Due to that I'm opined towards not accepting this PR implementation.
I'm thinking that:

Files are copied after the container is started, making the container startup command possibly break. I've seen this in Kubernetes with a postStart lifecycle hook - where something is executed after the container starts, but people (myself for example) initially has the expectation that it will be instant before other things happen.
The copying of files seems quite complicated, making it hard to maintain.

I'll make a judgement call and close this PR for now, returning to development of a feature like this is absolutely an option still though if a case is made for it an capacity is allocated towards it!
I'm sorry we couldn't follow up in time with reviews on this work @tmtaybah!


NewEvents table cluttered with TimerFired events

Our application uses timers heavily, having multiple async flows that have a deadline, and we use timers for establishing that deadline until a certain service can call back to finish an action.
We follow the best practices around working with timers and we cancel the timers if we are no longer waiting for them (if we received the callback event before the deadline).
One standard way of using timers looks something like that :

var cts = new CancellationTokenSource();
var timeoutTask = context.CreateTimer(context.CurrentUtcDateTime.AddHours(someTime), new TEventType(), cts.Token);
var winner = await Task.WhenAny(_callBackEvent.Task, timeoutTask);
if (winner == _callBackEvent.Task)
{
    cts.Cancel();
    var eventResult = _callBackEvent.Task.Result;
    return eventResult;
}

throw new TimeoutException();

After a run of a workflow, the timers remain un-deleted in the NewEvents table, even though the instances related to them are finished (Completed, Failed, etc). Is this by design, or is it something in the way we are using timers that generates this behavior?

I’ll need to investigate, but I think this might be expected for canceled timers. Canceling a timer doesn’t actually delete anything from the Durable store, it just tells the orchestration to not wait for it when transitioning into a completed state. I’ll be interested to know if they stay there forever or if they get deleted after their scheduled fire-time…

Looking at the code I don't see how would these events ever be deleted ( which is confirmed by our experience so far) :

The only point where a delete is performed against the NewEvents table is in the _CheckpointOrchestration procedure :

-- We return the list of deleted messages so that the caller can issue a
  -- warning about missing messages
  DELETE E
  OUTPUT DELETED.InstanceID, DELETED.SequenceNumber
  FROM dt.NewEvents E WITH (FORCESEEK(PK_NewEvents(TaskHub, InstanceID, SequenceNumber)))
      INNER JOIN @DeletedEvents D ON
          D.InstanceID = E.InstanceID AND
          D.SequenceNumber = E.SequenceNumber AND
          E.TaskHub = @TaskHub

But for performing an orchestration checkpoint, that orchestration needs to be picked up by the worker, and the filter in the _LockNextOrchestration prevents finished orchestrations from being picked up (which is correct IMO) :

    -- Lock the first active instance that has pending messages.
    -- Delayed events from durable timers will have a non-null VisibleTime value.
    -- Non-active instances will never have their messages or history read.
    UPDATE TOP (1) Instances WITH (READPAST)
    SET
        [LockedBy] = @LockedBy,
	    [LockExpiration] = @LockExpiration,
        @instanceID = I.[InstanceID],
        @parentInstanceID = I.[ParentInstanceID],
        @version = I.[Version]
    FROM
        dt.Instances I WITH (READPAST) INNER JOIN NewEvents E WITH (READPAST) ON
            E.[TaskHub] = @TaskHub AND
            E.[InstanceID] = I.[InstanceID]
    WHERE
        I.TaskHub = @TaskHub AND
        I.[RuntimeStatus] IN ('Pending', 'Running') AND
	    (I.[LockExpiration] IS NULL OR I.[LockExpiration] < @now) AND
        (E.[VisibleTime] IS NULL OR E.[VisibleTime] < @now)

So I think that any Events that remain linked to a finished orchestration will remain un-deleted forever. Maybe a new Purge procedure for cleaning these orphan Events at deployment time would be a good add-on?


Too many frozen variables

For the simple input program:
{a;b}.
:- a, not b.
:- b, not a.

the behaviour of clingo and clingo-dl seems different.
Der Aufruf:
clingo-dl --stats=2 --sat-prepro 0 liefert unter anderem:
Tight        : Yes
Variables    : 2        (Eliminated:    0 Frozen:    2)
Constraints  : 2        (Binary: 100.0% Ternary:   0.0% Other:   0.0%)

Der Aufruf:
clingo --stats=2 --sat-prepro 0 liefert unter anderem:
Tight        : Yes
Variables    : 2        (Eliminated:    1 Frozen:    0)
Constraints  : 0        (Binary:   0.0% Ternary:   0.0% Other:   0.0%

It seems that (nearly) all variables are always frozen and none are eliminated.

This is no bug. clingo-dl uses clingo's theory interface. In this mode, clingo makes sure that the program can be extended so more variables are frozen.

Although there are no theory variables in this example and this is clearly an equivalence ?

I cannot tell you the details but I believe that in incremental mode most variables are frozen. You would have to as @BenKaufmann for more information.

I would agree on the problem with the incremental mode. If for example the equivalence is true under a certain assumption. But I can not see any case where this equivalence becomes invalid.
You are right, maybe @BenKaufmann knows more.

Just as a follow up, we managed to reproduce this with clingo with the following program:
#script (python)
import clingo

def main(prg):
    prg.configuration.solve.models = 0
    prg.ground([("base", [])])
    prg.solve()

#end.

{a;b}.
:- a, not b.
:- b, not a.

and we guess that we understand why this decision was made.
But maybe one of the experts has some splendid ideas on this how to still enable sat preprocessing on such programs.

I would agree on the problem with the incremental mode. If for example the equivalence is true under a certain assumption. But I can not see any case where this equivalence becomes invalid.
You are right, maybe @BenKaufmann knows more.

Sometimes, developing a certain feature means having to spend a lot more effort. Just look at the compromises you made in your recent clingo-dl patch...

Sure, I did not mean to do any criticism here. I just wondered if this was:
a) intentional
b) maybe easy to fix/enhance.
The question is actually driven by some real application using clingo-dl, where half of the constraints are actually used to describe equivalences of variables. Developing an encoding that does not introduce these variables in the first place is also possible, but removes a lot of declarativeness and maintainability.
So maybe we could reopen this issue on "clingo" as a feature request? (once maybe Benjamin has responded)

Hi,
in general, the reason for this behaviour is historic. Remember that clasp predates the logic + control era. It started as single-shot CDNL solver with quite complex ASP preprocessing.
When we first added support for incremental solving (i.e. the first iclingo), we did not invest too much time into incremental preprocessing but instead only limited its scope.
I guess the reason for this was complexity vs. usefulness. On the one hand, even if you only allow modular programs, variable-elimination is non-trivial for incremental programs because variables can reoccur in rule bodies. In that case, you have to be able to (recursively) uneliminate variables, which typically means that you have to remember (a subset of) clauses over such variables. In clasp, this is complicated by the fact that the atoms (and rules) of the logic program and the final solver variables (and constraints) are different entities. On the other hand, there were not many incremental programs.
The reason for the observed behaviour in this specific case has more to do with interfaces, though.
To keep complexity low, we only support a coarse-grained high-level interface between clingo and clasp. For example, we only distinguish between single-shot and multi-shot. The latter is active as soon as there is some script with a main function. Hence, in this case clasp is oblivious to the fact that a and/or b won't reoccur and are therefore candidates for elimination.

@MaxOstrowski
Sorry, I missed your comment while typing my first answer.  Regarding your last questions, I'd say
a) yes
b) no.
From the perspective of clasp, everything regarding preprocessing is unfortunately intricate. But maybe there is an easy was to add equivalences  without relying on preprocessing.

It might be possible to add an option to start clingo in single-shot mode. But this would be one of those very difficult to document options because the API can only be used in limited ways if activated. Also, this might or might not be enough for clingo-dl. There are issues, like is the logic program/theory data still available while the propagator is initialized, to consider. You can add a feature request for this with clingo. But I cannot give you an ETA. A feature request for an incremental sat-preprocessor would belong in clasp's issue tracker. Closing this here.


From doesn't throw on null parameter

Like Interleave in #696 (see 76e3516), From doesn't throw immediately when a null element is passed via params or as classic argument in any of the overloads.

This was discussed in PR #333. Please see all the comments and review there.
I am closing this as by-design.


Check spreadsheet into repo for speed

So when the data is updated it means we have to export from Google Sheets and load into the repo. But the app will be so much faster.
Also open to using gs-proxy if we can swing the $7/month for a hobby Heroku account (or can CfA get us this?)

Hmm. I'll ask about Heroku credits.


set relay port using env

Hi
I am trying to set two relays on the same machine, would it be possible to set the port via env variables?
I know I can remap ports but I am using host network on torified host so that containers can access onion relays.

I am sorry, I completely forgot that you removed docker from here


Crash on server boot

All of Fabric 3 2.7.x Dev pack
Turns out we are starting to get some players using that book and quill dupe glitch, or more likely doing it with wurst. So figured it was time to test your mod out. Crash from the log https://paste.alloffabric.com/jexuviqefu.sql
Simply removing     "illegal_items.CompoundTagMixin_SizeCheck", from golfiv.mixins.json inside the jar allowed it to load.
[00:11:02] [main/FATAL]: Mixin prepare failed preparing illegal_items.CompoundTagMixin_SizeCheck in golfiv.mixins.json: org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException The specified mixin 'org.samo_lego.golfiv.mixin.illegal_items.CompoundTagMixin_SizeCheck' was not found
org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException: The specified mixin 'org.samo_lego.golfiv.mixin.illegal_items.CompoundTagMixin_SizeCheck' was not found
You have 5 mixins declared in your illegal_items part of golfiv.mixins.json
"illegal_items.CompoundTagMixin_SizeCheck",
"illegal_items.ItemStackMixinCast_ItemStackChecker",
"illegal_items.PlayerInventoryMixin_IllegalsCheckInsert",
"illegal_items.ServerPlayNetworkHandlerMixin_CreativeItemsCheck",
"illegal_items.ServerPlayNetworkHandlerMixin_IllegalsCheckSlot",
but you only have 4 of those mixins here
https://github.com/samolego/GolfIV/tree/golfive/src/main/java/org/samo_lego/golfiv/mixin/illegal_items

Wait, you removed the class from the jar? It's totally logical that it crashes then ... 🤔
If you don't need the check, just turn it off.

No, you don't have a class in the mod. I removed the line in the golfiv.mixins.json after getting the error. Have you tested your released jar on a server? It does not boot....

Oh, I'm sorry 😞  ...
Yes, that's right, seems like I forgot to add the file to git as Spaceclouds has mentioned ...

It actually turned out that this was a temp mixin ... Thanks for reporting!


Rule Creation Flyout: Editing existing Rule doesn’t show FIELD or OPERATOR

Type of issue

[x ] Bug
[ ] New feature
[ ] Improvement

Description
Rule Creation Flyout: when editing an existing Rule the dialog doesn't show FIELD or OPERATOR - you need these to edit the rule.

Fix checked in. Closing.


error CS0234: The type or namespace name 'ApplicationModel' does not exist in the namespace 'Windows' (are you missing an assembly reference?)

Hi,
I was following the steps mentioned in readme.md->[## Building from Source]
I am not able to build BackgroundTaskRegisterer successfully.
below is the error which I got in VS2017
1>G:\Github_Downloads\electron-uwp-background\background-task-registerer\Program.cs(3,15,3,31): error CS0234: The type or namespace name 'ApplicationModel' does not exist in the namespace 'Windows' (are you missing an assembly reference?)
1>G:\Github_Downloads\electron-uwp-background\background-task-registerer\Program.cs(39,71,39,89): error CS0246: The type or namespace name 'IBackgroundTrigger' could not be found (are you missing a using directive or an assembly reference?)
Do I need to do any additional settings to get rid off this build error ?

Hi
Any Update on this ?

Hi,
You can resolve this by clicking edit to your BackgroundTaskRegisterer.csproj file. There find the Windows reference and check the path of the file.

C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmd

This fixed it for me.


Added OS and K8s version support in README.md

What this PR does / why we need it:
Added OS and K8s version support in README.md
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes # https://github.com/vmware-tanzu/cluster-api-provider-bringyourownhost/issues/478
Additional information
Earlier BYOH supported only a single version of Ubuntu and k8s. But now we support multiple versions of these.
Here is the list of supported OS and k8s versions. Added the required section in the README.md
Special notes for your reviewer

@sachinkumarsingh092 please have a look :))

Congrats @VibhorChinda for your first contribution :tada:

Congrats @VibhorChinda for your first contribution 🎉

Thanks @sachinkumarsingh092 many more to go :)) Hope so hahahahah


Add structure run tool

Add GriptapeCloudStructureRunClient tool for invoking Griptape Cloud Structure Run APIs
Refactor the Griptape Cloud tools to use a BaseGriptapeCloudClient

@collindutter @vachillo Thanks for the comments! Attempted to address everything. Lmk how it looks

@collindutter good call, added a docs page and refactored based on comments!


Update to relative links and add userguide doc link

/sig multicluster

/lgtm
On Mon, Dec 11, 2017 at 2:15 PM, k8s-ci-robot<EMAIL_ADDRESS>wrote:

Hi @font https://github.com/font. Thanks for your PR.
I'm waiting for a kubernetes https://github.com/orgs/kubernetes/people
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.
I understand the commands that are listed here
https://github.com/kubernetes/test-infra/blob/master/commands.md.
Instructions for interacting with me using PR comments are available here
https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md.
If you have questions or suggestions related to my behavior, please file an
issue against the kubernetes/test-infra
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
repository.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/cluster-registry/pull/131#issuecomment-350827450,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAWXmHuDBxenfoFpLr4fVQLnI4Oead-pks5s_X9dgaJpZM4Q95Lu
.


Make _chart in CombinedChartRenderer internal

Hi guys,
would it be possible to change the _chart property in the CombinedChartRenderer from private, to internal?
That would assist extendability a lot. I'm constantly forgetting to change this once I've updated to the new master branch.
Cheers!

No problem make a PR and I can merge it quickly using a message in the
Telegram bot ;)
בתאריך יום שני, 5 באוקטובר 2015, AlBirdie<EMAIL_ADDRESS>כתב:

Hi guys,
would it be possible to change the _chart property in the
CombinedChartRenderer from private, to internal?
That would assist extendability a lot. I'm constantly forgetting to change
this once I've updated to the new master branch.
Cheers!
—
Reply to this email directly or view it on GitHub
https://github.com/danielgindi/ios-charts/issues/446.

Awesome! ETA tomorrow morning! :+1:

Sorry, couldn't make it yet. But this is on my to do list monday morning!


Add machine learning course in hindi

What does this PR do?
Add course
For resources
Description
Its an amazing machine learning course in hindi on YouTube.
Why is this valuable (or not)?
This tutorial covers in-depth concepts of machine learning , suitable for all.
How do we know it's really free?
Its available on youtube.
For book lists, is it a book? For course lists, is it a course? etc.
Its a youtube tutorial.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Thanks, and welcome to free-programming-books!


raftstore: handle the race between creating new peer and splitting correctly

What problem does this PR solve?
Problem Summary:
cherry pick #8084 #8454 #9495 to release-4.0
What is changed and how it works?
What's Changed:
Related changes

Need to cherry-pick to the release branch

Check List
Tests

Integration test

Side effects

No

Release note

Fix an issue that split may panic and corrupt the metadata if the split process is too slow and region merge is open.

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

The failed test test_applied_lock_collector will be fixed by https://github.com/tikv/tikv/pull/9510.
I cherry-pick this PR and this test can pass 100 times.

The failed test test_applied_lock_collector will be fixed by https://github.com/tikv/tikv/pull/9510.
I cherry-pick this PR and this test can pass 100 times.

/merge

/merge


Exception export

I want to know how to migrate logs, export logs from one "exceptionless" and import them into another "exceptionless". Is there a good scheme

Hello,
You'd need to look into backing up your Elasticsearch indices via snapshots and then import them. https://www.elastic.co/guide/en/elasticsearch/reference/7.17/snapshot-restore.html


[DS-3941] changes the role to roleId in the query found in workflowIt…

Changed the "role" to "roleId" for it to properly match on the WorkflowItemRoleDAOImpl roleId attribute and not throw an error when called.

This appears to already be applied to main for 7.x as part of this much larger PR #2111
Therefore, just closing & reopening to verify builds succeed.


Final group capstone: set up your Kanban board

We are a team of four:

@ritikarawat220
@Rana-Mudassir
@jeanbuhendwa
@FrankMugagga

LINK TO KANBAAN PROJECT: https://github.com/users/ritikarawat220/projects/5
LINK TO GITHUB: https://github.com/ritikarawat220/Booking-app-BackEND

Hi @FrankMugagga,
Wow, you did it 🎉

Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
To highlight

All cards have been pointed, assigned, and have descriptions✔

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Add default KSQL schema registry URL

This PR configures the schema registry URL for the KSQL server, configuring a user specified URL if configured, or using Kubernetes service discovery if the Schema Registry has been deployed.

@mixja I would suggest to remove zip from PR. My team and I will work to provide tar-ed chart via artifactory

@qshao-pivotal I already had this in a older PR: https://github.com/confluentinc/cp-helm-charts/pull/163

@qshao-pivotal - changes made as requested


Poker tests: label hands correctly, deduplicate cards, ensure straight flush > 4OAK

Rollup fix of three issues with the tests.
Not included here is a decision on whether hands with duplicate cards should be an error and/or whether we should even test for that at all.

Let's not test for hands with duplicate cards. It seems like it would only happen in a completely degenerate situation.

Thank you!


[Image Resizer] Unneeded resize on startup

PowerToys version: 0.27.0
PowerToy Utility: Image Resiszer
Image resizer used to be a snappy little utility now it takes a few seconds to pop on the screen. Would really like it's launch speed as it was before... before the "new and improved" interface overhaul.

BE patient  atleast you have a working version ive been waiting months for a .svg preview pane option that works.  im using to SPX arm64. lol even with emulation of x86 and 64X now. i dont have a working  option at all,
Be grateful my friend or learn to code   .

I did a CPU Time comparison against 0.25 and 0.29.3, and they launch relatively the same time via Process Explorer.  On a warm start, they are within .07 CPU time.  Even on a cold start of 0.29.3, it was 0.3 CPU time diff of the warm start of 1.187 against 0.25.0
This is against the same set of 5 PNGs to load
I'm not seeing 'seconds'.  Possible to maybe setup a teams call with you to test / debug?

I did a CPU Time comparison against 0.25 and 0.29.3, and they launch relatively the same time via Process Explorer.  On a warm start, they are within .07 CPU time.  Even on a cold start of 0.29.3, it was 0.3 CPU time diff of the warm start of 1.187 against 0.25.0
This is against the same set of 5 PNGs to load
I'm not seeing 'seconds'.  Possible to maybe setup a teams call with you to test / debug?

On my system this little toys app launches in about twice the time. The old one... I'll have to go searching for it, as soon as I clicked on it I could hit the 'enter' button and change the size of the graphic I was working on... with this one, it is so slow that it brings up the image in picture viewer first!

On my system this little toys app launches in about twice the time. The old one... I'll have to go searching for it, as soon as I clicked on it I could hit the 'enter' button and change the size of the graphic I was working on... with this one, it is so slow that it brings up the image in picture viewer first!

@mesonto

t is so slow that it brings up the image in picture viewer first!

Can you please explain?

What I mean is that after selecting the image file I wish to resize and right clicking on the “Resize pictures”, I end up hitting the  key before the resize dialogue box comes up which of course pops up the image viewer. The previous version of this app was extremely quick to come up, this version slowly fades in before I can select the “resize button”. My fingers are much faster than this new iteration, but they were not before.
I am constantly resizing images and this new found slowness (I am on an i7 6700 with 16Gb RAM) is killing my workflow. Perhaps there is a way for me to turn off the ‘slow fade to open’ of this tool?
Regards,
James

!   Mesonto
From: Enrico Giordani<EMAIL_ADDRESS>Sent: March 6, 2021 6:55 AM
To: microsoft/PowerToys<EMAIL_ADDRESS>Cc: mesonto<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/PowerToys] Image Resizer now much slower to launch (#8713)
@mesonto https://github.com/mesonto
t is so slow that it brings up the image in picture viewer first!
Can you please explain?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/microsoft/PowerToys/issues/8713#issuecomment-791923970 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGLMDWXOU4YY2254VIBDJ3TCIJZ5ANCNFSM4VGLJ2VQ .  https://github.com/notifications/beacon/AAGLMDVAGVRU2UTOZQG2PGDTCIJZ5A5CNFSM4VGLJ2V2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOF4Z42AQ.gif

@mesonto, i just did a 0.25 and 0.35 build side by side, i'm sorry but i'm not seeing a fade animation.  Can you maybe do a screen recording to show the issue?
Maybe would a better solution be to have this be cmd runnable?

Clint,
No problem… attached.

james

!   Mesonto
From: Clint Rutkas @.>
Sent: April 12, 2021 8:06 PM
To: microsoft/PowerToys @.>
Cc: mesonto @.>; Mention @.>
Subject: Re: [microsoft/PowerToys] [Image Resizer] Now much slower to launch (#8713)
@mesonto https://github.com/mesonto , i just did a 0.25 and 0.35 build side by side, i'm sorry but i'm not seeing a fade animation. Can you maybe do a screen recording to show the issue?
Maybe would a better solution be to have this be cmd runnable?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/microsoft/PowerToys/issues/8713#issuecomment-818321279 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGLMDQGR4LBLWJHMT4NB2TTIODHJANCNFSM4VGLJ2VQ .  https://github.com/notifications/beacon/AAGLMDXCGH5X2UUZHTPIHR3TIODHJA5CNFSM4VGLJ2V2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOGDDJO7Y.gif

@mesonto, has to be done via web interface

here it is.
https://user-images.githubusercontent.com/833038/114494880-16f97880-9beb-11eb-9e2d-3af47ecfbed2.mp4

Totally not
My thread but did you change the UI settings under performance tab or somthing? Seems like that may be it idk

"did you change the UI settings under performance tab or something? Seems like that may be it idk" -- no but wish I did, that way the problem would be solved. they updated this app a little while back and as soon as they did, it became very slow. this is one of the few apps I regularly update because it always ends up bugging me through the win10 notification panel to much not to update it. I wish I hadn't.

Only thing i can see us maybe tweaking is there looks to be a resize for some reason.

This will get a rejuive with WinUI3 during https://github.com/microsoft/PowerToys/issues/1053 and i think your bigger ask is just maybe skip this dialog and do a straight resize which would be #3953

Yes #3953 would be best, really don't care about the fancier interface, I just want the speed back.

Is this still an issue with the latest version? /needinfo


Feature Request: customize cancel button colour

Is your feature request related to a problem? Please describe.
The cancel button is bright green---this is the international colour for "GO", not "CANCEL".  As a result I keep accidentally clicking on the wrong button.
Describe the solution you'd like
The Cancel button should be a neutral colour

Hello @mikebridge,
It's an operating system's default color for default dialog buttons. We can't change its color.


Discord community

If project gains traction, discord community may need.

Good idea indeed!
I'm in the process of gathering all the feedbacks hackers made since launch day.
Adding this to the list!


Added Flutter 3 support

Special thanks to @Peterkrol12 for the big contribution! Most of this PR is derived from his here.


release prep: update conventions

Reviewer checklist

[ ] Ensure relevant issues are linked (description should include text like "Fixes #")
[ ] Ensure any appropriate documentation has been added or amended

Coverage remained the same at 90.299% when pulling 26ceef275f7121b09d92efbc167718a63253ae8b on release_prep into 72fdde677f779066feb913938847ee32dc68667c on main.


AssertionError: contour_expand miss in module _ext

python ./tools/train.py configs/reppoints/reppoints_moment_r50_fpn_1x_coco.py --work-dir /home/wuliang/work-dir/Reppoints
Traceback (most recent call last):
File "./tools/train.py", line 15, in
from mmdet.apis import set_random_seed, train_detector
File "/home/wuliang/anaconda3/envs/mmdetection/lib/python3.7/site-packages/mmdet/apis/init.py", line 1, in
from .inference import (async_inference_detector, inference_detector,
File "/home/wuliang/anaconda3/envs/mmdetection/lib/python3.7/site-packages/mmdet/apis/inference.py", line 6, in
from mmcv.ops import RoIPool
File "/home/wuliang/anaconda3/envs/mmdetection/lib/python3.7/site-packages/mmcv/ops/init.py", line 5, in
from .contour_expand import contour_expand
File "/home/wuliang/anaconda3/envs/mmdetection/lib/python3.7/site-packages/mmcv/ops/contour_expand.py", line 6, in
ext_module = ext_loader.load_ext('_ext', ['contour_expand'])
File "/home/wuliang/anaconda3/envs/mmdetection/lib/python3.7/site-packages/mmcv/utils/ext_loader.py", line 13, in load_ext
assert hasattr(ext, fun), f'{fun} miss in module {name}'
AssertionError: contour_expand miss in module _ext

This means that mmcv did not compile successfully. It is recommended that you download the pre-compiled version directly from https://github.com/open-mmlab/mmcv.


profiles: seccomp: allow clock_settime when CAP_SYS_TIME is added

This will allow commands like:
$ docker run --rm --cap-add sys_time registry.access.redhat.com/rhel7 date 03201000

/cc @justincormack
Signed-off-by: Antonio Murdaca<EMAIL_ADDRESS>

LGTM

LGTM


Typo in new parameter set

PR Summary
Realized there was a typo in my parameter set name...
Originally added in https://github.com/PowerShell/PowerShell/pull/8889
PR Context

PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[ ] Change is not breaking
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

User-facing changes

[ ] Not Applicable
OR
[x] Documentation needed

[x] Issue filed: https://github.com/MicrosoftDocs/PowerShell-Docs/issues/3755

Testing - New and feature

[x] N/A or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] to your commit messages if the change is significant or affects feature tests

@TylerLeonhardt Please add a reference to PR where we made the typo.

Updated the PR description.
I don't think we really need a test to make sure the parametersets are spelled correctly. I don't think that's something we've done much in the past.
I found the typo while I was working on the docs for the original feature and working on the docs offered a good opportunity to double check parametersets and other things are spelled correctly.

@TylerLeonhardt Thanks for fixing the typo. I'll merge on next week.

I wonder that 4 reviewers (I too) skipped this in previous PR.


Result of delimit is not a valid dict key

I noticed a strange behavior while trying to do some dict manipulation in a template. When a slice of strings is combined back together using the delimit function the resulting string is not a valid dictionary key.
To reproduce:
{{ $keyItems := slice "key" "parts" }}
{{ $key := delimit $keyItems " " }}
{{ if eq $key "key parts" }}
  Equal!
{{ end }}
{{ dict $key 1 }}

This code fails with execute of template failed at <dict $key 1>: error calling dict: invalid dictionary key .
The following code works:
{{ $key := "key parts" }}
{{ dict $key 1 }}

What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e+extended linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=brew

Does this issue reproduce with the latest release?
Yes.

The delimit function returns the template.HTML data type, but the dict function expects a string.
Do this instead:
{{ $s := slice "k1" "k2" }}
{{ $k := delimit $s " " | string }}
{{ dict $k 42 }}

You can use the warnf function to see the value and data type:
{{ delimit (slice "k1" "k2") " " | warnf "%[1]v (%[1]T)" }}

Should the delimit function return a string instead of template.HTML? That's debatable. See #10876.

Thank you! I don't have an opinion on which type is better, but the current documentation for delimit is a little misleading:

Loops through any array, slice, or map and returns a string of all the values separated by a delimiter.


Missing Mysql

Hello, I can't find the mysql file

Because there wasn't one ever made, the database was manually constructed

oh so then, thank you my friend .


Frontend module cannot be cleanly reset

Tests include a reload(frontend) call because modules are otherwise only loaded (and initialised) once, but tests require frontend to be re-initialized with different configurations. It would be better if frontend had a proper init or something.

Fixed in #510


🐛 [firebase_ui_firestore match >1.5.4 ] getting version mismatch issue with firebase_Ui_localisation while i am not using firebase_ui_localization.

Bug report
Because no versions of firebase_ui_firestore match >1.5.4 <2.0.0 and firebase_ui_firestore 1.5.4 depends on firebase_ui_localizations ^1.5.0, firebase_ui_firestore ^1.5.4 requires
firebase_ui_localizations ^1.5.0.
And because no versions of firebase_ui_localizations match >1.5.0 <2.0.0, firebase_ui_firestore ^1.5.4 requires firebase_ui_localizations 1.5.0.
And because firebase_ui_localizations 1.5.0 depends on flutter_localizations from sdk which depends on intl 0.17.0, firebase_ui_firestore ^1.5.4 requires intl 0.17.0.
So, because pix_cam depends on both firebase_ui_firestore ^1.5.4 and intl ^0.18.0, version solving failed.
Steps to reproduce
Steps to reproduce the behavior:

Go to '...'
'...'
See error or incorrect behavior

Expected behavior
A clear and concise description of what you expected to happen.
Sample project
Providing a minimal example project which demonstrates the bug in isolation from your main App greatly enhances the chance of a timely fix.
Please link to the public repository URL.

Additional context
Add any other context about the problem here.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
PASTE OUTPUT INSIDE HERE

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
PASTE OUTPUT INSIDE HERE

Hi @vikasdduc, please provide the output of flutter doctor -v as well as the packages you have in your pubspec.yaml. Please make sure you're using the latest version of flutter and the firebase dependencies.
Thank you


Compatibility with Next.js 15 and React 19

Describe the bug
@contentful/live-preview throws an error in Next.js 15 (RC) and React 19 (RC).
To Reproduce
Steps to reproduce the behavior:

Setup project with Next.js version 15 with React 19
Follow @contentful/live-preview docs for Next.js integration
Run npm run dev to run dev server
See error TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')

Expected behavior
It works.
Context (please complete the following information):

Live preview SDK version number: 4.2.3

Additional context
@contentful/live-preview limits React's version to 18.
I built the package locally after removing this restriction and the error is gone (but I didn't test it in-and-out).

Can be fixed by correctly stop bundeling react into the packages, by changing the external option in vite.config to:
external: ["react", /^react\/.*/, "react-dom", /react-dom\/.*/],

Issue should be fixed with the newest version: 4.5.17

Reopening as there seemed to have been some issues with older versions of Next / React with this change 😓

Fixed with latest release 🙏


dev: refactor estimate_fee in pallets/starknet/src/lib.rs

Description
Currently in estimate_fee we iterate with a for loop over transactions, but it is better to use .into_iter() and map_err and then collect the results into a vector, in order to optimize the function and stop the computation if one the results errors. Similar refactoring already takes place in the RPC:
let transactions =
    request.into_iter().map(|tx| tx.try_into()).collect::<Result<Vec<UserTransaction>, _>>().map_err(|e| {
        error!("Failed to convert BroadcastedTransaction to UserTransaction: {e}");
        StarknetRpcApiError::InternalServerError
    })?;

Hello, I would like to give it a try please.

closed by #1307

This is the original comment: https://github.com/keep-starknet-strange/madara/pull/1240#discussion_r1387930853

all yours @Yogalholic

Update:
see loops that need refactoring here and here

I'm still working on the issue and opened a draft PR. I think we need a map() between into_iter() and map_err(). I've tried using instead a try_for_each() or a collect::<Result<Value, E>> (as mentioned in #1240 (comment)) but I've not successfully solved the issue yet.

fixed by #1382


RHUI release: Prod is us-central1

This fixes a mistake from https://github.com/GoogleCloudPlatform/guest-test-infra/pull/467 ; the prod region for RHUIv4 is us-central1, not us-east1.

/assign @hopkiw


Model observers not firing via seeders

Laravel Version
^10.8
PHP Version
8.2.4
Database Driver & Version
8.0.32
Description
My model observers are not firing when seeding the database.
In my user model, I have the following method:
    protected static function booted()
    {
        Log::info('booted');

        static::creating(function (User $user) {
            Log::info('creating');
        });
    }

Here is my database seeder code:
        \App\Models\User::factory()->create([
            'name' => 'joe',
            'email' =><EMAIL_ADDRESS>        ]);

After I run the seeder, all I see is booted in the log. I do not see creating.
I just recently ran composer update. Was something new added that might be causing this?
Steps To Reproduce
See description.

Have you added the User model and the UserObserver classes to the App\Providers\EventServiceProvider?

Hey there,
Can you first please try one of the support channels below? If you can actually identify this as a bug, feel free to open up a new issue with a link to the original one and we'll gladly help you out.

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

Thanks!


Null values in number fields

Is there an existing issue for this?

[X] I have searched the existing issues

Version of Corteza
2023.9.2
Current Behavior
Even if the field is set as not required, the user can't really input a Null value to number field.
When input is set to empty, the value is converted to 0.
Because of  that, expression functions like isNil don't work. Even having  the Null value set on database level gets  tralslated to 0 (although I think it may have something to do with #958)
Expected Behavior
Implement proper Null handling in Number type fields.
Steps To Reproduce
No response
Environment and versions
Corteza 2023.9.2 Docker install
SQL Server 2019

Anything else?
No response

Not stale, still open


Improve rustdoc

There is almost nothing useful at https://dtolnay.github.io/serde-yaml/. Copy over the readme examples and add at least one example for every function.

I was using this crate recently and noticed how its docs were not as awesome as serde_json, but could probably be very similar to those of serde_json. I'll try to update some code to serde 1.0 later, and maybe also have time to add some docs here.

In particular could you document how a tuple-struct is derive-serialised?


[DOCFIX] Perf tuning doc

@apc999 @madanadit @gpang Please list any other perf tuning tips you can think of

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/670/
Test PASSed.

@calvinjia can you suggest any other perf tuning tips?

Added a step in checking cluster health and a step on checking GC

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/702/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/703/
Test PASSed.


Merging User .config Preferences

Question
Does it make sense to "merger" the searchPlaces instead of replacing them? I can understand if a User wants to add their preferred places, but replacing the ones specified by the cli-tool can easily cause things to break.
For example, cspell has multiple places for a configuration file. It has a defined search pattern. Sub folders and parent folders might both have config files. If the .config.js at the root is there to clean up the root, it would mess up the sub folders.
Case in point, if someone adds a .config.js to adjust the location of prettier, they could break cspell or eslint because a "single" config is applied to ALL tools that use Cosmiconfig.
Originally posted by @Jason3S in https://github.com/cosmiconfig/cosmiconfig/issues/296#issuecomment-1473863437
Discussion
The idea of this "meta config" concept was always to put the end user in a position of power over where their config is. I can maybe see some way to notify the user via a console warning when an empty configuration is returned while a searchPlaces override is in place. This would probably include a way to silence said warning, too.
I don't like the idea of merging the places by default. Maybe there could be an option to enable merging? Maybe even just for specified libraries? I don't know what would be best yet, but these ideas should probably be refined within a separate issue.
Originally posted by @d-fischer in https://github.com/cosmiconfig/cosmiconfig/issues/296#issuecomment-1473878571

@d-fischer,
I'm concerned about the security of running .config.js without explicit permissions.

I was surprised it ran when it wasn't expected.
It is another attack vector (If an attacker adds a .config.js to a PR, it will get executed during prettier or eslint).
.config.js is used for other things besides cosmiconfig.
.config.js will crash a tool if used in a package of type module, even if it is valid ESM.

What is wrong with merging the searchPlaces? Are not `searchPlaces looked at in order? If the User's preferences come first, won't that work?

To be honest, on second thought, it might be better to merge by default. Right now, I would consider this to be a breaking change though, and as such I can not introduce this before a major bump. (Which I don't want to do now because there's #152 and #292, both of which I want to have for 9.0, and I kinda want #283 to get released before the major version bump)
Still, I definitely want to enable users to disable merging as an optimization if they so wish.

I was surprised it ran when it wasn't expected.
It is another attack vector (If an attacker adds a .config.js to a PR, it will get executed during prettier or eslint).

Isn't that just the same as other .js config files, which cosmiconfig has been supporting for quite a while?
(also, side note, eslint does not use cosmiconfig)

.config.js is used for other things besides cosmiconfig.

It is designed to be very unlikely to clash with other libraries. Can you give me examples of other things that use it, and do these have problems with this (after the bug fixes)?

.config.js will crash a tool if used in a package of type module, even if it is valid ESM.

#283 should fix that.

Closing this as merging will be default in v9.


When Sync resets, nothing happens.

When I get to the part where I have to reset, when i do, nothing pops up and it just goes back to when i installed it.

I have the same problem :/

provide more info about problem please, include screenshot or something else @Compresinq  @SquizziEz


[example] add LoRA support

This PR is motivated by train_text_to_image_lora.py. ColossalAI framework can further optimize the training.

@haofanwang can you run pip install pre-commit && pre-commit install to fix your code style and pass our ci?  Here is the contributed guide: https://github.com/hpcaitech/ColossalAI/blob/main/CONTRIBUTING.md

@Fazziekey Done.

@haofanwang  Thanks a lot for your Pull request, it is really amazing


UnicodeUtils language code support for upcase

We need to use UnicodeUtils' upcase for some languages.
For example, upcase of "i" in Turkish, must be "İ", not "I"
Secondly, giving Turkish specific words exception raised.
Following use valid after this commit:
Avatarly.generate_avatar("ş", lang: :tr)

@demirten Thanks for PR!


oasis doesn't take into account opam presense

Trying to install sulci into local ~/.opam directory, but getting negative result:
$ cd sulci
$ ocaml setup.ml -clean
$ ocaml setup.ml -distclean
$ rm setup.*
$ oasis setup
$ ocaml setup.ml -configure
$ ocaml setup.ml -build
$ ocaml setup.ml -install
...
cp: cannot create regular file ‘/usr/local/bin/sulci’: Permission denied
E: Failure("Command ''cp' '/home/balodja/projects/chat/sulci/_build/sulci.native' '/usr/local/bin/sulci'' terminated with error code 1")

Somehow oasis ignores opam environment.

Unfortunately it does. Oasis is not designed to interoperate with Opam directly. Instead it installs libraries by means of ocamlfind, which is substituted by Opam. But executables are not handled at all. So one should point Oasis where to install executables. For example:
$ ocaml setup.ml -configure --bindir $(opam config var bin)


fix: handle inconsistent formats from api for orgUnits [DHIS2-13888]

See https://dhis2.atlassian.net/browse/DHIS2-13888
This fix:

returns organisationUnits property  (what the app is currently doing) if organisationUnits exists on the response
returns the response wrapped in an array [response] if organisationUnits is not on the response (which will happen when there is only one organisationUnit returned)

I think it would ultimately be better to get the api to be consistent in its responses as coding this logic in the app seems like it becomes hard to catch if the format changes again in the future, but I gather that would be difficult at this point of time?

I think it would ultimately be better to get the api to be consistent in its responses as coding this logic in the app seems like it becomes hard to catch if the format changes again in the future, but I gather that would be difficult at this point of time?

I think it's fine to fix in the app. I agree, ideally it would be better if the backend returned a consistent response, but you never know if apps depend on this response-format. In this case, that seems highly unlikely. But it's still a breaking change, and I don't think we should do that this late in the cycle.


fix: Improved placeholders and limit clause

Added more cases that the SQL contains place holders. It now includes null and numbers. Now that it also includes numbers it is also used for the limit clause. With special behavior for HANA where the LIMIT is inline and the OFFSET is a place holder. Allowing the execution plan to create better optimizations.

Blocked: DINC0119453


Fix the single association create method. It should not raise an exce…

…ption even if persistence failed: there's already create! for that.

Thank you.


[ModuleInterface] Change swift-tools-version to swift-compiler-version

swift-tools-version as used by SwiftPM is an actual, parsed field with semantic meaning. swift-compiler-version as used when generating module interfaces is just to record what version of the compiler generated the interface. They shouldn't have the same name.

@swift-ci Please smoke test


therubyracer instead of node.js

Hi
Question:
As I don't have node.js available on my hosting service I'd like to ask if it's possible to use the gem "therubyracer" as Javascript Interpreter.
Best regards,

just fork the project and make the changes....   therubyracer gem is problematic as it doesn't compile on all o/s's. most ppl I work with use sass over less because of rails 5 defaulting to sass

@donatt also, if you still plan to use rubyracer, I highly recommend trying https://github.com/discourse/mini_racer . It should be enough for asset compilation is much more lightweight.


Fix typo

Fix typo on variable name "receipent"
Changes to "recipients" (plural) on marina.sendTransaction() for consistency

Thanks for pr @bordalix

Happy to help.


Commandable workers

Description
A woodcutter and miner should have ability to be commanded.
It would be nice if workers could be led to the working area, in case when hired in base.
Is the feature related to a problem?
It feels weird them doing work when they are not supposed to.
Solutions
Apply same commands as for warriors.
Your Ideal Solution
This option may be toggled in the mod config.

Hi Cordain, thanks for opening the issue I will see if I can do something

fixed in 1.2.0


feat: add subset parameter to DataFrame.dropna to select which columns to consider

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes internal issue 366248570
🦕

Looks like some real test failures. I'll look at these later today.

Looks like some real test failures. I'll look at these later today.

Looks like there was a bug with subset=None. I believe this is now fixed.


how do i install pygam

I tried pip install pygam and got the following errors :
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
pip install pygam
Collecting pygam
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProtocolError('Connection aborted.', error(10054, 'An existing c
onnection was forcibly closed by the remote host'))': /simple/pygam/
Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProtocolError('Connection aborted.', error(10054, 'An existing c
onnection was forcibly closed by the remote host'))': /simple/pygam/
Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProtocolError('Connection aborted.', error(10054, 'An existing c
onnection was forcibly closed by the remote host'))': /simple/pygam/
Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProtocolError('Connection aborted.', error(10054, 'An existing c
onnection was forcibly closed by the remote host'))': /simple/pygam/
Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProtocolError('Connection aborted.', error(10054, 'An existing c
onnection was forcibly closed by the remote host'))': /simple/pygam/
Could not find a version that satisfies the requirement pygam (from versions:
)
No matching distribution found for pygam

@mchari hmm that looks annoying..
im currently without a real computer (im travelling through a bunch of national parks :) so i cannt dig very deep right now.
have you looked at this error and solution?
it looks very similar to yours.
i hope to get a better chance to looks at this in a week or two.
sorry about that.

Thanks. Using --proxy worked.

@mchari great!


Listeners not removed

Honestly, i have absolutely no idea what's going on. (iojs 1.8.1)
A really simple koa app that demonstates the problem:
'use strict';

require('async-listener');
const fs = require('fs');
const koa = require('koa');

let context = null;
let uid = 0;

const app = koa();

app
  .use(function* (next) {
    const ctx = this;
    const id = uid++;
    const listener = process.createAsyncListener({
      before: function () {
        fs.writeSync(1, 'enter ' + id + '\n');
        context = ctx;
      },
      after: function () {
        fs.writeSync(1, 'leave ' + id + '\n');
        context = null;
      },
    });
    console.log('- add listener %d', id);
    process.addAsyncListener(listener);
    context = ctx;
    yield* next;
    process.removeAsyncListener(listener);
    console.log('- removed listener %d', id);
  })
  .use(function* (next) {
    console.log(context ? context.url : 'no context');
    yield new Promise(function (resolve) {
      setTimeout(function () {
        resolve();
      });
    });
    console.log(context ? context.url : 'no context');
    yield* next;
  })
  .use(function* () {
    this.body = 'foobar';
  });

app.listen(3000);

The expected output (for an http req) would be (as far as i understand the concept of asynclisteners):
- add listener 0
/
enter 0
leave 0
...
enter 0
/
- removed listener 0

But the actual output shows, that for subsequent request, the previous callbacks are called too (i don't know why):
- add listener 1
/
enter 0
leave 0
enter 0
enter 1
leave 0
leave 1
enter 0
enter 1
leave 0
leave 1
enter 0
enter 1
/
- removed listener 1
leave 0
leave 1
enter 0
enter 1
leave 0
leave 1
enter 0
leave 0
enter 0
leave 0
enter 0
leave 0
enter 0
leave 0

If I put some console.log statements in glue.js after https://github.com/othiym23/async-listener/blob/master/glue.js#L481 It shows that the listeners are not removed.
It's really interesing, but if I put a console.log statement to https://github.com/othiym23/async-listener/blob/master/glue.js#L471, the listeners are removed correctly:
if (!registered) listeners.push(listener);
console.log('after add, listeners: %d', listeners.length);
// require('fs').writeSync(1, 'after add, listeners: ' + listeners.length + '\n');
return listener;

Putting console.log after process.addAsyncListener call won't work. Using fs.writeSync instead of console.log also doesn't change the behavior.
Unfortunately, this console.log call breaks the expected asyncListener behavior:
after add, listeners: 1 // i guess this is logged because of promise inspection?
after remove, listeners: 0
- add listener 0 // console.log call in my example middleware
after add, listeners: 1 // console.log call in addAsyncListener in glue.js
/
enter 0
leave 0
enter 0
leave 0
enter 0
leave 0
no context // <-- this should print /
after remove, listeners: 0 // console.log call in removeAsyncListener in glue.js
- removed listener 0 // console.log call in my example middleware
enter 0
leave 0
- add listener 1
after add, listeners: 1
/
enter 1
leave 1
enter 1
leave 1
enter 1
leave 1
no context
after remove, listeners: 0
- removed listener 1
enter 1
leave 1
- add listener 2
after add, listeners: 1
/
enter 2
leave 2
enter 2
leave 2
enter 2
leave 2
no context
after remove, listeners: 0
- removed listener 2
enter 2
leave 2

Without enter/leave:
after add, listeners: 1
after remove, listeners: 0
- add listener 0
after add, listeners: 1
/
no context // <- this should print /
after remove, listeners: 0 // listeners are removed correctly
- removed listener 0
- add listener 1
after add, listeners: 1
/
no context
after remove, listeners: 0
- removed listener 1
- add listener 2
after add, listeners: 1
/
no context
after remove, listeners: 0
- removed listener 2

If I change the console.log('after add, listeners: %d', listeners.length) to writeSync(1, 'after add, listeners: ' + listeners.length + '\n'):
after add, listeners: 1
after remove, listeners: 0
- add listener 0
after add, listeners: 1
/
/ // <- output is fine
after remove, listeners: 0 // listener is removed?
- removed listener 0
- add listener 1
after add, listeners: 2 // the first listener is still there?
/
/
after remove, listeners: 1
- removed listener 1
- add listener 2
after add, listeners: 3
/
/
after remove, listeners: 2
- removed listener 2

The listeners array keeps growing, up to 26 items.
Maybe I'm doing something wrong, but for me it seems that this is a bug :smile:

So this is a combination of a misunderstanding about how async-listener works with a known bug that should be fixed in #21, but I have more or less given up on getting that merged.  Here is a much simpler reproduction case, throwing koa and generators into the mix makes makes it easy to go down the wrong path while trying to debug this.
'use strict';

require('async-listener');
var fs = require('fs');
var uid = 0;

setInterval(addOne, 1000);

function addOne() {
  var id = uid++;
  var listener = process.createAsyncListener({
    before: function () {
      fs.writeSync(1, 'enter ' + id + '\n');
    },
    after: function () {
      fs.writeSync(1, 'leave ' + id + '\n');
    },
  });

  process.addAsyncListener(listener);
  setTimeout(function noop() {
    process.removeAsyncListener(listener);
  });
}

One important thing to note about generators: they are NOT (guaranteed to be) synchronous.  This means that adding a listener, yielding, then removing the listener MAY be equivalent to removing the listener asynchronously.  Having an api (like generators) that is inconsistent about has no guarantees about its synchronicity is usually a recipe for headaches see releasing zalgo.
In my simplified example above, the setTimeout after adding the listener is simulating the async yield.
removeListener is not documented as well as it should be, and the semantics of removing something asynchronously, are not obvious.  Basically, when a listener is added, that listener applies to all children of the current async context.  That means all callbacks passed to async functions in the current async context (tick, or whatever else you want to call it) will be wrapped.  These callbacks will inherit the same listener and apply it to any of its children.  Any callbacks that already existed, or are created from a context that does not have the listener will not be wrapped.
Removing a listener works in the same way.  It does NOT apply globally, the listener is removed form the current context, and callbacks created from the current context will not be wrapped, any other context that have the same listener will continue to wrap callbacks.
for MOST cases you should never need to worry about removing a listener asynchronously, since it should only apply to calls of a specific chain, and removing it generally only affects a couple of callbacks.  The common case for remove is to add a listener, make a single async call, then remove the listener.  This means that that one callback will continue to propagate the listeners callbacks to its children, but nothing outside that call chain is affected.
Back to the bug part of this issue:
async listener has some weird bugs around adding and removing listeners see test proving add and remove have some bugs.
In this case, there is a bug that causes callbacks spawned while no listeners were added active (for example initial handler passed to the server created by koa) to all add to the same list of listeners.  There is a really simple, but hacky solution that should fix your issue.
add the following just after requiring async-listener
javascript
process.addAsyncListener({})

this will cause all callbacks to be wrapped as if there were already listeners, and behave as expected.
If you are interested in getting this fixed for real, go checkout #21, it needs to be updated to the latest changes, and fix a bit of logic for the 0.8 branch

Hope this is helpful

@hayes sir, you are awesome :trophy:
You're absolutely right, listeners don't have to be removed explicitly, since they are active only in the current async context, which in this case means a single http call.


SubsamplingScaleImageView: Do not process left swipe event if at edge

needed when used as a Gallery view.
Signed-off-by: Peter Cai<EMAIL_ADDRESS>

I'm currently reviewing the suggestion in #34 and it seems the best solution so far, so I'll close this request and commit the final solution ASAP.


:) turns into %img_)%

For some very unknown reason to me, whenever I use :) in the scoreboard, it turns into %img_)% instead.
If I put a space after the : it works fine but without it doesn't.

Do you have any errors in console?

Nope, neither when reloading:
> rsb reload
[14:59:28 INFO]: RealScoreboard | The config has been reloaded.

Nor when booting the server:
[15:00:03] [Server thread/INFO]: [RealScoreboard] Loading RealScoreboard v18-11-2022 Build 1
[...]
[15:00:06] [Server thread/INFO]: [RealScoreboard] Enabling RealScoreboard v18-11-2022 Build 1
[15:00:06] [Server thread/INFO]: [RealScoreboard] ------------------- RealScoreboard 18-11-2022 Build 1 -------------------
[15:00:06] [Server thread/INFO]: [RealScoreboard] Your config version is: 14
[15:00:06] [Server thread/INFO]: [RealScoreboard] Finished loading RealScoreboard.
[15:00:06] [Server thread/INFO]: [RealScoreboard] Server version: v1_19_R1 | Plugin Version: 18-11-2022 Build 1
[15:00:06] [Server thread/INFO]: [RealScoreboard] ------------------- RealScoreboard 18-11-2022 Build 1 -------------------
[...]
[15:00:07] [Craft Scheduler Thread - 1 - RealScoreboard/INFO]: [RealScoreboard] The plugin is updated to the latest version.

That's with a newly generated config and only adding :) to the end of ' &aSpecial Permission Board'

@Folas1337 can you try with this build https://github.com/JoseGamerPT/RealScoreboard/actions/runs/3679946883 ?

@Folas1337 can you try with this build https://github.com/JoseGamerPT/RealScoreboard/actions/runs/3679946883 ?

Seems to not have fixed it for me, still shows as %img_)%
"/ver RealScoreboard" shows 10-12-2022 Build 2

Nice to hear that

I locked discussion since it's fixed


Video - Fullscreen button and controls

A button in topbar to toggle fullscreen mode.

This is more relevant with video support

But music have a visualization, a lot of people like to put a visualization of the music in fullscreen.


Refactored/Simplified ish module

As the codebase of the ish module is growing as it increases in popularity and adopters, I found that the code needs a refactoring. Therefore I submitted this PR which does following improvements to the code:

Turned TRUE_STRINGS and FALSE_STRINGS into a set (this is the correct, and also a more efficient, data structure as we don't mind the order of these strings but simply check whether a given string is in the given set).
Replaced u'..'.lower() with the respective literals.
Merged the classes TrueIsh and FalseIsh into a common class BoolIsh (this way the logic is more consistent)

That way I could also easily (and without duplication) implement the __repr__ method for a more natural user exprience when using the REPL.

Moved the logic to normalize and check strings for their true-ish-ness into separate methods, also removing some unnecessary complexity there, and making that logic easier to understand.
Simplified the module magic, by simply setting sys.modules[__name__] = ish instead subclassing the module type, as suggested in #2.

This sounds great. I'll take a look when I'm back at my laptop. Thanks for contributing!

Don't forget to add yourself to CONTRIBUTORS. txt!

Are you still at EuroPython? Maybe we can have a sprint for this project!

I wish I was! I'm in Bilbao but not at the sprints :(

I created two more PRs that are based on this one. However, it turned out that when you create a PR based on a not yet merged branch, they will be created for your own fork instead for the upstream repo:
snoack/stupid-python-tricks/pull#1
snoack/stupid-python-tricks/pull#2
So I simply added these commits to this PR. Sorry for the confusion.

Here comes another commit. It fixes a regression introduced by the initial commit in this PR. That was the ValueError raised when the value isn't recognized, included the normalized instead the original string.  I also adapted tests to protect against that scenario.

I realized that stripping digits might not be a that good idea, as '1' for example would be normalized to '' (empty string), evaluating to False, then. Fixed that, only stripping whitespaces and punctuation now.
Also, I reconsidered the empty-case scenario. With #5 I suggested to add '' (empty-string) to FALSE_STRINGS. However, since strings are stripped before looked-up, " " and even "?" (with the change mentioned above) would be recognized as False-ish after normalization. So instead, we should check for empty string before normalization. Or even simpler, only entering the code path with the special handling for strings if other evaluates to True. Did that with the changes above.

I just rebased this PR on top of #3, which I rebased on top of master before.


Switch to clang-format

While the clang-format style tries to reflect the previous astyle style
as close as possible, there is, unfortuntately, still a considerable diff.
Fixes #358.

@julianoes We mention astyle here: https://docs.dronecore.io/en/contributing/code_style.html
Obviously we're now using clang.

What are the style settings defined by (previously it said astyle settings defined by astylerc).
Is it still called by make fix_style?
Are the explanations accurate? (other than typo "Large enough TO allow ...)

I will have to remove astyle from the dependencies - e.g. : https://docs.dronecore.io/en/contributing/build.html#linux
What do have to add for Clang?

@hamishwillee
@julianoes We mention astyle here: https://docs.dronecore.io/en/contributing/code_style.html

Yes, we are switching.

Obviously we're now using clang.

What are the style settings defined by (previously it said astyle settings defined by astylerc).

The settings are defined in .clang-format (added in https://github.com/dronecore/DroneCore/pull/410/commits/7269ce549525a39bfd30f82d07951fb511a45e7e)

Is it still called by make fix_style?

Yes, the usage is the same.

Are the explanations accurate? (other than typo "Large enough TO allow ...)

Yes, that's still the same.

I will have to remove astyle from the dependencies - e.g. : https://docs.dronecore.io/en/contributing/build.html#linux
What do have to add for Clang?

Correct. Developers need to have clang-format version >= 6.
For Ubuntu 16.04: (https://github.com/dronecore/DroneCore/blob/switch-to-clang-format/docker/Dockerfile-Ubuntu-16.04#L37-L42)
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main"
sudo apt-get update
sudo apt-get install -y clang-format-6.0
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-6.0 1000

Ubuntu 18.04: (https://github.com/dronecore/DroneCore/blob/switch-to-clang-format/docker/Dockerfile-Ubuntu-18.04#L21)
sudo apt-get install clang-format
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-6.0 1000

Fedora 28: (https://github.com/dronecore/DroneCore/blob/switch-to-clang-format/docker/Dockerfile-Fedora-28#L14)
sudo dnf install clang

@shakthi-prashanth-m @JonasVautherin I changed some of the clang-format options to match the previous style closer. Have another look please if you see anything too ugly.


Error starting example hello world file (Initial Setup)

I've installed MediaPipe on Ubuntu 20.04 based on the instructions given by the MediaPipe team, though when I try to run the example I keep receiving the following error:
Error
ERROR: Analysis of target '//mediapipe/examples/desktop/hello_world:hello_world' failed; build aborted: Traceback (most recent call last):
 File "/root/.cache/bazel/_bazel_root/6be9f6de2f9f4c6f3d41746e8583a46a/external/org_tensorflow/third_party/py/python_configure.bzl", line 208
  get_python_bin(repository_ctx)
 File "/root/.cache/bazel/_bazel_root/6be9f6de2f9f4c6f3d41746e8583a46a/external/org_tensorflow/third_party/remote_config/common.bzl", line 44, in get_python_bin
  which(repository_ctx, "python")
 File "/root/.cache/bazel/_bazel_root/6be9f6de2f9f4c6f3d41746e8583a46a/external/org_tensorflow/third_party/remote_config/common.bzl", line 29, in which
  execute(repository_ctx, <1 more arguments>)
 File "/root/.cache/bazel/_bazel_root/6be9f6de2f9f4c6f3d41746e8583a46a/external/org_tensorflow/third_party/remote_config/common.bzl", line 208, in execute
  fail(<1 more arguments>)
Repository command failed

I have tried reinstalling python and the entire ubuntu system but still no luck...
I'm running Ubuntu 20.04 on a VM using VirtualBox if that helps(?)

Seems like Bazel doesn't find the python binary. You can add --action_env PYTHON_BIN_PATH=<path> to specify where it is.
For example, we have a similar issue on native Windows and we solved it by running
C:\Users\Username\mediapipe_repo>bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="C:/python_36/python.exe" mediapipe/examples/desktop/hello_world

See more details at https://google.github.io/mediapipe/getting_started/install#installing-on-windows

Thanks for the swift response @jiuqiant , that seems to have solved one problem and now I've come across two other problem with the following error:
bazel run -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="/usr/bin/python3.8" mediapipe/examples/desktop/hello_world:hello_world
DEBUG: Rule 'rules_cc' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "a07fc8b90c22e42962142504438a84b31567976adcd9ee1a4c9f75d2e3396f8d"
DEBUG: Repository rules_cc instantiated at:
  no stack (--record_rule_instantiation_callstack not enabled)
Repository rule http_archive defined at:
  /home/edbert/.cache/bazel/_bazel_edbert/6be9f6de2f9f4c6f3d41746e8583a46a/external/bazel_tools/tools/build_defs/repo/http.bzl:336:31: in <toplevel>
INFO: Analyzed target //mediapipe/examples/desktop/hello_world:hello_world (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //mediapipe/examples/desktop/hello_world:hello_world up-to-date:
  bazel-bin/mediapipe/examples/desktop/hello_world/hello_world
INFO: Elapsed time: 0.413s, Critical Path: 0.01s
INFO: 0 processes.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
Segmentation fault (core dumped)

I've also received the following error on top:
$export GLOG_logtostderr=1:
INFO: From ProtoCompile mediapipe/calculators/internal/callback_packet_calculator.pb.h:
bazel-out/k8-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/calculator.pb.h:
bazel-out/k8-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/calculator_profile.pb.h:
bazel-out/k8-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/tool/calculator_graph_template.pb.h:
bazel-out/k8-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.

Seems like MP is not 100% ready for supporting Ubuntu 20.04 LTS.
See the workaround at https://github.com/google/mediapipe/issues/816#issuecomment-646816081.

The fix is released in https://github.com/google/mediapipe/commit/e9fbe868e55fa23aaabc31f9f847c22287062850.


Support Ruby 3.2

I added Ruby 3.2.2 to the CI matrix.
In addition, I updated some gems in Gemfile.lock to run spec locally with Ruby 3.2.2.

I titled this PR "Support Ruby 3.2", but it can be misleading.
It is because we didn't need any changes on the implementation to support Ruby 3.2.


irmin-pack: Fix inode's find starting depth

Let's merge as soon as CI is happy

Codecov Report

Merging #1672 (92dbe0b) into main (38697ae) will decrease coverage by 0.05%.
The diff coverage is 100.00%.

:exclamation: Current head 92dbe0b differs from pull request most recent head 236ecfe. Consider uploading reports for the commit 236ecfe to get more accurate results

@@            Coverage Diff             @@
##             main    #1672      +/-   ##
==========================================
- Coverage   61.06%   61.01%   -0.06%
==========================================
  Files         102      102
  Lines       12735    12733       -2
==========================================
- Hits         7777     7769       -8
- Misses       4958     4964       +6

Impacted Files
Coverage Δ

src/irmin-pack/inode.ml
77.45% <100.00%> (-0.06%)
:arrow_down:

src/irmin/watch.ml
78.87% <0.00%> (-2.12%)
:arrow_down:

src/irmin-git/atomic_write.ml
82.11% <0.00%> (-1.33%)
:arrow_down:

src/irmin/commit.ml
63.78% <0.00%> (-0.34%)
:arrow_down:

Continue to review full report at Codecov.

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

Pushed a formatting fix.

Thanks


Consider upgrading cryptography up to 42.0.5

currently promptflow restricts cryptography earlier than  42.*, which has vulnerabilites like

Hi @chhzhu-zoom,
Thanks for your feedback, we have already bumped the version of cryptography to 42.0.4 in this pr https://github.com/microsoft/promptflow/pull/2083
And it was released in the newest sdk version 1.6.0.


Workshop code in python is outdated

What happened?
The workshop code in python is outdated. See student and instructor copies.
Workshop page is at main/content/en/docs/workshop/resources.md

I created an updated version under my GitHub account, but I am not sure how to update the glitch project. I clicked the "request to join" button but got no feedback.
Maybe we should create a repo in open-telemetry org for this purpose?
@austinlparker what do you think?

following up on this.
@austinlparker: do we want to keep those resources (presentation, glitch) updated/maintained? Is opentelemetry.io the right place to discuss or does this belong to open-telemetry/community?
cc @cartermp , @chalin

I would be in favor of dropping these assets in favor of the community demo.


Feature/api fallback

Now the presenter fallbacks into a new geocoder if the android one fails. The new one is based on Google api and only works if the key has been provided when invoking the intent.

I have a question.
What you think about using google's geocoder first if we have the key, and fallback into android one?

I have a question.
What you think about using google's geocoder first if we have the key, and fallback into android one?

We have only 2500 requests per day on free tier. Keep in mind that the android geocoder fails in a very low percentage, so it's better to have first the one we know that will work more times and will consume less bandwith and time