How to rank frameworks

Hi,
As a standard tool, we decide to go on wrk.
This benchmarking tool give us a lot of useful informations.

Global (per scenario / route to test)

Duration
Number of requests
Total bytes received
Number of error (socket / read / write / http / timeout)
Number of

Latency

Minimum
Maximum
Average
Standard deviation

Percentile

50
90
99
99.999

ALL informations SHOULD be displayed, but COULD be used to determine ranks (I mean display is OK, but to keep it simple now we SHOULD only use 1 metric to rank).
@OvermindDL1 What do you think about talking only the number of requests-per-second to rank ?
Regards,

sure. I think those informations are useful. However, they SHOULD be displayed, not imperatively on the main table, but somewhere ...
In order to keep simple, I suggest choosing 3 or 4 metrics to display on main table :

Duration
Requests
Errors
Latency (average or deviation, not sure of what)

Hmm, for active display, perhaps:

req/s
average response latency
99%ile response latency
throughput

Honestly errors probably don't need to be shown, if it's anything but 0 ever then a test is broken and it shouldn't be posted anyway

@tbrand To simplify reading, I think we should display one ONE table of results (sorted by rank)

It's interesting to see how these results can change, last time this file was updated, rayo was doing ~87K reqs/s and polka around ~86K reqs/s. Now they have both dropped by +10K reqs/s each and the order has shifted.
What kind of consistency are you providing/considering for these tests?
Consistently, in all my tests rayo is still the faster.

Hi @aichholzer, We are adjusting tests parameters, duration, request number ...
I hope to release stable results soon

@waghanza I'm not sure that adjusting such things should cause such shifting results, that implies to me the server it is running on is either running other code, the network is chatty, it's a cloud machine or VM, etc... etc...  My results were fairly stable, less than 1% variance between runs.

On the last results it shows this:
OS: Linux (version: 4.16.11-100.fc26.x86_64, arch: x86_64)
CPU Cores: 8
threads: 9, requests: 100000.0

Is that the wrk server or is it the server that the servers are running on?  Are they running on the same machine (in which case that thread count is super WRONG)?  Why is the request count so so very low many of the server will not even last a second with such a small amount), and why is it not time based instead of request based (that way you can ensure that the servers warm up properly, especially important for JIT'd languages) and let the siege spool up fully (which with only 100000 requests is too short for many).  Also why is it reporting 100000.0 requests when you can only send an integral number of requests?  Is the CPU Cores count the number of physical cores or the number of hyperthreads?

@OvermindDL1 sure, I know it ...
However, I think we SHOULD NOT stopping to run tests ... I know that your 16 cores server is waiting ... I'm trying to find a solution to automate all this things (my idea is to compute results and to display in multi-hardware context, like tfb does, physical, cloud, but in way that COULD be done by others)

What's the easiest way to get wrk installed on Ubuntu 18.04 with dependencies and such?

@btegs
sudo apt-get install build-essential libssl-dev git -y
git clone https://github.com/wg/wrk.git wrk
cd wrk
sudo make
# move the executable to somewhere in your PATH, ex:
sudo cp wrk /usr/local/bin

@tbrand Thinking about it, I am not sure that ranking frameworks has to be done.
Actually, we display informations about ranking only from the req/s perspective
However, each frameworks has (at least) 3 kind of information :

The number of requests that could be send by the server

req/s
latency

The bandwidth used between server and client (very useful information as wireless environments)

throuput

@OvermindDL1 what do you think ?

req/s and latency are definitely big ones to show, as for throughput in relation to wireless and such I think is less big, rather the size of each request where it explicitly lists that this is with their default header set could be useful to list if you want to go that way (easily tested by doing a request on a server and just seeing the total size returned).  For throughput to be a useful bit of information overall each server would need to return the exact same information, which is doable though.

sure, we could optimize all this frameworks (for throughput), but is this very what developers does ?
as I am a developer, I prefer (mostly) use out-of-the-box things (not customising ...) and will it be fare to show results after tweaking  (not default ones)

Heh, exactly my point, thus throughput is probably not useful to rank on then as they are not testing the same thing.

@OvermindDL1 that's why is propose to remove ranking from README, or having a strong ranking (e.g : using at least req/s and latency)
for example, akkahttp is 16/40 but has a huge latency, more than perfect (which is 17/40)

Language (Runtime)
Framework (Middleware)
Requests / s
Latency
99 percentile
Throughput

scala
akkahttp
59853.33
210753.00
4777700.33
47.02 MB

swift
perfect
56951.00
17329.67
24624.33
16.87 MB

The actor model tends to have a high latency in exchange for throughput, the BEAM languges (erlang/elixir) tend to do the same.  But yeah, a strong ranking like that is good, graphs especially to give more visual details.

@OvermindDL1 I think you can remove this ranking (on the actual README), in order to open a clean PR for this

@tbrand what do you think ?

@waghanza
Ranking is most valuable metrics for this repository.
I guess that people who give us starts want to know the simple results, not for complex profilings.
Of course we can show the detail results (expanded markdown for ideal) but I want to show a simple ranking at first view as I said at somewhere.

@tbrand sure, I'm total up this idea
However, the actual ranking, is not accurate (based only on req/s).
For example, with the battle on frameworks in :

node
ruby
php
python

actual ranking shows :

node
php
python
ruby

but, when taking req/s + latency, we have :

node
ruby
python
php

My point is NOT to definitively remove the ranking, but prevent showing nasty results, either by removing (temporarily) from the README or using latency
I do not have personally enough time to deal with this.
I think, we SHOULD remove rankin+ having a banner on README` that explain why not having ranking infos ?
What do you think ?

@tbrand Yes, this example what just a poor / basic operation

rank => (+)req/s (-) latency

latency is important since it represent time between request and response

But it's duplicated since req/sec includes the latency metrics.
As you says it's too poor since the unit of them are difference. (req/sec is [scaler/sec], latency is [sec])

@tbrand req/s is only https://github.com/wg/wrk/blob/master/SCRIPTING#L108
what I have understood from last weeks (working on this project)

req/s refer to the number of sent requests (to the server)
latency refer to the number of received requests (that have been sent)

@OvermindDL1 Am I right ?
PS : For me ranking  SHOULD refer to what consumer feels when using an app

What? So the unit of req/sec is scaler? The name of req/sec is completely wrong!

Incorrect:
req/sec: Is the number of completed requests per second, as in open the connection, set up the TCP state, send headers, received data back, (traditionally closing the connection is not counted and I don't think it is here either).
latency: Is the amount of time it took to complete a request on average, from connecting to receiving the completed data (which is a single packet each way after setup in these simplified tests).  This is why it has things like 99th percentile and so forth as things like 99th percentile shows what the slowest 1% of the slowest requests take, and 99.99th percentile shows what the 0.01% of the slowest requests take, which are highly useful metrics for showing worst-case timings (hence traditionally you have 50, 75, 90, 99, 99.99, 99.9999 or so for the percentiles).
Subtracting latency from req/sec is not a useful metric as they have different magnitudes.

Thus a library that can do 500k req/sec at an average latency of 300ms and a 99th percentile latency of 1200ms, and another library that can do 200k req/sec at an average latency of 20ms and a 99th percentile latency of 80ms have super different results depending on what you are optimizing for.  In general the one with higher latency but higher req/sec is better when you want to optimize for massive connection counts on a single server, and the one with lower req/sec but super low latency is fantastic for low-rate servers that need to return data super-fast (think of an advert server).  (And of course some languages/frameworks are great at both.)

@OvermindDL1 is right, sorry for mis-leading words

@OvermindDL1 @tbrand So the question is : which metric(s) SHOULD be used to represent to represent the rank (which context) ?
For me, but perhaps because of my knowledge, I think we want to rank in a web context (obviously back). So, I think, taking only req/s is NOT ideal / accurate

@tbrand If we refer to initial goal, in the README

Measuring response times
I think ranking by latency is more relevant than by req/s

Ah, I missed that, if Measuring response times is paramount, than latency is what is wanted (at the very least average latency and, say, 99th or 99.99th percentiles or just average and deviation).

@tbrand We can also display two tables on README :

1 sorted by latency
1 sorted by req/s

The fact is we are comparing web tools. For me, response time (latency) is an important aspect when we are in a so-called back-end perspective (API), and request time (req/s) is an important aspect when we are in a so-called front-end perspective.
@OvermindDL1 That's why, I think, display two tables (+ explanation) will be accurate

@OvermindDL1 just for information
With req/s, I found :

C++
Go
Rust
Java
Nim

With latency, I found :

Rust
Ruby
C#
C++
Java

Makes sense, the C++ library I was using uses a deferred networking system behind it (libevent), so it tries to maximize throughput to handle the maximum number of connections possible via batching calls.  I'm guessing the average Rust library does the opposite, but it would be interesting to see individual projects.  Tradeoffs everywhere and it's the kernel calls and such that determines how it will be tuned (with language overhead on top of course).  :-)

Actix (Rust) use the same system than evhtp, but the Rust framework that has the best rank on latency is nickel ;-)
It is this astonishing that Ruby (roda) is better that C# or java

sure, but it make me asking myself if having only low latency is the only metric we should use for back-end stuff
some back-end stuff, like API in python are faster than ruby ones
however, in result japronto has a latency of 21209 but roda has a latency of 3166

@OvermindDL1 @tbrand  I was thinking of a display, like this
Ranked by latency

Language (Runtime)
Framework (Middleware)
Requests / s
Latency
99 percentile
Throughput

ruby
roda
38079.00
1735.67
27182.00
12.67 MB

ruby
rack-routing
31005.33
2121.33
29419.33
5.65 MB

ruby
flame
19051.33
3362.00
36238.00
3.50 MB

ruby
sinatra
15901.00
4026.67
45941.33
13.54 MB

python
japronto
82996.67
11618.67
13816.00
33.43 MB

ruby
rails
4154.67
15418.00
99327.00
3.77 MB

node
polka
77130.67
19931.33
323806.67
36.62 MB

node
fastify
66254.67
23568.67
375535.33
65.65 MB

node
rayo
64014.67
23681.33
396522.67
31.35 MB

node
express
47145.33
46062.67
913263.33
39.29 MB

python
flask
18397.00
56160.00
155783.00
14.98 MB

python
sanic
14197.67
67893.33
132685.00
8.62 MB

python
django
10958.00
94362.33
420568.00
10.30 MB

php
symfony
42371.00
169928.00
2860775.33
70.48 MB

php
laravel
30946.33
309246.00
4397344.67
49.90 MB

python
tornado
1878.33
528993.67
3523509.00
1.34 MB

Ranked by requests per seconds

Language (Runtime)
Framework (Middleware)
Requests / s
Latency
99 percentile
Throughput

python
japronto
82996.67
11618.67
13816.00
33.43 MB

node
polka
77130.67
19931.33
323806.67
36.62 MB

node
fastify
66254.67
23568.67
375535.33
65.65 MB

node
rayo
64014.67
23681.33
396522.67
31.35 MB

node
express
47145.33
46062.67
913263.33
39.29 MB

php
symfony
42371.00
169928.00
2860775.33
70.48 MB

ruby
roda
38079.00
1735.67
27182.00
12.67 MB

ruby
rack-routing
31005.33
2121.33
29419.33
5.65 MB

php
laravel
30946.33
309246.00
4397344.67
49.90 MB

ruby
flame
19051.33
3362.00
36238.00
3.50 MB

python
flask
18397.00
56160.00
155783.00
14.98 MB

ruby
sinatra
15901.00
4026.67
45941.33
13.54 MB

python
sanic
14197.67
67893.33
132685.00
8.62 MB

python
django
10958.00
94362.33
420568.00
10.30 MB

ruby
rails
4154.67
15418.00
99327.00
3.77 MB

python
tornado
1878.33
528993.67
3523509.00
1.34 MB

Looks good, though I'd recommend putting what the value is in latency, I'm guessing it is microseconds(µs)?

@OvermindDL1 good catch, but I prefer display in ms, I find it more human-readable

@OvermindDL1 good catch, but I prefer display in ms, I find it more human-readable

Likewise, but the values that are there now did not seem to be that, thus conversion necessary.  :-)

TBH, I didn't follow the full thread, but this seems like the appropriate place to leave this concern:
The frameworks should all be deployed on a DigitalOcean droplet with 1 CPU only. A lot of these frameworks (or the languages themselves) naturally take advantage of all available cores, while most others require manual setup / a flag to enable such behavior.
For example, Crystal & Node.js require manual process forking. Rust frameworks are variable, but most will automatically spread across cores. And I believe go/fasthttp fans out across cores as well.
The point is that deploying to a single-core server server to normalize all test subjects without any code changes. And when interpreting results, it's much easier to reason about since everything is forced to be single-core. You get a nice unit of comparison.
The wrk runner can & should run on a separate machine.

Hi @lukeed,
You have 2 suggestions.

Deploy to 1 CPU only droplets

Honestly, I didn't get the point. It's a language advantage to use all cores / CPUs. I do not understand why not taking count on this ?
And, for example, pm2 is in charge of spreading node process here :stuck_out_tongue:

wrk

Sure, the metrics shown on README.md are computed from docker host. The metrics will be computed on cloud, of course with a remote sieger

Yes, but if you are running a single-threaded language, you almost always change the deployment configuration to account for it. So that, instead of paying for an 8-core machine (and only using 1), you either
(A) manually fork the process, if possible;
(B) use a tool like pm2 to fork for you, if available;
(C) or load balance a cluster of 8 x 1CPU machines

My point is that it's unfair to report requests/sec & latency for single-core vs multi-core languages without normalizing the behaviors. As mentioned, some frameworks within the same language have different approaches to multi-threaded processing.  Running everything on a single core is a good unit of measure & is the easiest way to normalize across all behaviors.
At the end of the day, multi-core server is a convenience. Any server build on any language/framework can utilize 8 cores one way or another. It's just a matter of whether it's built-in and done-for-you or whether it is not. That's why it's unfair to compare 8 against 1.

@lukeed We use  pm2
Here a list of app server in use :

php => php-fpm / nginx
node => pm2
python => gunicorn (async)
ruby => puma

All app server spread on all cores, it's not a framework feature, but an environment behavior
The point you reveal is right, this is not fair to compare single thread / core languages with multi-cores ones ... However, it's not faire to downgrade multi-core / threads.
I will say that metrics are important, but their are only metrics. We must rank depending on use case, that why I propose to split ranks, latency for back-end stuff and req/s for front-end stuff.
I think it's not fair neither to compare node and haskell, the only comparison is about performance not language, and performance depend on use case
Even if some languages can not utilize all cores, it's a choice of language design (it COULD be either a pro or a con, depending of use case)

I fully understand. But as a quick retort: Your shortlist is missing Crystal & Rust. And, as a final point, you also introduce overhead which (of course) detracts some % from the overall performance. For example, since long-running uptime doesn't matter for a 5 minute benchmark, you could use this instead of pm2 & the memory usage and latency would improve:
const { cpus } = require('os');
const cluster = require('cluster');
const app = require('./app');

if (cluster.isMaster) {
  let i=0, cores=cpus().length;
  for (; i < cores; i++) {
    cluster.fork();
  }
} else {
  app.listen(3000);
}

The same thing (barring different syntax) can be done in Rust & Crystal.
This is the other approach to "downgrading" the multi-core languages. The trouble is it's more work & requires more knowledge to do it correctly per language (and per framework).

FWIW, I keep saying "per framework" because there are Node.js & Rust frameworks that do the cluster.forking snippet above.

Of course, you're more than welcome to disregard all of this & keep reporting how you'd like 😅
If that's the case, my final request would be that you report the "per-thread" result from wrk and not the totals/averages.

Your shortlist is missing Crystal & Rust

Rust is actually the first (actix), and crystal is down the list (due to dockerization)
if you want to add other language, feel free to PR

And, as a final point, you also introduce overhead which (of course) detracts some % from the overall performance

Sure, I will take inspiration with tfb to add a more stable results (has a  warm up phase before running severals phases*)

The same thing (barring different syntax) can be done in Rust & Crystal

You mean spreading on all cores ?

This is the other approach to "downgrading" the multi-core languages

How ?

Yes, actix is perfect example. It has multi-threaded built into the framework. But if you used tokio-minihttp, another popular Rust server, it is single-threaded only & you (the developer) are supposed to handle the multi-threading yourself.
Effectively, actix includes my snippet above & tokio-minihttp doesn't. These are just two names, but this happens all the time across Node & Rust -- and I'm starting to see it in Crystal too.
So now you, the benchmark maintainer, need to know of these differences and actively maintain them, or request that PRs that introduce them as a test subject need to do their homework before merging. That's a lot more work!
This is why I initially suggested running all languages / frameworks on a single-core machine. It means you don't have to worry about all the details of each framework. All single-core languages can be clustered to operate as a multi-cored cluster. Similarly, all multi-core languages can operate on a single core just fine. (Most multi-core-oriented languages deal with threads/coroutines anyway, and so are not limited to number of physical cores on the machine.)
As a final note, here are some Polka (Node.js) numbers on my shitty laptop:

Plain, single-core
Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     6.90ms    1.00ms  18.86ms   69.44%
    Req/Sec     3.64k   334.65     4.73k    71.53%
  146229 requests in 10.10s, 13.81MB read
Requests/sec:  14475.59
Transfer/sec:      1.37MB

PM2, 6 threads
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.99ms    2.30ms  73.22ms   94.71%
    Req/Sec    14.04k     1.44k   17.22k    86.00%
  558666 requests in 10.00s, 52.75MB read
Requests/sec:  55848.44
Transfer/sec:      5.27MB

Native Cluster, 6 threads
   Thread Stats   Avg      Stdev     Max   +/- Stdev
     Latency     1.95ms    1.93ms  44.03ms   92.54%
     Req/Sec    14.80k     1.39k   20.93k    83.87%
   593223 requests in 10.10s, 56.01MB read
 Requests/sec:  58727.34
 Transfer/sec:      5.54MB

As you can see, pm2 includes overhead that can be measured. You can't and don't want to be held accountable for knowing all the best practices or tricks for each language & framework.

As for actix, the implementation was done by @fafhrd91, I assume it is a correct as for a rust developper
pm2 is used on all cores, I assume it is considered as a best-practice in node communities.
Neither do I nor @tbrand (nor @OvermindDL1) COULD reasonably maintain ALL implementations, each developer have specialization(s).
Our goal is not to teach the word anything :stuck_out_tongue_closed_eyes: just to learn and to gather communities ;-)
For example, @thiamsantos made several implementations, the PR waiting (wai / haskell) is not mine
I understand your concern about how hard it is to maintain all this, but it not because it is hard, that it is not doable :tada:
If your have any tips or any advice, we are open

It is correct, that's my point. And so would any implementation with tokio-minihttp. The problem is that have a mixed & inconsistent set of benchmark targets. Multi is mixed with single & there's no indication of which items are which.
This makes the entire result set meaningless -- sorry.
In the old benchmarks, this wasn't nearly as much of a problem. But now that this repo is reporting latency & throughput metrics, you need to do it right.

Techempower benchmarks are useless, that's why I'm hopeful for this project.
Currently the results are a misrepresentation of true performance. They're only a record of various frameworks run on a cloud server w/ no methodology to them.
Let's fix this~! 👍

@lukeed Don't even bother with this repo. Clearly they have no idea what they are doing here.
I was blown away by the fact they literally put single-threaded servers head-to-head with servers that automatically use all CPU cores. Just sad to see the incompetence in this repo.

Honestly, I didn't get the point. It's a language advantage to use all cores / CPUs. I do not understand why not taking count on this ?

It's not a language advantage to make use of all CPU cores - any and all languages can do this, you're just too incompetent to set this up. Either you deploy 8 (if 8 is number of logical CPU cores) instances of a single threaded server and compare that to 1 instance of a server that automatically makes use of all CPU-cores, or you limit the hardware to 1 CPU core.
I know servers that in one single thread perform 90% of what Actix Web does in 8 threads. Instead of invalidly showing Actix Web as top server you need to go back to school and learn how to set up a local cluster of single-threaded instances (this is pretty much a 101 thing when it comes to Node.js and similar servers).
Completely incompetent test.

@alexhultman -Most of the time I like your writing and your no-bullshit and to-the-point comments, but in this case -I think- the additional harshness is not warranted.
As for the rest, I'm with @lukeed -All tests should be run on a single CPU/core server. Comparing single-core to multi-core frameworks (when not done programmatically) is not a fair meassure.

@lukeed

Techempower benchmarks are useless, that's why I'm hopeful for this project

Why ? You can with :heart: propose any modification, either here or in tfb
@alexhultman

Clearly they have no idea what they are doing here

Let's give use some ideas then
@aichholzer

All tests should be run on a single CPU/core server

I still do not understand why. The current usage (for production environments) is not to run on mono-thread / mono-core
Results are non ready to be considered as stable, their are still computed for a local docker host. I intend to have this docker to let developers add some frameworks, while I'm trying to run this in cloud

(has a warm up phase before running severals phases*)

As my benchmark script did.

Techempower benchmarks are useless, that's why I'm hopeful for this project.

Eh, don't, any microbenchmarks like this and techempower are overall useless, I consider this just a fun little thing.  It can be useful to test overall network backend handling speed however, which is where I find this to be a bit useful, but still not perfectly accurate (especially since most of the languages use a C socket backend anyway).

This makes the entire result set meaningless -- sorry.

It always has been meaningless except overall differences between when things are implemented properly.  But overall the tests should absolutely not be limited to single core, they should at minimum use 4-core if not more like 8 or so (I'm used to dealing with 64 cores).  Many frameworks will not hit their full stride and capabilities until they are many-core because of dispatch threads and so forth and thus you are highly mis-representing them.  All languages, including the crystal ones and all, should perform proper multi-threading as suggested by the library being tested.

You have a wiiiiiiiide varity between different servers. Benchmarking them is essential in finding out if they are worth your time. What is important is knowing how to properly benchmark something. This is the issue with this whole repo: it completely lacks any kind of investment per server.
Basically, this repo is the equivalence to benchmarking different cars and drawing the conclustion that automatically geared cars are the fastest. And the reason boils down to the test driver being too incompetent to even shift gear on all the manual cars, so essentally ends up running only on gear 1.
Techempower is worthless for different reasons. Mostly because they mix a bunch of different variables and present them as if they represent 1 single variable, namely the server. This is invalid science for so many reasons (yes, proper benchmarking is a science and follows the same logical conclusions and proofs).

@alexhultman You seems to have a great knowledge, why not helping (instead of injuring) ?

I'm not "injuring" anything or anyone. I'm criticizing fake information. In a healthy and free democracy freedom of critique is extremely fundamental and is how we separate fake bullshittery from actual scientific knowledge. If everyone got help with everything we would not have any kind of evolution or competition whatsoever and we would deteriorate into a socialistic social justice warrior safety net society without any kind of actual skepticism and free thinking. Do not assume everyone is as socialistic and gender-neutral as you, because most people are not.

@alexhultman You are criticizing this project, I think this approach is good.
However criticizing alone is NOT helpful, in my point of view.
The question here is : How to rank frameworks  ? not deciding which framework is better ?
(the comparison here is raw performance, nothing more)
@alexhultman If you have any idea to help, feel free to give you opinion, in which metric could be used, it is an OPEN discusion, then :stuck_out_tongue:

Benchmarking repo's are inherently broken in many ways and are in no sort ever able to be considered accurate, if you do it for any reason other than "It is fun!", then it is misguided.
If you see issues with a project (of which I see MANY with this one), then PR and discuss to fix it, attacking is generally not productive.
This specific issue is not about how things like the crystal servers are inherently broken here because they are not distributing across cores properly or so, thus issue is about how to rank.  The methods of testing (of which I could easily see amount-of-cores to be such a different dimension to the results as I've mentioned in a few other places, but is not implemented currently) is not part of this specific issue.  :-)

If everyone got help with everything we would not have any kind of evolution or competition whatsoever and we would deteriorate into a socialistic social justice warrior safety net society without any kind of actual skepticism and free thinking. Do not assume everyone is as socialistic and gender-neutral as you, because most people are not.

Now bringing up things that have not only nothing to do with this issue, but nothing to do with the project or coding in general is attacking.  Stick with coding in projects such as this as the information and the merits of the information being discussed and PR'd are what matter.

Arguing with random socialists on the internet, yaaaaaay! Basically GitHub is entirely full to the brim with socialists arguing for world peace and gender neutrality.
Criticism alone serves as a pointer for knowing if you're headed in the right direction or not. Sometimes (most of the time) people don't have the time to freely work on a project they from the start consider to be fundamentally broken. In those cases criticism is all you get.
If you don't want criticism then don't post a public project where you claim to know what you're doing.  We can't all be tree hugging hippies spending money we didn't earn ourselves.

There have been at least three ideas that have been presented in this discussion to fix the approach taken. That is help. Beyond that, you're asking us to commit code changes to your code base, which is something that very few people have the time & luxury to afford.
All suggestions have been met with a "not understood" , a "I disagree", or "they're good as they are, we don't need to be perfect". All are dead ends, which means I have no reason to continue in the discussion.
And, by the way, sending in PRs for the proposed fixes seemingly would also be a waste of time. One can only assume that you'd still have the reasons of disagreement, understanding, or complacency with current setup.
So, sorry but I can't help any further. Please don't claim there was no help offered in this discussion as that's simply not the case. And, if you read passed the flair of Alex's words, he's trying to help too.

Criticism

Criticism is good, attacking is not.

Arguing with random socialists on the internet, yaaaaaay! Basically GitHub is entirely full to the brim with socialists arguing for world peace and gender neutrality.

Like this is attacking, not criticism (as an aside I and many I know are not socialists by any stretch, personally I'm a subset of transhumanist with a focus on the singularity, of which that nor genderisms I don't see have anything at all to do with programming or functionality testing).

If you don't want criticism then don't post a public project where you claim to know what you're doing.

Criticism is, again, good, look at many of my posts where I point out a rather massive amount of issues with this project along the vein of fixing them and how to progress to such fixes.

There have been at least three ideas that have been presented in this discussion to fix the approach taken.

I saw nothing else stated as to my statement about how 1 CPU would unfairly hobble multiples of the frameworks (anything based on the BEAM for one big example), how would you work around that by using only 1 CPU when every framework can work with multiple CPUs and all can reach their maximum speed in such a situation in addition to 1 CPU servers being highly unusual in the webserving world (I can't say I've ever actually seen it, 4 native cores were the tinyiest ones I've personally seen, and depending on what is being hosted using 8 to 128 cores is common)?  Thus your latest post also seems quite hostile without moving the conversation forward?

Because multi-core languages can still run on a single core, and the argument that maximum speed only is achieved with addition of more cores is moot because that applies to literally every language.
That said, your suggestion is still better than the current setup (albeit flawed, see my reasons above) because you called for consistency. You suggested that all frameworks carefully be run utilizing all four cores, in whichever manner. (4 vs 8 doesn't matter.) That's been exactly the point of my initial post. One way or another, there needs to be consistency. Because even if it's flawed, the consistency allows for a chance of some insight -- the current setup has none.
And again, that's because the current suite has multi-core frameworks pinned against single-core frameworks, with selective attempts at patching them -- and with some mc frameworks pinned against sc frameworks within the same language!

Thus your latest post also seems quite hostile without moving the conversation forward?

FWIW, loosely (and falsely) accusing others' actions as hostile is in itself hostile.

This will be my last post. Came with good intentions, still wish this project the best! Hopeful from afar.

@alexhultman

Arguing with random socialists on the internet, yaaaaaay!

This is quiet a political concern. I'll be glad to discuss about that, but I thing this is not the place to such a conversation, we can use a conversation service if you want (gitter, discord, whats app or else :stuck_out_tongue: )
You have arguments on political opinion, it will be more that ok, if you have the same opinion about our project :heart:
@lukeed

There have been at least three ideas

I do not count if only three :stuck_out_tongue: but all are ideas a taking.
Please see the results re-organization I'm up to, https://github.com/waghanza/which_is_the_fastest/blob/clarify_results/README.md

And, if you read passed the flair of Alex's words, he's trying to help too

sure, but with a huge amount of aggressively

Because multi-core languages can still run on a single core

Yes, but you are not using multi-core languages at their full value if running on a single core

maximum speed

speed or performance ?

That said, your suggestion is still better than the current setup

The current setup, docker was choose to avoid having  a bunch of requirements to set-up before playing with this tool :stuck_out_tongue: we are ALL aware that this is not a production-ready tool, like tfb
@lukeed we are going to grow, you can not expect anything to be relevant at the starting point

Because multi-core languages can still run on a single core, and the argument that maximum speed only is achieved with addition of more cores is moot because that applies to literally every language.

But it doesn't though, there are some frameworks where a core gets owned by a scheduler and it will only run efficiently if multi-core, in some hardware chipsets (like the propeller chips that I work with on occasion) that is even enforced by the hardware design (fascinating little things, wish they took off ^.^).

That said, your suggestion is still better than the current setup (albeit flawed, see my reasons above) because you called for consistency. You suggested that all frameworks carefully be run utilizing all four cores, in whichever manner. (4 vs 8 doesn't matter.) That's been exactly the point of my initial post. One way or another, there needs to be consistency. Because even if it's flawed, the consistency allows for a chance of some insight -- the current setup has none.

That's what I've been saying for over a year now as well, that is why my benchmarker always reported the precise Core count and HyperThread count in addition to the actual threads spooled up and is why I keep saying that frameworks like Crystal here are fixed as (last I checked) they were using only a single core, regardless of how it was spooled up, which is an entirely unrealistic setup.  :-)

And again, that's because the current suite has multi-core frameworks pinned against single-core frameworks, with selective attempts at patching them -- and with some mc frameworks pinned against sc frameworks within the same language!

Precisely!  Also what I keep saying.  :-)

FWIW, loosely (and falsely) accusing others' actions as hostile is in itself hostile.

True it can be, it was just the way I inferred it (which to be honest was biased by the other persons extremely hostile posts) due to parts of it like All suggestions have been met with a "not understood" , a "I disagree", or "they're good as they are, we don't need to be perfect". All are dead ends, which means I have no reason to continue in the discussion. that I've always seen elsewhere in very negative situations (conversation is never worth being cut off, especially with the 'not understood' responses or via things like 'I disagree' but without evidence being shown as to "why").

speed or performance ?

Yeah this has been a sticking point on what to decide, as req/s is more of performance and latency (especially with statistical deviations on high 99.99% values) is more of speed, hence why I'd think both should be reported individually.  :-)

The current setup, docker was choose to avoid having a bunch of requirements to set-up before playing with this tool stuck_out_tongue we are ALL aware that this is not a production-ready tool, like tfb

Docker is useful for that, but it also incurs a slight overhead, so that is just one more thing to add to the inaccuracy, but at least it is a 'fairly' stable slowdown across all tests so it seems reasonable.  :-)

we are going to grow, you can not expect anything to be relevant at the starting point

+1
Heck, look at when this was set up, the benchmarker itself was actually written in Crystal, while only using a single core, so it couldn't saturate any of the webservers except the really slow ones like rails or flask (not even the crystal web server!), the project has already come quite a bit further.  ^.^

Heck, look at when this was set up, the benchmarker itself was actually written in Crystal, while only using a single core, so it couldn't saturate any of the webservers except the really slow ones like rails or flask (not even the crystal web server!), the project has already come quite a bit further. ^.^

This alone makes me shiver in disgust. You are biting off more than you can chew. Obviously, very obviously, nobody should trust ANY of these results since you have absolutely no idea what you are doing.

I'm just curious as to how Sanic keeps on dropping in the rankings. They did remove the code to make it faster (like turning off logging and debug) and that isn't helping it.

Sorry for the late reply since Im at Guam for vaccination!
I totally agree with the expandable 2 rankings as you showed me.
The latency ranking should be top and expanded by default for ideal since I would like to show a ranking at first view.

@btegs sanic seem to be low, but as the setup (docker based`), results are not yet stable (fluctuating), we can not take any conclusion, before the next big step -> using a cloud to compute** results
@tbrand glad we are ok

I'm just curious as to how Sanic keeps on dropping in the rankings. They did remove the code to make it faster (like turning off logging and debug) and that isn't helping it.

By what metric is actix-web #1? I must be missing something but it isn't clear based on the table data why it's #1, and it also isn't easily deducible by what margin is it ahead of #2, etc.

Hi @brandonros,
The results, as presented for now, are totally unclear (until we merge #281).
Actual ranking, https://github.com/tbrand/which_is_the_fastest#ranking-framework, is base on  req/s.
The next ranking, https://github.com/waghanza/which_is_the_fastest/tree/clarify_results#results, are separated in two (already ranked) tables :

one by req/s
one by latency


FileResolver class constructor name

In the FileResolverClass the name of the constructor should be FileResolver instead of FileResolver
    public FileResolver(Uri address, int defaultPort, ILoggerFactory loggerFactory)
        : base(loggerFactory)

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

ID: 7ac62acc-1270-cc98-024e-659b3a80f4ca
Version Independent ID: d6f25885-6c43-0d2c-96e2-3b47a4fd7bd7
Content: gRPC client-side load balancing
Content Source: aspnetcore/grpc/loadbalancing.md
Product: aspnet-core
Technology: aspnetcore-grpc
GitHub Login: @JamesNK
Microsoft Alias: jamesnk

It is FileResolver....

Assigning to James since he already has the pr in.


While processing files : Unknown absolute import path

Hi,
I just switched from a custom grunt based typescript compilation process back to this package. I am getting the following error :
While processing files with meteortypescript:compiler (for target os.windows.x86_32):
   <anonymous>: Unknown absolute import path packages/core/typedefinitions/core.d.ts
   at Error (<anonymous>)
   at multi-file-caching-compiler.js:134:21
   at Array.forEach (native)
   at multi-file-caching-compiler.js:132:33
   at multi-file-caching-compiler.js:144:68
   at
   C:\Users\me\AppData\Local\.meteor\packages\meteortypescript_compiler\3.0.0\plugin.compileTypescript.os\npm\caching-compiler\node_modules\async\lib\async.js:182:20
   at replenish
   (C:\Users\me\AppData\Local\.meteor\packages\meteortypescript_compiler\3.0.0\plugin.compileTypescript.os\npm\caching-compiler\node_modules\async\lib\async.js:317:21)
   at
   C:\Users\me\AppData\Local\.meteor\packages\meteortypescript_compiler\3.0.0\plugin.compileTypescript.os\npm\caching-compiler\node_modules\async\lib\async.js:328:15
   at Object.async.forEachLimit.async.eachLimit
   (C:\Users\me\AppData\Local\.meteor\packages\meteortypescript_compiler\3.0.0\plugin.compileTypescript.os\npm\caching-compiler\node_modules\async\lib\async.js:221:35)
   at TsCachingCompiler.processFilesForTarget (multi-file-caching-compiler.js:95:11)
   at TsCachingCompiler.processFilesForTarget (compilers/ts_caching_compiler.js:37:32)

=> Your application has errors. Waiting for file change.

The project is quite big, with tsc on the shell I don't get any errors. Would it be possible to extend the message a bit, for example in which file the error happened? That would speed up fixing those kind of errors dramatically....

right... if only I knew where the error was raised from...
hard to help without a project structure and more details.
What file in your project references core.d.ts

I moved all ts files out of the project since apparently most files are referencing core.d.ts, then I spent the day yesterday trying to figure out where it comes from and it seems like it its all of them :)
Is it possible that I might not be able to include d.ts files from packages?

Packages aren't compiled either, still, right? So it doesn't make any sense for us right now anyway. Will come back what it also compiles packages.
Thanks for the time!

Is this fixed  or is this a bug? I started a fresh project with meteor-typescript-compiler and it gives exactly this exception. I cannot figure out how to solve this, because both Visual Studio Code and command line "tsc *.ts" can see the referent def file (.d.ts). This is my sample project https://github.com/bubuzzz/ts-demo.git. Please give some suggestions for this

I have the the same problem.

I got the same problem. My solution is removing this package and using gulp-typescrpt.

Ran across the same issue, started fresh.
Perhaps the issue should be reopened?

I use gulp-typescript for compiling in the complex cases, but there is an easy way, that should work in the most cases: put tsconfig.json (https://github.com/Microsoft/TypeScript/wiki/tsconfig.json) in the root of your project and then start the compiler from the command line with the command tsc. For example, in my last Meteor project the tsconfig.json looks like this:
// tsconfig.json
{
"compilerOptions": {
"target":"es5",
"module": "commonjs",
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": false,
"watch": true
},
"exclude":[
".meteor",
".vscode",
"typings",
"public"
]
}
Start compiler from the root of your project with command tsc, and the compiler will compile and save your .ts into the .js in the same directory.
Don't forget to put something like this in the end of your .ts file:
// foo.ts
namespace Foo{
export class Foo{
...
}
...
}
this.Foo = Foo;
Then you be able to use Foo namespace in the file, where you import foo.ts


Reformat all code

It would make it easier to contribute to this library if the code were formatted according to some standard formatting rules. As these are becoming more popular for TypeScript, I'm finding that I want to keep format-on-save enabled in my editor at all times. But if I do, then when I save it causes erroneous diffs, such as adding a space after the first : at https://github.com/Microsoft/vscode-languageserver-node/blob/3f9a09c05975f5039332fa65e71b1bb825df0363/jsonrpc/src/messageWriter.ts#L13.
I would submit a PR to do this myself, but this is a big yet quick change that it seemed would be easier for one of the regular maintainers to do. If you want me to submit a PR this weekend when not as many people will have WIP branches (to avoid merge conflicts), I am happy to do so. :smile:

Makes sense to me. I formatted all code and added the corresponding settings.


dev/reset sql database on everyone's computers

use following script:
get into the psql command shell for postgres, using the recipes table
psql recipes

drop the table, allow the drop to cascade to all attached properties.
DROP TABLE users CASCADE;

create the new table, reattach it to other pieces of our schema
CREATE TABLE "users" (
  "id" SERIAL NOT NULL UNIQUE,
  "username" VARCHAR(255) UNIQUE,
  "facebook_id" VARCHAR(255) UNIQUE,
  "google_id" VARCHAR(255) UNIQUE,
  "created_at" TIMESTAMP NOT NULL DEFAULT current_timestamp,
  "updated_at" TIMESTAMP NOT NULL DEFAULT current_timestamp,
  "display_name" VARCHAR(255),
  "avatar" VARCHAR(255),
  "email" VARCHAR(255),
  "google_access_token" VARCHAR(255),
  "active" BOOLEAN DEFAULT true,
  CONSTRAINT users_pk PRIMARY KEY ("id")
) WITH (
  OIDS=FALSE
);
ALTER TABLE "favorites_recipes_users" ADD CONSTRAINT "favorites_recipes_users_fk1" FOREIGN KEY ("user_id") REFERENCES "users"("id");

ALTER TABLE "followers_users_users" ADD CONSTRAINT "followers_users_users_fk0" FOREIGN KEY ("user") REFERENCES "users"("id");
ALTER TABLE "followers_users_users" ADD CONSTRAINT "followers_users_users_fk1" FOREIGN KEY ("target") REFERENCES "users"("id");

to exit from psql
\q

[ ] @andrewh0 - "I did it!"
[ ] @controtie - "I did it, too!"
[ ] @nemobaker - "Let's all high five!"
[ ] @thomasingalls - "Hooray, team!"

Also run this code, check your name off!

[ ] @andrewh0
[ ] @controtie
[ ] @nemobaker
[ ] @thomasingalls

DROP TABLE recipes CASCADE;
CREATE TABLE "recipes" (
	"id" SERIAL NOT NULL UNIQUE,
	"created_at" TIMESTAMP NOT NULL DEFAULT current_timestamp,
        "updated_at" TIMESTAMP NOT NULL DEFAULT current_timestamp,
	"title" TEXT NOT NULL,
	-- will need to make author NOT NULL in future implementation
  "author" integer,
  "parent" integer,
  "images" TEXT[] NOT NULL,
  "followers" TEXT[] NOT NULL,
  "yield" integer NOT NULL,
  "yield_unit" TEXT NOT NULL,
  "ingredients" TEXT[] NOT NULL,
  "prep_time" integer NOT NULL,
  "prep_steps" TEXT[] NOT NULL,
  "cook_time" integer NOT NULL,
  "cook_steps" TEXT[] NOT NULL,
  "finish_steps" TEXT[] NOT NULL,
  "tags" TEXT[] NOT NULL,
	CONSTRAINT recipes_pk PRIMARY KEY ("id")
) WITH (
  OIDS=FALSE
);
ALTER TABLE "recipes" ADD CONSTRAINT "recipes_fk0" FOREIGN KEY ("parent") REFERENCES "recipes"("id");
ALTER TABLE "recipes" ADD CONSTRAINT "recipes_fk1" FOREIGN KEY ("author") REFERENCES "users"("id");

ALTER TABLE "images_recipes" ADD CONSTRAINT "images_recipes_fk1" FOREIGN KEY ("recipe_id") REFERENCES "recipes"("id");

ALTER TABLE "favorites_recipes_users" ADD CONSTRAINT "favorites_recipes_users_fk0" FOREIGN KEY ("recipe_id") REFERENCES "recipes"("id");

Everyone ran the script!


save() in 0.5 doesn't work

I installed Images.jl version 0.5.0, which has switched to load() and save(). load() works but save() doesn't. I'm on OS X, julia 0.4.2.
julia> using Images

julia> img = load("/tmp/1.jpg")
RGB4 Images.Image with:
  data: 1916x800 Array{ColorTypes.RGB4{FixedPointNumbers.UFixed{UInt8,8}},2}
  properties:
    imagedescription: <suppressed>
    spatialorder:  x y
    pixelspacing:  1 1

julia> save("/tmp/test.jpg", img)
WARNING: ErrorException("no encode delegate for this image format `MIFF' @ error/constitute.c/WriteImage/1167")
 in error at /Applications/Julia-0.4.2.app/Contents/Resources/julia/lib/julia/sys.dylib
 in error at /Users/me/.julia/v0.4/ImageMagick/src/libmagickwand.jl:149
 in writeimage at /Users/me/.julia/v0.4/ImageMagick/src/libmagickwand.jl:246
 in save_ at /Users/me/.julia/v0.4/ImageMagick/src/ImageMagick.jl:146
 in save at /Users/me/.julia/v0.4/ImageMagick/src/ImageMagick.jl:64
 in save at /Users/me/.julia/v0.4/FileIO/src/loadsave.jl:92
 in save at /Users/me/.julia/v0.4/FileIO/src/loadsave.jl:51
ERROR: no encode delegate for this image format `MIFF' @ error/constitute.c/WriteImage/1167
 in error at /Applications/Julia-0.4.2.app/Contents/Resources/julia/lib/julia/sys.dylib
 in error at /Users/me/.julia/v0.4/ImageMagick/src/libmagickwand.jl:149
 in writeimage at /Users/me/.julia/v0.4/ImageMagick/src/libmagickwand.jl:246
 in save_ at /Users/me/.julia/v0.4/ImageMagick/src/ImageMagick.jl:146
 in save at /Users/me/.julia/v0.4/ImageMagick/src/ImageMagick.jl:64
 in save at /Users/me/.julia/v0.4/FileIO/src/loadsave.jl:92
 in save at /Users/me/.julia/v0.4/FileIO/src/loadsave.jl:51

I'm sure I saw this error last year... But it looks like ImageMagick is installed in the right place (although perhaps it wouldn't be needed if Images.jl made OS X make image files?).
imwrite() doesn't work either:
julia> imwrite("/tmp/test.jpg", img)
WARNING: imwrite(img,filename; kwargs...) is deprecated, use save(filename,img; kwargs...)      instead.
 in depwarn at deprecated.jl:73
 in imwrite at deprecated.jl:50

Perhaps I'm missing a kwarg or something?

No, you have a borked ImageMagick installation. Images is now independent of ImageMagick, so please open an issue at ImageMagick.jl.
Since you're on OSX, you can also try deleting ImageMagick and installing QuartzImageIO.

@timholy Thanks. Well I got rid of ImageMagick and installed QuartzImageIO, but I suppose I have to do something else, because:
 julia> save("/tmp/test.jpg", img)
WARNING: FileIO.NotInstalledError(:ImageMagick,"")
 in checked_import at /Users/me/.julia/v0.4/FileIO/src/loadsave.jl:12
 in save at /Users/me/.julia/v0.4/FileIO/src/loadsave.jl:91
 in save at /Users/me/.julia/v0.4/FileIO/src/loadsave.jl:51
Library ImageMagick is not installed but can load format: FileIO.File{FileIO.DataFormat{:JPEG}}("/tmp/test.jpg")
should we install ImageMagick for you? (y/n):

I have added QuartzImageIO and done:
using Images, QuartzImageIO, FileIO

with apparently no problems reported.
Since Images.jl is no longer doing input and output, should I report this at FileIO or QuartzImageIO instead?  Presumably it's not me that's supposed to register PNG and JPG formats? Documentation is very sketchy now.


Github cards stopped working

Have you checked that your issue isn't already filed?

[X] I read through FAQ and searched through the past issues, none of which addressed my issue.
[X] Yes, I have checked that this issue isn't already filed.

Bug description
Github cards stopped working (user, repo, trophies)
How to reproduce the bug
Just open the repositories page, i guess it's more of a change in the  required format for the api.

Error messages and logs
The error message you got, with the full traceback if available. Please paste it between these triple backticks.

What operating system are you using?
Windows, Not applicable (e.g. you're using GitHub Pages or other hosting)
Where are you seeing the problem on?
Deployed site
More info
No response

me too

This is due to a token limit in the GitHub API. For more information, see GitHub Readme Stats readme and related issues:

https://github.com/anuraghazra/github-readme-stats/issues/1471
https://github.com/ryo-ma/github-profile-trophy/issues/150
https://github.com/ryo-ma/github-profile-trophy/issues/141
https://github.com/ryo-ma/github-profile-trophy/issues/145

Basically there is nothing we can do. What you can do is host your own instance of these solutions, as suggested in GitHub Readme Stats readme.


HBASE-26987 The length of compact queue grows too big when the compac…

…ting is slow

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 37s
Docker mode activated.

Mind explaining more about your solution?

No problem, will add more info in issue desc.

Mind explaining more about your solution?

Yeah, the problem here is we put too many compactions to queue, so i think the solution for it is to find how many is suitable.
Consider the CompactionRunner will try its best to select more hfiles when running but limited by hbase.hstore.compaction.max, so seems let (allFilesInStore-filesCompating)/hbase.hstore.compaction.max as upper limit is enough.

The idea looks good overall. @bsglz do you have any recommendation on the max files to compact value?

Do you mean the value for hbase.hstore.compaction.max? The default value is 10, i think its ok.
Thanks.

+1 overall, also the idea seems good. @bsglz let's wait for one more review?

+1 overall, also the idea seems good. @bsglz let's wait for one more review?

No prob, thanks a lot.

@Apache9 Can i have +1 from you, or any more issues? Thanks a lot.

rebase

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 25s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ master Compile Tests _

+1 :green_heart:
mvninstall
2m 52s
master passed

+1 :green_heart:
compile
2m 28s
master passed

+1 :green_heart:
checkstyle
0m 34s
master passed

+1 :green_heart:
spotless
0m 41s
branch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
1m 23s
master passed

_ Patch Compile Tests _

-1 :x:
mvninstall
1m 14s
root in the patch failed.

-1 :x:
compile
0m 13s
hbase-server in the patch failed.

-0 :warning:
javac
0m 13s
hbase-server in the patch failed.

-0 :warning:
checkstyle
0m 32s
hbase-server: The patch generated 2 new + 23 unchanged - 0 fixed = 25 total (was 23)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

-1 :x:
hadoopcheck
1m 15s
The patch causes 10 errors with Hadoop v3.2.4.

-1 :x:
hadoopcheck
2m 38s
The patch causes 10 errors with Hadoop v3.3.5.

-1 :x:
spotless
0m 32s
patch has 29 errors when running spotless:check, run spotless:apply to fix.

-1 :x:
spotbugs
0m 13s
hbase-server in the patch failed.

_ Other Tests _

+1 :green_heart:
asflicense
0m  9s
The patch does not generate ASF License warnings.

14m 58s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4390

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile

uname
Linux aad48a385545 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / 2fb2ae152a

Default Java
Eclipse Adoptium-11.0.17+8

mvninstall
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/patch-mvninstall-root.txt

compile
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/patch-compile-hbase-server.txt

javac
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/patch-compile-hbase-server.txt

checkstyle
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt

hadoopcheck
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/patch-javac-3.2.4.txt

hadoopcheck
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/patch-javac-3.3.5.txt

spotless
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/patch-spotless.txt

spotbugs
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/artifact/yetus-general-check/output/patch-spotbugs-hbase-server.txt

Max. process+thread count
79 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4390/4/console

versions
git=2.34.1 maven=3.8.6 spotbugs=4.7.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
2m  7s
Docker mode activated.

Ping @Apache9


Is Dingo API still alive?

I see a lot of opened issues and old commits. Is it still alive?

it seems deadly

Pretty sure it is still alive, @hskrasek is maintaining it in his free time, so it may need some time. However, there was a commit in feb this year.
However, maybe there need to be some additional contributors with merge rights, as it is quite a lot of work to maintain a project like this alone.

Cool then :)

I hope work will continue soon 👍

May be some donates https://beerpay.io/ will help?))

First of all: it works. So for me, this means  it's alive.  I use it on Lumen projects

I've used this package for many projects and it's really cool. However, I've moved to using APIATO which is a framework for building API-Centric Apps on top of Laravel.

Damn, I wish I knew about Apiato sooner

it's gone

Closing this because we have answered here #1436


How can I to show some schedules only in month view?

I want to show some schedules only in month view.
like this)
id1: week,month
id2 :month only
id3: week,month
It provides options for schedules view option?

@NoMoreBuild
Unfortunately,
options that are different depending on the view are not supported.
The schedule is displayed according to the date.
We need to discuss the support of this new feature with the  TOAST UI Calendar team.
Incidentally,
Depending on the calendar ID, it is possible to set whether or not the schedule is visible.
https://nhn.github.io/tui.calendar/latest/Calendar#toggleSchedules

sorry, I confused functions about schedules.
I was wanted filtering by calendarID so, Is it working in current version?
like this)
id1:{calendarID: 1, title: "it shows in week and month", body: "month and week"},
id2:{calendarID:2, title:"it only shows in month view",body: "month only"}
const calendars: ICalendarInfo[] = [
  {
    id: "1",
    name: "My Calendar",
    color: "#ffffff",
    bgColor: "#9e5fff",
    dragBgColor: "#9e5fff",
    borderColor: "#9e5fff"
  },
  {
    id: "2",
    name: "Company",
    color: "#ffffff",
    bgColor: "#00a9ff",
    dragBgColor: "#00a9ff",
    borderColor: "#00a9ff"
  }
];

You can see the schedule object and set calendarId.
https://nhn.github.io/tui.calendar/latest/Schedule

You can see the example source.
https://github.com/nhn/tui.calendar/blob/master/examples/example00-basic.html
https://github.com/nhn/tui.calendar/blob/master/examples/js/app.js


[ICON] medication

Icon Request

Icon name: medication
Use case: It'd be great to have this icon in the "Health" category, very useful for health oriented apps/websites
Screenshots of similar icons:

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

Upvote!


Exceptionless setup issue.

I carefully followed the tutorial for self-hosting(production) here but didn't do any of the optional steps nor activated SSL. I installed ElasticSearch, setup the root in IIS, modified the web.config and added the ElasticSearch connection string(http://localhost:9200) and i can see the login page. However, i can't register because i keep getting the "A user already exists with this email address." message no matter the e-mail adress i enter. I can randomly enter letters and still get the same message. What exactly am I doing wrong?
Thanks in advance for any help i may get here.

See the HandleNonHttpsRequest(filterContext)

Where is it located?

I will download the source code to modify it and use it then. I will report the results later then. Thanks!

I made the change and build a Release version(anycpu) with the solution. Do i have to overwrite the .dlls in the bin folder of the wwwroot? because i did that and can't run the application because of some assembly error which most probably is due to some mix framework issues.

Yes, did that solve the problem? What does it say as the error in the network tab of your browser. Have you tried the troubleshooting tips?

I copied the dll to the bin folder but as previously explained i get an error than a dependency could not be loaded.

It's because the version you compiled with is different than what was out there. Can you go back to the release and try the troubleshooting tips and let us know what the network tab says when you try to signup

I will go through the troubleshooting tips and report back.

You'd just need to copy all the dlls that were compiled instead of just the one. No you don't need cabana when running in production mode. We're going to be moving the whole server to be docker releases for the next release to remove all of these issues. One thing you could do is generate an ssl cert or use the free ssl certs out there and install one for this web process.

When will the new version of asp.net core be released

Glad to hear is going to be fixed in the next release but in the mean time what can I do? I commented the "HandleNonHttpsRequest" line and published a release then i took everything and replace the bin folder with it. It runs now but still stuck just like before with the same message.

btw....the MongoDB isn't needed anymore am I correct?

You can pull master and use the latest artifacts, we'll release it soon. We are about to cut the UI release and we are trying to hurry and finish up the 2.1 migration which is LTS.
@Johnwrnd what does your network tab say for errors? MongoDB is no longer needed.

I got no errors anymore but was checking a old tutorial on how to build/publish master and setup the server from it and noticed MongoDB was used in the tutorial. I also noticed that the publish miss a lot of dlls found in the oficial release version(bin folder). All i need to know is what do i need and how to grab the master branch, publish it and get exceptionless ready to run just like the official release.

Actually all I need is a Release build with the fix suggested here and I will be happy until the next big update rolls out.

It's all in the appveyor yaml file. We'll work on pushing out a release really soon. Can you in the mean time add a cert to your site using lets encrypt?

Glad to hear that! i will try to add a cert but i already tried using the self-hosting tutorial and it didn't work. For some reaons it seems to refuse to use the database which is one of my main issues apart from login.

My apologies for the late reply. If you can jump on our slack and send a message I can try and take a look at this with you over screen share.

I joined Slack now.

Wanna thank you a lot for your great help once again!!! as suggested it would be great to explain the steps we did in case someone is going through the same issue.


Fix recurring job scheduling problems

This PR does:

Remove the hardcoded NodeName in pod's spec of recurring job
Set the tolerations for the cronjob pods that are set by the user via the longhorn-settings
Reduce SuccessfulJobsHistoryLimit to 1 to reduce total number of pods in the cluster

Previously, we used the engine client binary on the current node to do backup. Therefore, we need to add NodeName: v.Status.CurrentNodeID. Now that we changed to use Longhorn API to do backup, the NodeName field is no longer needed.
Issues:
longhorn/longhorn#1903
longhorn/longhorn#1796
longhorn/longhorn#1793

Thanks Joshua! I added the comment

Manual tests looks good.
Running integration core tests.

@PhanLe1010 no need for the code comment in this case, it was more about adding a comment to the PR / commit message. Since the PR / commit can be found via the issue refs in the commit message, as well as via annotate (git blame).

Oh. I see.
Deleted it. Thank you

@joshimoo @PhanLe1010 If you need/desire and you have a docker image with this fix I can also test it on my cluster.

@obeyler
It would be awesome!  Here is the images phanle1010/longhorn-manager:re-4
Thank you!

@obeyler This is still a dev version so please don't use the image in your production environment.


Potential security issue

Hello,
A potential security issue was found in this repository and was reported via huntr.
Kindly look into the issue here and validate it.
This link is private and will be only accessible to the project maintainers.
Thanks!

@oomb, thank you for opening this issue. I will have a look.

Here is how to reproduce the vulnerability issue:

I am logged in as Papermerge administrative user
I receive an phishing email (see below for email example) from another source which asks me to download THEIR document from THEIR webpage and upload to THEIR webpage as if that is the way of confirming the service
The naive me, the Papermerge administrative user, click the link, but instead I download MY (or one of MY user's document, because of predictable URL and lack of CSRF token) and upload MY document to THEIR webpage.

Example of phishing email:

To verify that you are a human, upload the file that has been downloaded from our website now.
Download Test File

To mitigate the problem either use less predictable document ID's (e.g. UUID) or use csrf tokens.

@ciur: All requests within the Papermerge web application that trigger a sensitive action use a csrf token (either within POST data or as X-CSRFToken HTTP header), so I assume the CSRF middleware is correctly enabled and the application not susceptible to CSRF.
E.g. creating a new application user:

An attacker without knowledge about the csrfmiddlewaretoken is not able to conduct a CSRF attack.
So the outlined problem is not really Cross-Site Request Forgery (CSRF) nor Insecure Direct Object Reference (IDOR).

Downloading attachements is only possible as authenticated user. You have to be logged into the web application.
Downloading attachements is only possible as authorized user. You must have permissions to access the file.
Downloading files do not trigger a state changing action on the application and is therefore done by the HTTP method GET. GET requests are usually not worth being protected by a csrf token. See OWASP
Guessing the ID of an attachement does not really have an impact, since authorization and access controls are in place, which only allow the owner of a document to download it. So even if you have another valid user account within your papermerge application, this user won't be able to download the attachements without proper permissions, even if he can guess the correct ID of another user's document.

So what is the impact of this:

An attacker is able to trick you into downloading your own attachement from your own papermerge web application. Further, you will have to be already logged into the application during the attack. Otherwise, the download won't work due to missing authentication and you will see your papermerge's login panel.
After a successfull "attack", an attacker would further need to trick you into uploading your downloaded attachement to another application under control of the attacker. Otherwise, the attacker won't get any information by tricking you into downloading the file.

So imho this is not really an issue at all.
Recommendation

You might introduce UUIDs instead of iterable IDs, but due to authorization in place, this is optional.
You might change the HTTP method for downloading files and implement a CSRF token if you really want to protect users against the outlined phishing attack, where you are tricked into downloading your own files from your own papermerge server.

@l4rm4nd, thank you a lot for your detailed explanation. I will take care of the issue.


hide Web Share button on desktop

It has limited usefuless, and in some browsers/OS it acts as supported, but the button doesn't do anything.

Does this happen on the Edge Stable branch without any edge://flags set?

There is feature detection happening: "share" in navigator.

Does this happen on the Edge Stable branch without any edge://flags set?

Yes. On Win 7, tho, but it still has a significant market share.
In the PR you also said something about navigator.share possibly being defined without actual support — not sure what it was referring to.
In either case, on Deskop this API doesn't make that much sense anyway, so if we can't guarantee that displaying the button will also mean it's working, I'm for using it only on Mobile.

Desktop support is coming to Chrome/Edge, here is the Mac-specific bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1144920. On non-stable it might be exposed already, without doing anything yet.

For a currently working desktop integration, try it on macOS Safari.


Implement OP_SHA1 opcode with tests

Implement OP_SHA1 opcode with tests
Closes: https://github.com/zig-bitcoin/btczee/issues/67

@tdelabro I have implemented the requested changes


Setup cypress

This is a very basic initial setup for cypress with end to end testing.
The cypress docs are very good: https://docs.cypress.io/guides/end-to-end-testing/writing-your-first-end-to-end-test
I think we can use this PR to play around with the setup until we get something that actually tests our app!
Here are the docs for setting up GH Actions: https://docs.cypress.io/guides/continuous-integration/github-actions

@jarmoza take a look if this is covered in your branch and if so, please close without merging

Closing this PR without merge.  Most of this is already included or further modified in the upcoming PR I will be opening on the first set of end to end tests and related Cypress setup.


when i set the margin again my canvas/svg gets wrong width

It's very nice of you to create this library, but I meet a problem that when I set the margin over again by HTML widget, the canvas/svg gets wrong width by plus barcode's width(150px e.g.) with margin(10px e.g.) as strings. And the result canvas's width is like 1501010 px. However if I just change the default margin instead of changing it as an attribute, it works. It works without any problems when I change other attributes using HTML widget.
My HTML is like:
<input id="bar-margin" class="option-range" type="range" name="bar-margin" value="10" min="0" max="25" oninput="barMargin()">

My JavaScript is like:
var barOptions = {
    //format: "CODE128",
    width: 2,
    height: 100,
    margin: 0,
    // color
    background: "#ffffff",
    lineColor: "#000000",
    // font/text options
    displayValue: true,
    // text: undefined,
    fontOptions: "",
    font: "monospace",
    textAlign: "center",
    textPosition: "bottom",
    textMargin: 2,
    fontSize: 20,
    valid:
        function(valid) {
            if(valid) {
                console.log("barcode generated!");
            }
            else {
                console.log("not valid data for barcode!")
            }
        }
};

function barGen() {
    barCanvasClear();
    JsBarcode(barCanvas, inputText, barOptions);
}

function barCanvasClear() {
    var barCanvas = document.getElementById("bar-canvas");
    /*barCanvas.getContext("2d").clearRect(0,0,barCanvas.width,barCanvas.height);
Another problem: clearRect() doesn't work to clear barCode's canvas.*/
    barCanvas.height = 0;
    barCanvas.width = 0;
    if(isCanvasBlank(barCanvas)){
        console.log("barCanvas clear!");
    }
    else{
        console.log("barCanvas not clear!");
    }
}

function barMargin() {
    var margin = document.getElementById("bar-margin").value;
    var marginValue = document.getElementById("bar-margin-value");
    barOptions.margin = margin;
    marginValue.innerHTML = margin;
}

Could you please give some solutions?

The should be a number.

The should be a number.

Well thanks. I use parseInt() and then the problem is solved.
But weirdly, I place the slider to the minimum and find the result in console. Then I get margin: 0 instead of margin: "0".


Cherry Pick: Prioritise Avro providers from "extensions/core" (#25611)

Cherry Pick of #25611

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

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

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

R: @aromanenko-dev @mosche @Abacn

Run Python 3.10 Postcommit

Run Java_GCP_IO_Direct PreCommit

Run Java_Splunk_IO_Direct PreCommit

Run Java_Examples_Dataflow PreCommit

Run Java PreCommit

Run Java_Kafka_IO_Direct PreCommit

LGTM, thanks @damccorm for cherry-picking!
I merge this since failed check is flaky and not related.


Vue project is not including asset URLs in build output html files

I have created a detailed StackOverflow question for this, it is here: https://stackoverflow.com/questions/78192074/combination-of-latest-versions-of-vite-vue-vitejs-plugin-vue-and-vite-plugin
( PS I am not sure if it is related to this library or some other dependency, do guide me if that's the case )
Thank you

Could you please provide a minimal reproduction?

Well, I missed your repo, I'll take a look when I'm free.

Any news ?
I ran onto the same problem

oh, based on your hint, I updated the vite from "5.0.10" to "5.0.13". ( max it works is till 5.0.13 not after that )
But It removed the "1 high severity vulnerability" warning, while generating proper builds.
So the issue remains for the latest versions of packages, but at least for now, npm audit is happy with the versions.

oh, based on your hint, I updated the vite from "5.0.10" to "5.0.13". ( max it works is till 5.0.13 not after that )
But It removed the "1 high severity vulnerability" warning, while generating proper builds.
So the issue remains for the latest versions of packages, but at least for now, npm audit is happy with the versions. Thank you @gillesgros
( sry for the close - reopen thing, I had mistakenly closed it )

It seems this problem is caused by vite...I'm sure our plugin don't do things about assets.

ok, I have posted an issue on Vite's GitHub page.

Nice work! Now I'll close this issue, you can re-open it anytime.


Simplification of type-metadata traits and Registry

I was trying to use the type registry from within the new upcoming ink-abi crate but had some problems. The work made in this PR is trying to resolve them and improve upon general usability of the type-metadata crate.
I will undraft this PR once I am done with the integration.
The current "limitation" for the reworking is that the algorithm differentiates between T and Box<T> or between String and str. This however, should be easy to fix if we are sure to want the former behaviour of aligning types like Box<T> to T etc.

Just fixed the commit history of this PR. Should be reviewable now. However, I still have to fix the remaining tests before I will un-draft it.

LGTM

Thanks for your reviews.

LGTM. Not related to this PR but I think we could add an .editorconfig file to provide some default formatting consistency.

That is a good idea!
Also we probably want a rustfmt.toml in the root that clearly communicates our formatting structures.
I have the same in ink! and everybody working on it pretty much like having one.

Added README, removed no longer needed code and types and applied rustfmt. Ready for merge.

Added no_std support to close https://github.com/type-metadata/type-metadata/issues/7.

Would it be okay if I update the rustfmt.toml file somehow?

Please feel free to update it :]
The no_std support seems not ready yet. I tried to create an no_std example using type-metadata for verification and it doesn't work. We might need to fix all the types, crates, and traits usage which does not exit in no_std preludes, for instance Vec, vec!. One possible solution is to use a wrapper to hide the difference between std and no_std imports, just like the sr_std impl(or possibly use sr-std as a dependency).

Would it be okay if I update the rustfmt.toml file somehow?

Please feel free to update it :]
The no_std support seems not ready yet. I tried to create an no_std example using type-metadata for verification and it doesn't work. We might need to fix all the types, crates, and traits usage which does not exit in no_std preludes, for instance Vec, vec!.
One possible solution is to use a wrapper to hide the difference between std and no_std imports, just like the sr_std impl(or possibly use sr-std as a dependency). Maybe it's better to do the full no_std support in another PR?

Let's do full no_std support in another PR. This one is already doing so much.

Would it be okay if I update the rustfmt.toml file somehow?

Please feel free to update it :]
The no_std support seems not ready yet. I tried to create an no_std example using type-metadata for verification and it doesn't work. We might need to fix all the types, crates, and traits usage which does not exit in no_std preludes, for instance Vec, vec!.
One possible solution is to use a wrapper to hide the difference between std and no_std imports, just like the sr_std impl(or possibly use sr-std as a dependency). Maybe it's better to do the full no_std support in another PR?

Let's do full no_std support in another PR. This one is already doing so much.

Never, intended to close this, sorry ...

Merged :]


Move ActivationFactory into WinRT.Runtime.dll

This enables additional optimizations that couldn't be done in #1375

Just a couple nits but I do love this PR, and the fact ActivationFactory.Get(string) is now public! 🎉


Can only create new local users as "standard users"

Rancher Server Setup

Component
Version / Type

Rancher version
v2.6-780c3486803bdf80ca71f8e5e954b7b8c13562cf-head

Rancher commit link
https://github.com/rancher/rancher/commit/780c3486803bdf80ca71f8e5e954b7b8c13562cf

Installation option
helm

RKE binary version used
1.3.11

If Helm Chart k8s cluster
rke v1.23.6

Cert Details
let's encrypt

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher1

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Logged in user role
administrator

Browser type
opera gx

Browser version
LVL3 (core: 87.0.4390.56) (x86_64)

Describe the bug
Unable to create a new user with permissions other than Standard User.
To Reproduce

Starting from the default Rancher homepage /dashboard/home
Click the hamburger menu -> Users & Authentication -> Create
Observe under Global Permissions  the only role available is Standard User`

Result
The only global permission available when creating new users is Standard User.
Expected Result
I would expect to be able to create users with all of the standard global permissions

Administrator
Restricted Administrator
Standard User
User-Base

And with all of the Built-in roles available as well
Workaround
Able to create new users with different roles using Postman / API calls
Screenshots

Console error
TypeError: Method findTrueValue is undefined
    at findTrueValues (Checkbox.vue?979a:177:15)

Recently changed via https://github.com/rancher/dashboard/pull/6073

:white_check_mark: PASS
Reproduction Environment
Not required.

Validation Environment

Component
Version / Type

Rancher version
v2.6-8b3919b99293fc8b0dc5fe7191ca5bec9609aadd-head

Rancher commit link
https://github.com/rancher/rancher/commit/8b3919b99293fc8b0dc5fe7191ca5bec9609aadd

Installation option
eksctl eks local cluster (bring your own cluster)

local k8s cluster
v1.22.9-eks-a64ea69

Cert Details
let's encrypt

Helm version
v2.16.8-rancher1

Downstream cluster type
rke1 linode

Downstream K8s version
v1.23.6-rancher1-1

Logged in user role
administrator

Browser type
google chrome

Browser version
102.0.5005.115 (Official Build) (x86_64)

ADDITIONAL SETUP

eksctl install command:

eksctl create cluster \
  --name $YOUR_CLUSTER_NAME \
  --version 1.22 \
  --region us-east-2 \
  --nodegroup-name $YOUR_NODE_GROUP_NAME \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 4 \
  --managed

Helm commands for Rancher installation:

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=$YOUR_HOSTNAME \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=$YOUR_EMAIL \
  --set letsEncrypt.ingress.class=nginx \
  --version 2.6.5 \
  --set rancherImageTag=v2.6-head \
  --set extraEnv\[0\].name="CATTLE_PROMETHEUS_METRICS" --set-string extraEnv\[0\].value=true

Validation steps

Starting from the default Rancher homepage /dashboard/home
Click the hamburger menu -> Users & Authentication -> Create
Observe under Global Permissions  the only role available is Standard User`

Additional Info
RESULTS
:white_check_mark: Expected
I would expect to be able to create users with all of the standard global permissions
:white_check_mark: Actual
I was able to create users with all of the standard global permissions


Update getting started document to be more clear

For someone still new to GraphQL, some of the basic concepts or best practices will not be known to them.  While trying to follow along with the documentation, I became a bit confused and had to go looking elsewhere for answers.  I added a few lines to the documentation that would have really helped me as I was working through the steps.

Hey @n8stowell82 - that is definitely clearer.  Thanks for taking the time to update this 👍


Convert VerificationError into VerificationResultMetadata

The VerificationError has been changed to
VerificationResultMetadata. This change was made to better capture the
intent that it is intended to store the values used during verification.
While the VerificationResult is meant to communicate success or
failure. This allows the metadata to be used for displaying what
happened in the success branches of the verification process.

Motivation

Future Work

Current dependencies on/for this PR:

main

PR #33

PR #34

PR #35

PR #38

PR #39

PR #40

PR #41

PR #42

Closing to re-work based on discussions
New plan is to Keep CtOption for the error tree and implement some kind of display over (verifier, ctoption)


support annulus search like NEARBY but reject the inner circle

Hi there:
I am maintaining a project and I received a requirement recently in which I need to find points in an annulus, and I search a lot and find tile38 hasn't supported it directly.  So I request all points in the outer circle USING NEARBY command  and reject points in the inner one.
I don't think it such complex to get the points in the annulus, because NEARBY can find the points in the outer circle and the inner circle separately.  Is the points in the outer circle minus the points in the inner circle a good solution?
What I said above is my superficial opinion and I am looking forward to receiving a response.
Thanks

Hi,
One idea is to create the annulus as a GeoJSON Polygon outside of Tile38 and then use the INTERSECTS command.
INTERSECTS fleet OBJECT {"type":"Polygon","coordinates":...}

For example, I used turf.js to generate a polygon.
function makeAnnulus(center, outerMeters, innerMeters) {
    var outer = turf.circle(center, outerMeters, {units:'meters'});
    var inner = turf.circle(center, innerMeters, {units:'meters'});
    var masked = turf.mask(inner, outer);
    return masked;
}
var geojson = JSON.stringify(makeAnnulus([-112.1, 33.5], 50000, 40000))
console.log(geojson)

https://gist.github.com/tidwall/ea68e26a41386b7e91668c37cc642c03


No response for loading stack trace

I'm using VS Code on Windows with a QNX adjusted GDB client based on version 8.3. I noticed that sometimes when I debug remotely, reach a breakpoint and the stacktrace command is send, loading the stack trace hangs forever.

This seems to only happen if I have two breakpoints in different threads and one of the thread waits for the other. These are the last logs I see when putting on trace logging:
<--   C (stackTrace-27): {"command":"stackTrace","arguments":{"threadId":-21,"startFrame":0,"levels":20},"type":"request","seq":27}
<--   C (stackTrace-28): {"command":"stackTrace","arguments":{"threadId":-2,"startFrame":0,"levels":20},"type":"request","seq":28}
--> R (stackTrace-27): {"type":"response","request_seq":27,"success":true,"command":"stackTrace","body":{"stackFrames": ....
It seems that there is no problem loading the stack trace of the running thread. But it does not seem to be able to load the stack of the thread waiting for the other thread.
If I quit the debug session, I see the stack trace opening for a few milliseconds. In that situation there is nothing I can do except quiting the debug session.

While debugging the debug adapter, I saw that it hangs in the lock inside of the function AD7DebugSession.HandleIDebugThreadDestroyEvent2. Commenting out the lock resolves the issue. Maybe this helps narrowing down the real issue.


602 check extensions in composer json

Currently mcrypt is hard-coded as a required php extension.
Use ext- requirements in composer.json to determine which PHP extensions are required.
See https://getcomposer.org/doc/02-libraries.md

👍  for this. finding myself unable to use default Rocketeer on a new php7 project with the hardcoded requirement on mcrypt

:+1:


Social mux recipe fails to resolve handle type for create.

Filing while I investigate. I modified runtime/handle.js to change the error message to just log handle.toString() because at this point in the flow the handle in question actually has no id, name map, local name, or tags, and so we were getting: could not normalize a context recipe: Type validations failed for handle ''. I'll send a PR for this minor change.
Repro should be possible by just visiting a New Arc page while logged in as me with ToT Arcs code locally. The error happens as part of speculation. FYI @mmandlis @shans
could not normalize a context recipe: Type validations failed for handle 'create as undefined'.
recipe
  map #BOXED_stats as view0 // [~a]
  map #BOXED_posts as view1 // [~a]
  create as view2
  CopyCollection as particle0
    input <- view0
    output -> view2
  CopyCollection as particle1
    input <- view1
    output -> view2
  List as particle2
    items <- view2
    consume root
      provide item as slot0
      provide action as slot1
  PostMuxer as particle3
    list <- view2
    consume item

The original recipe from Social.recipes:
recipe
  map #BOXED_stats as game_posts
  map #BOXED_posts as social_posts
  create as posts // this line is the failure
  CopyCollection
    input <- game_posts
    output -> posts
  CopyCollection
    input <- social_posts
    output -> posts
  List
    items = posts
  PostMuxer
    list = posts

Reduced recipe that still shows the issue:
recipe
  map #BOXED_stats as game_posts
  create as posts
  CopyCollection
    input <- game_posts
    output -> posts
  PostMuxer
    list = posts


the sample is not compitable with the current api

Extension sample
sample-chat
VS Code version
1.89.0
What went wrong?
the API has been changed lm.sendChatRequest changed to sendRequest and also the way we select language model has been changed.

Please use VS Code Insiders when working with brand-new API, it is always changing and Insiders has the latest


Input Field Component

We created an Input Field Component
But we are not able to control the inputs.
Please refer to #29
For now, for the Forms, we are now fetching the values from the DOM directly Eg. document.getElementById().value
But this is not the usual way for fetching values in Vue, although this is working, this is not suitable for Checkbox #29, and Radio Button #31.

Able to make them functional with the help of DOM Events


Create a mascot for the site

[ ]  Should be simple (think stick figure-ish)
[ ] Should align with current color scheme
[ ] Should be cute

No need for this.


Port standardization for openstack services with backward compatibility for existing keystone port

Port variable change
uncommented code
uncommented code
added old all.yml and hosts file
added a role for endpoints
changed hard coded ports to variables
Added endpoint role dependency and cleaned up code
cleaned up code
removed unwanted line
added keystone_user endpoints variable since we arent using the default ports as backend
removed left over code
Update main.yml
Update main.yml
removed code from cinder-common by mistake- fixing it

Very close now!

Okay, looks good now. I'll remove the flag and wait for tests to pass.

could the build have failed because I changed all the ports ?

retest

retest

retest

This is now failing to create the default image. Not sure why, needs some investigation.

retest

Please rebase on master to pick up required fixes to pass tests.

retest

retest

retest


psql update needed?

On AWS, we've started using Postgres 14.  however, we're installing psql 13 (apparently) in the docker image and we're seeing this warning message:
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.

On AWS 07 Jun:
psql (13.14 (Debian 13.14-0+deb11u1), server 14.9)
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.

Fixed via https://github.com/senzing-garage/docker-sshd/issues/304


fix: wrong md5 sign in cdn

Signed-off-by: Jim Ma<EMAIL_ADDRESS>
Description

Related Issue

Motivation and Context

Screenshots (if appropriate)
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[ ] Code compiles correctly.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Codecov Report

Merging #1126 (01fa40f) into main (5d50be3) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1126      +/-   ##
==========================================
- Coverage   45.83%   45.81%   -0.02%
==========================================
  Files         130      130
  Lines       10026    10029       +3
==========================================
  Hits         4595     4595
- Misses       4909     4912       +3
  Partials      522      522

Flag
Coverage Δ

Object-compatibility-e2etests
?

unittests
45.81% <0.00%> (-0.02%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cdn/rpcserver/rpcserver.go
60.24% <0.00%> (-1.11%)
:arrow_down:


Used multi-catch, enhanced for loops, contains and minor formatting

Any comments? Is there something that needs doing before merging?

For me, the patch does too many different things at once. I like to separate them into

formatting issues
changing indexOf(..) into contains(..)
converting to for-loops
using multi-catch expressions

I've created multiple commits, does this help?
Thanks.

Many thanks for the contribution and the splitting up of the patches.


fix: TL;DR capitalization

Changed "Tl;DR" to "TL;DR".

Thanks @theantichris ! Great username by the way...

Ha. Thank you.


Multiple Examples with Different Parameters

I am trying to figure out how to do list multiple examples with different parameter combinations and formatting for a single resource/request type that have consistent responses.
## MyAPICall  [/resource/{param1}/{param2}{?jsonp,userID}]

### Example 1 [GET]
+ Parameters
    + param1 (string, `demo`) - Blog Subsection
    + param2 (string, `posts`) - Resources requested, comma separated (%2C encoded comma)
    + jsonp (string, `0`) - jsonp callback identifier, use `0` if not using jsonp
        + userID (string, `1234`) - userID of the caller

### Example 2 [GET]
+ Parameters
    + param1 (string, `demo`) - Blog Subsection
    + param2 (string, `posts%2Ccomments`) - Resources requested, comma separated (%2C encoded comma), i.e. posts,comments is posts%2Ccomments
    + jsonp (string, `0`) - jsonp callback identifier, use `0` if not using jsonp
        + userID (string, `1234`) - userID of the caller

+ Response 200
...

+ Response 404
...

It's also ok if I supply parameter types above the examples, and then just put in examples more simply:
## MyAPICall  [/resource/{param1}/{param2}{?jsonp,userID}]

+ Parameters
    + param1 (string) - Blog Subsection
    + param2 (string) - Resources requested, comma separated (%2C encoded comma)
    + jsonp (string) - jsonp callback identifier, use `0` if not using jsonp
        + userID (string) - userID of the caller

### Example 1 [GET]
+ Parameters
    + param1: `demo`
    + param2: `posts`
    + jsonp: `0`
        + userID: `1234`

### Example 2 [GET]
+ Parameters
    + param1: `demo`
    + param2: `posts%2Ccomments`
    + jsonp: `0`
        + userID: `1234`

+ Response 200
...

+ Response 404
...

Simulated Rendered Example (this is how I wish it looked)

Hey @scalabl3 , I love your way of thinking about this problem! Great stuff!!
Out of curiosity, are familiar with MSON used for attributes description? Have you seen the proposal to use the MSON for parameters and headers description?
I would like to hear your opinion on that if you would find a time...

Also related, the response based parameters are now being implemented. Check https://github.com/apiaryio/api-blueprint/issues/58
(API Blueprint roadmap is here)

Yes I saw #58, which is what I was looking at to try to solve this variety of documentation. Multiple Requests/Responses are fine, except that you have to hit "show" to actually see them, but when you do that, you are just showing a code block with headers overridden. It's not easy to read or plainly visible (it feels more hidden).
I like the idea of Request/Response pairs, but multiple example usages in my case are more frequently needed. I only illustrated one above, but I have many cases where there are varieties of parameters and formatting of parameters that end-users need to know and also have an example of, having a simple singular example only covers the simplest of api calls.
Maybe there is a way to have Request/Response grouping be "nested" or "separate" based on the node level of its container?

@scalabl3 I guess there are two things here:

Rendering of the #58 in the Apiary documentation
Scenario (example) driven documentation

Re 1. It is still open how Apiary docs will render multiple examples based on parameter values
Re 2. API Blueprint is currently reference-like format. We have considered support for scenarios #21 but so far it wasn't a popular request.

Re 1. It is still open how Apiary docs will render multiple examples based on parameter values
I like the proposal of @scalabl3 a lot. How can we help to get this implemented?

Re 2. API Blueprint is currently reference-like format. We have considered support for scenarios #21 but so far it wasn't a popular request.

I suppose the proper why to this right now is to come up with an RFC, correct?

I like the proposal of @scalabl3 a lot. How can we help to get this implemented?

I think this is almost implemented in the parser. Maybe @kylef or @pksunkara can point to the exact place where paramers-based response is being implementd

I suppose the proper why to this right now is to come up with an RFC, correct?

Yup. Make sure to check the #21 too

@Perni1984 Yes, there was an accepted RFC 4: Request Parameters.
Support for request parameters has been implemented in the master branch of drafter [via drafter#230]. We are planning to improve the support with additional warnings when the syntax is mis-used.
If you want to use this functionality in your own tools, these parameters will be surfaced via the Refract API Description namespace and can be found under the hrefVariables part of the HTTP Request Message

I forgot to mention, the changes for the API Blueprint specification can be found at https://github.com/apiaryio/api-blueprint/pull/293, merging this is pending a new release of the parser (which will happen next week).

+1


App Crash While Selecting Image From gallery using Image_picker package.

Code ->
_imgFromGallery() async {     final XFile? pickedFile = await _picker.pickImage(       source: ImageSource.gallery,       maxWidth: 150,       maxHeight: 150,       imageQuality: 30,     );     setState(() {       _setImageFileListFromFile(pickedFile);     });
Error ->
W/OOMEventManagerFK(32746): Failed to mkdir /data/mqsas/hprof/ D/TransportRuntime.SQLiteEventStore(32746): Storing event with priority=HIGHEST, name=FIREBASE_CRASHLYTICS_REPORT for destination cct D/TransportRuntime.JobInfoScheduler(32746): Scheduling upload for context TransportContext(cct, HIGHEST, MSRodHRwczovL2NyYXNobHl0aWNzcmVwb3J0cy1wYS5nb29nbGVhcGlzLmNvbS92MS9maXJlbG9nL2xlZ2FjeS9iYXRjaGxvZ1xBSXphU3lCcnBTWVQ0RkZMMDlyZUhKaTZIOUZZZGVpU25VVE92Mk0=) with jobId=-1978126517 in 1000ms(Backend next call timestamp 0). Attempt 1 I/Process (32746): Sending signal. PID: 32746 SIG: 9 Lost connection to device.

Hi @arshad-dqot
Which image_picker plugin version are you using?
Also, does the issue happen when reproducing this with plugin sample code? If so, please provide the complete output of flutter run -v so that we may verify it. Thanks!


actions (optional) grayed out

I'm trying to create a new quest with an action that i've already set up in the actions tab, i go to the edit stage section of the quest and when im there it says Actions (optional) in grey and wont allow me to select it
https://imgur.com/a/dZQj83b

Your image link doesn't work for me.
Most likely you need to set an objective first.


Auto skip remap by default for Mojang-mapped NeoForge projects

Based upstream/exp/1.5. I will rebase the PR once exp/1.5 is up to date with upstream. Or if you want I can split the merge into a separate PR.
Supercedes #175 for exp/1.5

rebased