Unsupported operand types

Hello,
I'm actually trying to use Auth0 integration on a Prestashop module, but after installed the integration with Composer, i've this error :
[PrestaShop] Fatal error in module file: /var/www/html/modules/prestashop/vendor/guzzlehttp/guzzle/src/Client.php:236
Unsupported operand types
Is that a bug ? It's actually stucking me.
Thanks in advance.
Lucas

What is your Guzzle version? What is your PHP version?
A bit more detailed stack trace would be nice, because without that you won't be able to find the usage of the library and without input parameters we cannot reproduce the issue.
Looking at the latest code on the aformentioned line there is an array merging operation which awaits two arrays. Maybe there is an uncompatible input there.

I'm sorry, it's actually the first time i'm asking help here for something.
My PHP version is 7.1.14 (running on a Docker), and it's actually installed with Auth0 package (Composer) so i don't have the version but i guess it should be the last one..
About the logs, it's all i got.

I'm sorry, it's actually the first time i'm asking help here for something.

No problem, just a friendly reminder. ;)

(Composer) so i don't have the version but i guess it should be the last one..

You can check the version in the composer.lock file

I'll keep that in my mind for the future, thanks :)
I'm using guzzlehttp 6.3.0

Without the actual stack trace it's going to be hard to identify the problem. Can you debug the code?
If you have no debugging tools at hand, at least could you go to that line and var_dump the two operands (poor mans debug)?

I've only the code of the guzzle library on my folder. The only line of code i've called is
"require_once(dirname(FILE) . '/vendor/autoload.php');"
It concern the operand "$result = $options + $defaults;"
Here's the complete function affiliated :
`private function prepareDefaults($options)
{
$defaults = $this->config;
    if (!empty($defaults['headers'])) {
        // Default headers are only added if they are not present.
        $defaults['_conditional'] = $defaults['headers'];
        unset($defaults['headers']);
    }

    // Special handling for headers is required as they are added as
    // conditional headers and as headers passed to a request ctor.
    if (array_key_exists('headers', $options)) {
        // Allows default headers to be unset.
        if ($options['headers'] === null) {
            $defaults['_conditional'] = null;
            unset($options['headers']);
        } elseif (!is_array($options['headers'])) {
            throw new \InvalidArgumentException('headers must be an array');
        }
    }

    // Shallow merge defaults underneath options.
    $result = $options + $defaults;

    // Remove null values.
    foreach ($result as $k => $v) {
        if ($v === null) {
            unset($result[$k]);
        }
    }

    return $result;
}`

Yup, that's it. This line in particular:
$result = $options + $defaults;
Can you dump those two variables before merging them?

Here's what i got.
The first (string) is the $options value, and the second one is $defaults.
`=========
string(38) "1var/www/html/app/cache/dev/cacert.pem"
array(9) { ["base_url"]=> string(33) "https://api-addons.prestashop.com" ["defaults"]=> array(1) { ["timeout"]=> string(3) "5.0" } ["handler"]=> object(GuzzleHttp\HandlerStack)#393 (3) { ["handler":"GuzzleHttp\HandlerStack":private]=> object(Closure)#446 (2) { ["static"]=> array(2) { ["default"]=> object(Closure)#416 (2) { ["static"]=> array(2) { ["default"]=> object(GuzzleHttp\Handler\CurlMultiHandler)#457 (5) { ["factory":"GuzzleHttp\Handler\CurlMultiHandler":private]=> object(GuzzleHttp\Handler\CurlFactory)#459 (2) { ["handles":"GuzzleHttp\Handler\CurlFactory":private]=> array(0) { } ["maxHandles":"GuzzleHttp\Handler\CurlFactory":private]=> int(50) } ["selectTimeout":"GuzzleHttp\Handler\CurlMultiHandler":private]=> int(1) ["active":"GuzzleHttp\Handler\CurlMultiHandler":private]=> NULL ["handles":"GuzzleHttp\Handler\CurlMultiHandler":private]=> array(0) { } ["delays":"GuzzleHttp\Handler\CurlMultiHandler":private]=> array(0) { } } ["sync"]=> object(GuzzleHttp\Handler\CurlHandler)#454 (1) { ["factory":"GuzzleHttp\Handler\CurlHandler":private]=> object(GuzzleHttp\Handler\CurlFactory)#389 (2) { ["handles":"GuzzleHttp\Handler\CurlFactory":private]=> array(0) { } ["maxHandles":"GuzzleHttp\Handler\CurlFactory":private]=> int(3) } } } ["parameter"]=> array(2) { ["$request"]=> string(10) "" ["$options"]=> string(10) "" } } ["streaming"]=> object(GuzzleHttp\Handler\StreamHandler)#394 (1) { ["lastHeaders":"GuzzleHttp\Handler\StreamHandler":private]=> array(0) { } } } ["parameter"]=> array(2) { ["$request"]=> string(10) "" ["$options"]=> string(10) "" } } ["stack":"GuzzleHttp\HandlerStack":private]=> array(4) { [0]=> array(2) { [0]=> object(Closure)#464 (1) { ["parameter"]=> array(1) { ["$handler"]=> string(10) "" } } [1]=> string(11) "http_errors" } [1]=> array(2) { [0]=> object(Closure)#469 (1) { ["parameter"]=> array(1) { ["$handler"]=> string(10) "" } } [1]=> string(15) "allow_redirects" } [2]=> array(2) { [0]=> object(Closure)#470 (1) { ["parameter"]=> array(1) { ["$handler"]=> string(10) "" } } [1]=> string(7) "cookies" } [3]=> array(2) { [0]=> object(Closure)#423 (1) { ["parameter"]=> array(1) { ["$handler"]=> string(10) "" } } [1]=> string(12) "prepare_body" } } ["cached":"GuzzleHttp\HandlerStack":private]=> NULL } ["allow_redirects"]=> array(5) { ["max"]=> int(5) ["protocols"]=> array(2) { [0]=> string(4) "http" [1]=> string(5) "https" } ["strict"]=> bool(false) ["referer"]=> bool(false) ["track_redirects"]=> bool(false) } ["http_errors"]=> bool(true) ["decode_content"]=> bool(true) ["verify"]=> bool(true) ["cookies"]=> bool(false) ["_conditional"]=> array(2) { ["Accept"]=> string(16) "application/json" ["User-Agent"]=> string(39) "GuzzleHttp/6.2.1 curl/7.38.0 PHP/5.6.33" } }
========`
(Sorry for the late answer)

Well, you will have to debug how that value reached the prepare method. It's provided by some external caller.

Hello @P147x, did you solved that problem?

Hello @P147x, did you solved that problem?

Hello guys, sorry for the last answer.
Its been a time, and i forgot a bit. I think the problem was the Auth0 integration who was currently using guzzle, maybe in a wrong way. Are you having a similar issue ?

I have  a similar issue.This is my error trace:
[2020-03-04 00:45:17] test.ERROR: Unsupported operand types {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Unsupported operand types at /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/guzzlehttp/guzzle/src/Client.php:320)
[stacktrace]
#0 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/guzzlehttp/guzzle/src/Client.php(149): GuzzleHttp\Client->prepareDefaults(Array)
#1 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/guzzlehttp/guzzle/src/Client.php(183): GuzzleHttp\Client->requestAsync('shouldReport', Array, Array)
#2 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/guzzlehttp/guzzle/src/Client.php(96): GuzzleHttp\Client->request('shouldReport', Array, Array)
#3 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/guzzlehttp/guzzle/src/Client.php(63): GuzzleHttp\Client->__call('shouldReport', Array)
#4 /data/wwwroot/test.linde.smartlink.aidong.ai/app/Http/Controllers/Carrier/CarrierDeviceTrait.php(63): GuzzleHttp\Client->__construct(Array)
#5 /data/wwwroot/test.linde.smartlink.aidong.ai/app/Http/Controllers/Carrier/CarrierDeviceTrait.php(578): App\Jobs\DeviceMseJob::getGuzzleHttpBySync('device/getCarri...', 'deviceId=866202...')
#6 /data/wwwroot/test.linde.smartlink.aidong.ai/app/Jobs/DeviceMseJob.php(117): App\Jobs\DeviceMseJob->getCarrierInfoByDeviceId('866202001201904')
#7 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(88): App\Jobs\DeviceMseJob->fire(Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), Array)
#8 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/freyo/laravel-queue-cmq/src/Queue/Jobs/CMQJob.php(81): Illuminate\Queue\Jobs\Job->fire()
#22 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/symfony/console/Application.php(1012): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/symfony/console/Application.php(272): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/laravel/framework/src/Illuminate/Console/Application.php(90): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /data/wwwroot/test.linde.smartlink.aidong.ai/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(133): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /data/wwwroot/test.linde.smartlink.aidong.ai/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 {main}
"}

my $options value and $defaults value:
options:{"synchronous":true} defaults:{"handler":{},"base_uri":{},"allow_redirects":{"max":5,"protocols":["http","https"],"strict":false,"referer":false,"track_redirects":false},"http_errors":true,"decode_content":true,"verify":true,"cookies":false,"idn_conversion":true,"_conditional":{"User-Agent":"GuzzleHttp/6.5.1 curl/7.56.0 PHP/7.1.32"}}

this is my trace:
[2020-03-04 00:45:17] test.ERROR: Unsupported operand types {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Unsupported operand types at /data/wwwroot/test_snow/vendor/guzzlehttp/guzzle/src/Client.php:320)
[stacktrace]
#0 /data/wwwroot/test_snow/vendor/guzzlehttp/guzzle/src/Client.php(149): GuzzleHttp\Client->prepareDefaults(Array)
#1 /data/wwwroot/test_snow/vendor/guzzlehttp/guzzle/src/Client.php(183): GuzzleHttp\Client->requestAsync('shouldReport', Array, Array)
#2 /data/wwwroot/test_snow/vendor/guzzlehttp/guzzle/src/Client.php(96): GuzzleHttp\Client->request('shouldReport', Array, Array)
#3 /data/wwwroot/test_snow/vendor/guzzlehttp/guzzle/src/Client.php(63): GuzzleHttp\Client->__call('shouldReport', Array)

also having issue with Unsupported operand types. Looks like $options and $defaults are both array types, should we really be merging them with a +?
// Shallow merge defaults underneath options.
$result = $options + $defaults;

should we really be merging them with a +?

This is perfectly fine and well documented at https://www.php.net/manual/en/language.operators.array.php

The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.

Or in plain english: it's the most common way to have a user-provided array and a defaults-array and produce a result where all the defaults missing in the user-provided are filled in. The method is poignantly called prepareDefaults for that reason.
Everyone having the problem: the problem is that something outside Guzzle passes data in where either operand is not an array anymore, as is evident by https://github.com/guzzle/guzzle/issues/2016#issuecomment-368227484

Thank you @mfn

It happens what you don't call the Guzzle client construct method.

This is my stack trace for a similar issue with PHP7.4 and Guzzle 7.2.0
#42 /vendor/guzzlehttp/guzzle/src/Client.php(304): GuzzleHttp\Client::prepareDefaults
#41 /vendor/guzzlehttp/guzzle/src/Client.php(154): GuzzleHttp\Client::requestAsync
#40 /vendor/guzzlehttp/guzzle/src/Client.php(187): GuzzleHttp\Client::request
#39 /vendor/guzzlehttp/guzzle/src/Client.php(92): GuzzleHttp\Client::__call
#38 /vendor/guzzlehttp/guzzle/src/Client.php(57): GuzzleHttp\Client::__construct

and part of the code
            $http = new Client([
                'verify' => App::environment('local') ? false : true,
            ]);
            $response = $http->get($url, [
                'headers' => $headers,
                'query'   => $query,
            ]);

Noticed that when running this locally I end up in the get method inside of vendor/guzzlehttp/guzzle/src/ClientTrait.php method instead of the __call method where the problem merging options and defaults seems to trigger.
This piece of code runs as part of a job and the server also has New Relic extension installed on it...not sure if this is the problem but found this (https://discuss.newrelic.com/t/php-guzzle-errors-in-php-agent-9-0/91477/22)
I'm trying to figure out how this happens and will update this post if I can find out why.

As to the reference with the newrelic forum, be careful, the last comment says:

from time to time it somehow breaks, which causes all guzzle related jobs to fail until the newrelic daemon is restarted

Which is a clear indicator it's unrelated to Guzzle.

/vendor/guzzlehttp/guzzle/src/Client.php(304)

This is exactly this line:
        $result = $options + $defaults;

Either $options or $defaults is not an array (anymore).
I suggest to temporarily add debugging code before this line to witness what those two values are and check it out once you hit problem again.

Running locally, my debugger stops in the get method as expected but on the remote server instead of calling get it tries to find this method via __call given the stack trace above.
Still digging, but what could cause Client to execute the magic method __call instead of the get method in vendor/guzzlehttp/guzzle/src/ClientTrait.php.

but what could cause Client to execute the magic method __call instead of the get method

Oh, thanks for pointing this out again! You already mentioned it but I missed it. This is very strange.

Client.php(57) -> https://github.com/guzzle/guzzle/blob/de6f1e58e735754b888649495ed4cb9ae3b19589/src/Client.php#L57 (not so useful)
Client.php(92) -> https://github.com/guzzle/guzzle/blob/de6f1e58e735754b888649495ed4cb9ae3b19589/src/Client.php#L92

What perplexes me, it looks like there something missing: how could it get there?

but on the remote server instead of calling get

Ah, that get method from the trait 😅 Man, this naming is confusing => https://github.com/guzzle/guzzle/blob/de6f1e58e735754b888649495ed4cb9ae3b19589/src/ClientTrait.php#L42
Is there a problem with code being not up2date, weird caching?
Looks like as if the ClientTrait is not applied? 🤔 Do you source versions match?

This error started occuring after upgrading a project from Laravel 5.x to 8 (Guzzle 6.5.5 to 7.2.0).
Will see if there is any sort of caching going on, it definitely feels like something is still trying to use some old code where this trait doesn't exist. We're running the project on Heroku so anything is possible once the code is running on one of their dynos.
The composer log on deploy shows this
- Installing guzzlehttp/guzzle (7.2.0): Extracting archive

Checked the vendor directory on the server and can see that this trait exists and looks correct in the sense that the get method is there

I'm also having this issue on Laravel 8, Guzzle 7.3. I use New Relic, so I think it's probably related to that.

I'm seeing this after installing New Relic, never before. I suppose its new relic related

anyone solve it?

Upgrade to the latest version. You may need ton upgrade both local and global.


Add DaSilva.org.br acessibility checker

This raises the question of potentially needing to show locales and languages for services as well - not in the scope of this PR, but something that I'll raise an issue for now.

Thank you! :)


duplicate projects on admin Dashboard

It seems that on the admin dashboard whenver we change the title of a project a new entry is added to the admin dashboard. This means that we can have many entries on AdminBro for the same project. Will this pose any issues?
These are all the same project for example:

Thanks for that. We may discuss it tomorrow with @mohammadranjbarz and @CarlosQ96


Publish updated package

Would it be possible to publish an updated version of this? The package in npm at 1.0.0 looks to be behind master. The babel updates in particular would be nice to have. I am trying to get the 'react-native-json-tree' project to work for me, and it currently has an embedded build of base16. I wanted to switch to the npm package (as the embedded thing is tricky since the base16 deps did not get included) but getting babel errors. Thanks!

@andytompkins I have just published react-native-json-tree v1.1.0 which uses a forked version of this library. It should resolve any issues you were having. Let me know if that is not the case.


Rename GitHub jobs

Now they can be made required statuses

coverage: 100.0%. remained the same
when pulling 18bd5b29fa47fcad1d6a67295273cf432d07e14b on rename-github-jobs
into 5e84b3eca986d29d06dfd12f8c1f362197539e13 on main.


Put KodaDot on awesome-vite list

Whenever below is merged it's time to put KodaDot on awesome-vite list
Hence @kkukelka did this amazing heavy lifting job, he got pre-reserved credits for fame 😍

https://github.com/kodadot/nft-gallery/pull/2677

📺   https://github.com/vitejs/awesome-vite
Originally posted by @yangwao in https://github.com/kodadot/nft-gallery/issues/2677#issuecomment-1079887178

I feel honoured 😄

blocked till i solve this i guess https://github.com/kodadot/nft-gallery/issues/2692 😅


Feedback 'Hey there I have some feedback: We are showing ...'

Message from Devang Thakkar sent on 2016-03-24 17:17:44 UTC###

Hey there
I have some feedback:
We are showing register to bid button on past auctions and it doesn't do anything (rightfully) but should instead say online bidding closed.

Link to HockeyApp

https://rink.hockeyapp.net/manage/apps/37029/feedback/473587

I believe this was mentioned in a Slack as not being the case with the released version, I also can’t reproduce it.
/cc @devangt @ashfurrow

Ah, it was #1359.


Item 5698 Add/remove fields - API dev

Looks good!

@labkey-tchad Can you please review automated test for this story, it uses the DomainCommand helper classes which I've edited in testAutomation module (https://github.com/LabKey/testAutomation/pull/9)


example project now uses fixed namespace

What this PR does / why we need it: fix local dev setup
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

NONE

/cc @bergerx

history: https://kubernetes.slack.com/archives/CB57N0BFG/p1544797499098200


migrate the nuv ide to ops ide

Migrate the exiting  nuv ide tasks to ops ide performing the following chanages:

rewrite the pyhton code in js with bun code
change nuvfile to opsfile and nuvopts to docopts
change any internal reference to nuv to $OPS
replace any grep in rg
use the new tools (coreutils)

Hello,
I've a question about the task ide login.
In nuv there are some hardcoded values and i need a strategy to port.
In particular: how should we set NUVDEV_APIHOST, NUVDEV_HOST (ported these should be became OPSDEV_APIHOST and OPSDEV_HOST) ?
Here's the olaris code: https://github.com/nuvolaris/olaris/blob/61562e1e05c51fd9b4900f15f5d839504d5fd749/ide/nuvfile.yml#L44


Share license section in one place for each language

What:
Share license section in one place (like common.snip) for each language.
Why:
Keep it DRY. We currently duplicate our generated file licenses across multiple .snip files for each language:
toolkit$ git grep licenseSection
src/main/resources/com/google/api/codegen/nodejs/main.snip:  {@licenseSection(service)}
src/main/resources/com/google/api/codegen/nodejs/main.snip:@private licenseSection(service)
src/main/resources/com/google/api/codegen/nodejs/message.snip:  {@licenseSection()}
src/main/resources/com/google/api/codegen/nodejs/message.snip:@private licenseSection()
src/main/resources/com/google/api/codegen/php/main.snip:    {@licenseSection(xapiClass)}
src/main/resources/com/google/api/codegen/php/main.snip:@private licenseSection(xapiClass)
src/main/resources/com/google/api/codegen/py/main.snip:    {@licenseSection(service)}
src/main/resources/com/google/api/codegen/py/main.snip:@private licenseSection(service)
src/main/resources/com/google/api/codegen/py/message.snip:    {@licenseSection()}
src/main/resources/com/google/api/codegen/py/message.snip:@private licenseSection()
src/main/resources/com/google/api/codegen/ruby/main.snip:  {@licenseSection(service)}
src/main/resources/com/google/api/codegen/ruby/main.snip:@private licenseSection(service)
src/main/resources/com/google/api/codegen/ruby/message.snip:    {@licenseSection()}
src/main/resources/com/google/api/codegen/ruby/message.snip:@private licenseSection()

I think the way I'd prefer to do it is populate it once in a view model (as List licenseLines), and format it per each language's commenting style in the templates.

@garrettjonesgoogle That works well, as long as List licenseLines is populated from a text file. It would be awful to read this in the code as a series of add() calls.

@bjwatson of course!

C# and Java implemented in https://github.com/googleapis/toolkit/pull/676 .


Make indexmap dependency optional

Sometimes one just needs parsing/deserialization and it would be great to be able to do that with this crate w/o having to drop indexmap and its deps along only for that (See https://github.com/bkchr/proc-macro-crate/issues/37). I believe the order is only important when writing back data after reading it but not, when only parsing so this should be possible?

I experimented with this for a bit but ran into some problems but can't remember what they were.
#808 might allow us to drop it regardless.

Hmm, we made ourselves further entrenched into indexmap by using the Raw API.


Having issues while updating from 4.2.2 to 5.1.4

Hi, as I did not see an upgrade guide I willl post it here. I was using the smartStartegy before and I tried to use the new API but for some reason the merge is not happening as before.
  return merge.smartStrategy({
    "module.rules.use": "prepend"
  })

Is the code below equivalent to the one above? What am I doing wrong?
  return mergeWithCustomize({
    customizeArray: customizeArray({
      "module.rules.use.*": "prepend",
    }),
  })

Here is a link to the repo if that helps.
Thank you in advance for looking over my issue. And I appologise if this is not the right place to post this issue.

Hi,
Can you send me a simple example (two minimal configurations + output after merge) to help developing this feature? Is the idea to match based on test and then merge at use? Given this is specific logic, it doesn't fit the current syntax.
I've been exploring a light solution related to this at issue 146. The use case is far more complex there but it's possible what you have here would fit into the problem.

@ioanungurean I added a new API called mergeWithRules. Can you check if it would work for your use case?

Having the same problem. mergeWithRules didn't help.
Going to stay at v 4.2.2.
link to repo

Can you open a separate issue with your current setup? Ideally it should be simplified as much as possible and something I can run.

On 11.10.2020, at 17:31, Eugen Mayer<EMAIL_ADDRESS>wrote:

Having the same problem. mergeWithRules didn't help.
Going to stay at v 4.2.2.
link to repo
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

@ioiooi Ah, nevermind. Just saw your link a second too late. I'll check how it would work with v5.

@ioiooi If you want to use v5, it looks like the following is a good option in your case:
const common = require('./webpack.common.js');
const { mergeWithCustomize, customizeArray } = require('webpack-merge');
const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = mergeWithCustomize({
  customizeArray: customizeArray({
    'module.rules': 'prepend'
  }),
})(common, {...})

I noticed mergeWithRules won't work due to mini-css-extract-plugin for this case.

@bebraw sorry, for not isolating the issue and making your work harder.
Your suggested changes are working! Thank you! 👍

@ioiooi No worries, it was easy enough to work against your repository. Have a nice week. 👍

I'm closing this one. Feel free to open a new issue if the new API doesn't work for your use case.


[1.12.2] Furnaces can only smelt one item at once

If there is anything in the output slot, it can't smelt any more until that item is removed.
Unlike everyone else with this issue, I do not have the CustomNPCs mod, so something else is causing this.

1.12 is not supported, you'll have to figure that one out on your own.

I do use the customNPCs mod and this issue is presented. I will be uninstalling fastfurnace now knowing that "1.12 is not supported". This is clearly a forge data tag issue with fastfurnace and can not be fixed by customnpcs (as said by Noppes himself).
OP: If you want normal functionality of the furnace, remove fast furnace, otherwise remove mods one at a time until you find the incompatible mod.


༼ つ ◕_◕ ༽つ stack-frame-overlay

Would you prefer to keep stack-frame-mapper and friends separate?

No preference, they're much more general-purpose however. We can pull them in so there's full control over all the deps.
If we pulled them in here, they probably wouldn't make sense as separate packages -- would just be additional files.

I'm cool with either approach. The only thing I'm worried about is if we cause a crash somewhere and need to get out a fix quick. In this case it's more hassle to verify it works and release it if it's spread across repos. I don't want to coerce you into giving up your work though if you'd rather keep the attribution 😄 . Both ways are fine, your call.

I don't want to coerce you into giving up your work though if you'd rather keep the attribution.

I hope that's not the feeling I'm giving off! 😅
All of this work was done for CRA so it belongs here, it was just in separate packages since it became so complex and outgrew the single-file. I wasn't sure we wanted to introduce a whole new package/build step/etc.

One package and a bunch of files sounds best to me for now.

LGTM, I trust you this works

Should we use a different package name? e.g. react-dev-over

Maybe react-error-overlay.

:shipit:


Feature request: Side pane locking

First of all, I love this plugin! Thanks for making this, it really improves workflow.
A feature I'd love to see would be having lock icons at the top right of both side panes and when that is clicked, the pane becomes locked in place so it won't close when you click on a note!
Let me know if you like the idea or if you'd like me to take a crack at it 😄

Hi Aaron!
Thank you for your feature request!
I totally agree with your thoughts and think we need such a feature.
But I don't have much time for development. Therefore, it will take some time until this feature is completed.🙁
However, I can also merge your pull request if you wish!

I added this feature on version 0.4.0! But it may occur bugs with custom CSS themes.

@skelato1 Just tried it out and it looks so good and works perfectly! Thanks for adding that! Nice job 👍


Missing "NET symbol

[Enter feedback here]

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

ID: 49205137-dcec-a120-e5e7-1b9c79cdafbb
Version Independent ID: 4352856b-5ccf-8e62-48b4-3151340cac56
Content: Target frameworks in SDK-style projects - .NET
Content Source: docs/standard/frameworks.md
Product: dotnet
Technology: dotnet-standard
GitHub Login: @gewarren
Microsoft Alias: gewarren

Closing as duplicate of #21520 .


Api to clear all answers of questionnaire response.

IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).
Fixes #2221
Description
Provide api to clear all answers present in the questionnaire response.
Alternative(s) considered
Have you considered any alternatives? And if so, why have you chosen the approach in this PR?
Type
Choose one: Feature
Screenshots (if applicable)
Checklist

[x] I have read and acknowledged the Code of conduct.
[x] I have read the Contributing page.
[x] I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
[x] I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
[x] I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
[x] I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

What about draftAnswerMap, modifiedQuestionnaireResponseItemSet, responseItemToAnswersMapForDisabledQuestionnaireItem ,etc ? Do they need to be cleared as well ?

I am trying to understand why it is necessary to clear these data structures individually. Is there any use case that requires attention? Wouldn't calling this function modificationCount.update { it + 1 } be sufficient?

I am suspecting that draftAnswers can still show up.
Notice the answersChangedCallback. Whenever any answer changes we updated draftAnswer, modifiedQuestionnaireResponseItemSet and then do modificationCount.update { it + 1 }.
So I think draftAnswer and modifiedQuestionnaireResponseItemSet definitely needs to be cleared otherwise the obsolete values will still show. Try a testcase where you can have draftAnswers, eg, edittext.
Again, the cached answers in responseItemToAnswersMapForDisabledQuestionnaireItem should  also be cleared even though I don't think it will effect anything but no point keeping obsolete answers.

I am suspecting that draftAnswers can still show up.
Notice the answersChangedCallback. Whenever any answer changes we updated draftAnswer, modifiedQuestionnaireResponseItemSet and then do modificationCount.update { it + 1 }. So I think draftAnswer and modifiedQuestionnaireResponseItemSet definitely needs to be cleared otherwise the obsolete values will still show. Try a testcase where you can have draftAnswers, eg, edittext.
Again, the cached answers in responseItemToAnswersMapForDisabledQuestionnaireItem should also be cleared even though I don't think it will effect anything but no point keeping obsolete answers.

Ohhh!, thats correct, it requires to clear draftAnswer or else it keep showing partial answer in the textfields, e.g partial date answer in the datePicker. Basically, clears dataStructures which get modified by answerChangeCallback.


Highlight Definitions not working at all

When enabling highlight_definitions and trying to hover with cursor over a symbol, no other symbols are highlighted.
To Reproduce

Enable nvim-treesitter-refactor highlight_definitions as provided on the documentation
Try to create a simple program (C in my case) which contains a symbol definition and usage
Try to hover with cursor over the symbol usage
The original definition is not highlighted

Expected behavior
The original definition of such symbol should be highlighted
Output of :checkhealth nvim_treesitter

nvim-treesitter: require("nvim-treesitter.health").check()
Installation

OK: tree-sitter found 0.20.7 (parser generator, only needed for :TSInstallFromGrammar)
OK: node found v18.7.0 (only needed for :TSInstallFromGrammar)
OK: git executable found.
OK: cc executable found. Selected from { vim.NIL, "cc", "gcc", "clang", "cl", "zig" }
Version: cc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
OK: Neovim was compiled with tree-sitter runtime ABI version 14 (required >=13). Parsers must be compatible with runtime ABI.

OS Info:
{
machine = "x86_64",
release = "6.2.8-200.fc37.x86_64",
sysname = "Linux",
version = "#1 SMP PREEMPT_DYNAMIC Wed Mar 22 19:11:02 UTC 2023"
}
Parser/Features         H L F I J

c                   ✓ ✓ ✓ ✓ ✓
java                ✓ ✓ . ✓ ✓
lua                 ✓ ✓ ✓ ✓ ✓
vim                 ✓ ✓ ✓ . ✓

Legend: H[ighlight], L[ocals], F[olds], I[ndents], In[j]ections
+) multiple parsers found, only one will be used
x) errors found in the query, try to run :TSUpdate {lang}

Output of nvim --version
NVIM v0.8.3
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wal
l -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redh
at-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DNVIM_TS_HAS_SET_MATCH_LIMIT -DNVIM_
TS_HAS_SET_ALLOCATOR -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=g
nu99 -Wshadow -Wconversion -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-proto
types -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_
GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3
 -I/builddir/build/BUILD/neovim-0.8.3/redhat-linux-build/cmake.config -I/builddir/build/BUILD/neovim-0.8.3/
src -I/usr/include -I/usr/include/luajit-2.1 -I/builddir/build/BUILD/neovim-0.8.3/redhat-linux-build/src/nv
im/auto -I/builddir/build/BUILD/neovim-0.8.3/redhat-linux-build/include
Compiled by mockbuild@koji

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

Additional context
Running :checkhealth against nvim only returns that I do not have pynvim installed. Unsure whether that could be the issue.

Updating Node.js, installing pynvim and generally reinstalling treesitter and treesitter-refactor solved the issue


Tile Indicators Highlight hovered tile phantom clicks

Please check if your issue is not a duplicate by searching existing issues
Describe the bug
Clicking on a wall with void behind or clicking out of range doesn't produce any input until the cursor hovers a tile in range.
To Reproduce
Steps to reproduce the behavior:

Enable Tile indicators and Highlight hovered tile
Go to POH and walk all the way to the border to see the void
Click the void
Move the cursor onto a tile in range
Now the click in the void registers, producing unexpected behavior.

Expected behavior
When clicking the void, nothing at all should happen, resulting in the same behavior as not having the Highlight hovered tile enabled.
Screenshots

Environment (please complete the following information):

OS:  Windows 10
RuneLite version: 1.5.27
Launcher version: 1.6.0

Can you reproduce this behavior on the vanilla OSRS client?

Just tested vanilla OSRS client does not produce any input when clicking at the void nor when clicking at the void and then hovering the ground with the cursor.

Some streamer (I forgot the name, and can't find it in history) reported this on Discord as well.

fixed in a3e9b790dd92d8fe7eb12d35de6db250f1f78328


RegisterAllProvidersIP=0 and SQL AG using DNN

Please can this document be reviewed with respect to the suggested use of RegisterAllProvidersIP=0. SQL Server 2019 CU8 released the DNN functionality for AG (https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-distributed-network-name-dnn-listener-configure).
I don't believe that cluster will honour the RegisterAllProvidersIP=0 when using a Distributed Network Name (i.e. it will always register all IP Addresses associated with the nodes that are possible owners) and therefore it is not an option when using DNN.
I'm not sure if this doc could be re-written to clarify the VNN/DNN options, or if it just needs a note/warning in an appropriate place?

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

ID: b679be86-06b0-b425-cd4f-d7b3ea104693
Version Independent ID: aec2cf5b-5bf9-647e-6b0f-9fab6fca3a79
Content: Configure availability group listener - SQL Server Always On
Content Source: docs/database-engine/availability-groups/windows/create-or-configure-an-availability-group-listener-sql-server.md
Product: sql
Technology: availability-groups
GitHub Login: @cawrites
Microsoft Alias: chadam

@PhilB-MSFT -- Phil, thank you for your suggestions.
@cawrites -- Cheryl, please look into this issue.

@PhilB-MSFT I understand from our conversation you've been speaking with the PM. I am closing this issue since you have followed up offline.


Add superscripted 1

This is (probably) less useful for math, but really useful for footnotes.

I created a new commit implementing this on main and added you as a co-author so you still get credit: https://github.com/samwho/symbol.wtf/commit/8dc57dad1639df6b1ff707853078fd8ef920a851.
Thank you for your contribution! 🙏

Sweet! Thanks for that. This is a great little tool you’ve built.


DEs probably shouldn't link /share

Issue description
A lot of the DEs (gnome, lumina, lqxt, mate, plasma5) put /share into environment.pathsToLink. While this is a reasonable thing to want, really the responsibility for linking relevant paths should belong with modules associated with those paths. e.g. the SDDM modules should link /share/sddm. DEs should only link for the applications they're responsible for (e.g. all the KDE apps in plasma5).
As it is, if a package only works properly because it's covered by the blanked linking of /share, it won't work in a DE that doesn't do this or without a DE. So it masks problems.
However, getting rid of it may be painful as it will likely reveal many such problems.

As an i3 user, I support the initiative. How to proceed then ?  should we move  environment.pathsToLink = [ "/share" ]; to the modules. Can't it be a problem for packages without a module ?

Ideally, packages should not rely on global state. If they do, fix should be attempted first.

Looking at https://www.freedesktop.org/wiki/Specifications/, we need at least sounds and metainfo modules. color might be also nice.

I think packages should only link paths if they expect contributions from other packages at runtime, otherwise they shouldn't. It would probably help to make the description of pathsToLink to be a bit more prescriptive about what you should and shouldn't link.

should we move environment.pathsToLink = [ "/share" ]; to the modules

We should be moving environment.pathsToLink = [ "/share/my/specific/subfolder" ]; to the modules where possible, yes.
We should probably have a more general AppStream module than just metainfo, there is also stuff that goes in app-info and some other places.
I think we also want a gtk module, and maybe something for gsettings-schemas?

I think packages should only link paths if they expect contributions from other packages at runtime, otherwise they shouldn't.

Indeed – packages should be able to load their own data from the prefix that was set during compilation. Only packages that need to be loaded by many other apps should be linked to system path. It might be fine to use global plug-in directory for packages that support plug-ins temporarily, but eventually, they should be ported to a wrapper with symlinkJoin like e.g. deadbeef.

We should probably have a more general AppStream module than just metainfo, there is also stuff that goes in app-info and some other places.

Yes, the AppStream specification has a legacy path that would need to be supported as well.

I think we also want a gtk module, and maybe something for gsettings-schemas?

Those are not a Freedesktop standard but, you are right, we might want to support them. Though on the latter, I keep alternating between accepting that schemas were designed to be global data, and my hate of global state and wanting to eliminate it.
Also, this issue seems to be missing a link to the original freedesktop module: https://github.com/NixOS/nixpkgs/pull/45058

Yeah, I think we should have modules for stuff that is global state, regardless of whether we like it or not. At the moment we're just hackily handling it elsewhere.
One thing I don't like about this whole situation is that it's done with nixos modules so we end up with differences to what gets installed if you use nix-env. But that's another kettle of fish.

I've become much more ambivalent about this. Wanting additional directories in /share is something that you want when you install a program that needs them. At the moment, every such program needs to have its own nixos module.
Given that /share is basically a bin of implicit system dependencies, maybe we should just link the whole thing by default. This is basically what we do for user profiles in nix-env, and I've never heard anyone complain.

My main point is that if applications rely on their data being linked into a profile, they may subtly break when the app is not installed – for example, when running the built expression from /nix/store.

Hm, that does seem like a good reason to at least wrap the program with a local extension of XDG_DATA_DIRS. But when it is installed in a profile, then it's annoying that it won't pick up other data files unless we write a module for it.

Well, if it expects data from other packages, it should accept them as argument, see, for example, https://github.com/NixOS/nixpkgs/blob/e7ff7b93180b5dc3669c8c862fd78d490115a7f0/pkgs/applications/graphics/gimp/wrapper.nix

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/how-to-set-up-a-gtk3-theme-thats-not-in-the-nix-pkgs/28969/3

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/missing-links-in-run-current-system-sw-share/42804/2


[LIVY-873] Fix pagination issue on Livy UI

What changes were proposed in this pull request?
The PR add pagination on call to retrieve batches or sessions inside
javascript because when livy reach 100 sessions or batches ui do not
show all sessions or batches
FIX : https://issues.apache.org/jira/browse/LIVY-873
How was this patch tested?
Manual test

I tested this changes in my environment and it looks good after the comments I added on the 2 LOC above

@tprelle could you attach the screen capture of UI ,both before and after your change

Codecov Report

Merging #333 (59c7dab) into master (4d8a912) will decrease coverage by 2.71%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #333      +/-   ##
============================================
- Coverage     68.50%   65.78%   -2.72%
+ Complexity      841      817      -24
============================================
  Files           103      103
  Lines          5940     5948       +8
  Branches        898      899       +1
============================================
- Hits           4069     3913     -156
- Misses         1312     1510     +198
+ Partials        559      525      -34

Impacted Files
Coverage Δ

...a/org/apache/livy/server/ThriftServerFactory.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...main/scala/org/apache/livy/server/LivyServer.scala
2.23% <0.00%> (-29.47%)
:arrow_down:

...rc/main/scala/org/apache/livy/utils/SparkApp.scala
56.00% <0.00%> (-20.00%)
:arrow_down:

core/src/main/scala/org/apache/livy/Logging.scala
66.66% <0.00%> (-16.67%)
:arrow_down:

...e/livy/server/interactive/InteractiveSession.scala
56.97% <0.00%> (-12.80%)
:arrow_down:

...src/main/scala/org/apache/livy/sessions/Kind.scala
66.66% <0.00%> (-9.53%)
:arrow_down:

...la/org/apache/livy/utils/LineBufferedProcess.scala
78.57% <0.00%> (-7.15%)
:arrow_down:

...server/interactive/InteractiveSessionServlet.scala
61.41% <0.00%> (-6.30%)
:arrow_down:

.../scala/org/apache/livy/server/SessionServlet.scala
66.31% <0.00%> (-5.27%)
:arrow_down:

...org/apache/livy/server/recovery/SessionStore.scala
75.00% <0.00%> (-5.00%)
:arrow_down:

... and 12 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@tprelle When the page is refreshed, it needs to load all the sessions, doesn't it? Can it do paging search and only load the session of the current page.

@tprelle When the page is refreshed, it needs to load all the sessions, doesn't it? Can it do paging search and only load the session of the current page？

I don't think it can as the page number would be lost after the refresh. Also the start/end sessions change over time and the content of current page could change when you refresh.


SRT lines should not be limited to 32 characters

In https://github.com/Podcastindex-org/podcast-namespace/blob/main/transcripts/transcripts.md#srt it says Max characters per line: 32.
This should be a best practice, not a requirement.

Are you suggesting that we don't have a max characters per line? Would that make it hard for players to know what to expect?

32 max seems like quite a reasonable hard limit for narrow mobile phone screens, especially since podcast apps are typically viewed in portrait mode. Additional characters over 32 very quickly require noticeably smaller font sizes. 32 is also the hard character limit for Teletext on NTSC (40 characters for PAL), and these numbers are also found in various SRT guidelines, with the wider ones generally being no problem for television which uses a wider aspect ratio. Related issue: #370
Also, consider that the JSON transcript format suffers because it did not specify a limit for segment size. Players really don't know what to expect, and that makes it a less useful format since players don't know how to render it. Related issue: #366

I am suggesting that the 32 character limit should be optional.
It is less relevant for a podcast than for a video since you have more space on the screen.
32 is reallllllly low. As soon as you get @daveajones and Adam talking together you get a stalk overflow. ;-)
Keep also in mind that few characters mean shorter display time. If you talk fast it's going to flicker.
As said in #370 the actual width depends on the characters.
32 should be a goal, not mandatory.

I have just finished listening to a certain podcast episode, and it appears that you are just having trouble figuring out how to split up the lines to fit inside a specified character limit. If that is the case, I can easily help provide guidance on how to write the code. There is no need to change a good standard because of that, and usability guidelines should not be changed because a programmer can't figure out how to output subtitles in the specified format. If you are doing what I think you're doing, and you simply don't want to change the default code, then your lines would be on average 64 characters wide, and that would be disastrous for the people who actually rely on the captions. In theory, the tool you are using has a worst case of upwards of 500 characters per line (in the case where the segment extends to the upper limit of 30 seconds, and the speaker is speaking at 200 wpm). If hypothetically your proposal were the standard, lazy programmers would flock to this approach and the subtitles would be unreadable for the people who genuinely need them. 32 characters is not "really low", unless you have really good eye sight, but these standards are defined for a general population which includes people who rely on subtitles without necessarily having as good eyesight as yourself. Although as I said, I suspect you are justifying the change more because of the programming challenge than for the benefit of the people who need the captions.
As someone who actually reads the podcast subtitles, I am affirming that the character limit is extremely important. I have experimented with increasing the number of characters, and it very quickly does become unreadable on a narrow mobile phone screen. I know this from putting in the effort to write code rendering subtitles of different character limits, and 32 is very reasonable and in line with various other pre-existing standards. For Chinese and Japanese, the standard is typically to use an exact half of that. #370 does not by any means support your case, it actually stresses the importance of character limits even more because in those languages, the character limit needs to be 16 characters. If you want to put a 64 character line or a 500 character line into a subtitle for a 16 character limit language, the readability impact would be much worse. These things also do not scale linearly, so it's not twice as worse, it is exponentially worse (the smaller your font gets, the bigger the readability of each font step).

The photo below illustrates typical line lengths we can expect if we permit arbitrary line lengths (although they can get much worse than even this):

If I hold the phone up to my nose like this, I can just make out the 2 lines of the SRT block. However, I have to strain. Some people have poor stereo vision (lazy eye) that makes it difficult to align both eyes on smaller text, other people may have trouble simply focusing on small things, and others may have astigmatisms. There are various different issues with eyesight but they are all made worse when the text is small. And of course that tool is capable of much wider lines in the worst case, resulting in the text being impossible for anyone to read.
The tool you are planning to use only has an SRT option as a convenience for researchers. It does not conform to any actual standard for SRT in terms of line length as would be necessary on the consumer end, and so it should not be implemented directly in production as is. You need to take the code and actually modify it to meet the requirements for its use. Even if you were to argue for a wider limit, there still needs to be "some" limit to avoid 500 character lines, and thus it is unavoidable that you will have to write some code to make it conform to reasonable limits.
An SRT block is defined to be two lines maximum and the geometry is intended to fit within a certain sized display. The goal here is to fit inside a narrow mobile phone display. If we rotated the screen sideways into landscape mode, that would allow for wider lines, but podcast apps are typically designed for the portrait orientation.

Going to close this since it seems to be settled.

Re-opening this.  Sorry @benjaminbellamy.  There is also linkage to #370

I think the question of whether we should have a character limit at all is settled. We do need one so that apps know what to expect, and what we have is in line with other SRT publishing standards. We can have a discussion about what is the most appropriate character limit for a narrow mobile phone screen, but having "no limit" is not a viable answer.
@benjaminbellamy my offer still stands to provide coding assistance. Changing the spec according to the limitations of a particular transcription tool is probably not wise, particularly when it is possible to fix it through code.
Note that the linked issue #370 was never intended to support the idea that we could "abandon" having a character limit, we definitely need a limit. Rather, the purpose of #370 was to acknowledge that the character limit should be different for languages that use double-width characters. I propose a simple change to the spec in which each double-width character simply counts as 2 normal characters (for character counting purposes). That way, in a multilingual podcast where a single line contains both English and Chinese words, the character counting will still arrive at the correct line width, adjusted for any double-width characters that the line contains.

The way I see the issue is our apps run on so many different devices and screen sizes that it's really difficult to tell what's best in advance. Any app can check the available space at runtime, tweak font size and let automatic word wrap do the job.

Any app can check the available space at runtime, tweak font size and let automatic word wrap do the job.

You need to be careful with that assumption.
First, we are committing an oversight in making this spec English-centric or European-language-centric, first by not recognising that some languages have double-width characters and hence need an adjusted line limit. But second, when it comes to "automatic word wrapping", you are again
. As I pointed out in #370 , the current standard is a bit English-centric and it does consider how international languages work.
Some languages such as Chinese and Japanese do not use any spaces to separate words, and on Android, the TextView widget does not do automatic word wrapping for those languages.
If you take a language like Japanese which does not use spaces between words,
You need to be careful here with line wrapping. The main limitation of the current podcast standard is that it is a bit English-centric, and did not actually consider how this would work for other languages.
Just to be clear, no amount of adaptive UI tweaking will work if we're dealing with 500 character lines. We need to first define the standard so that it is reasonable for
no amount of wrapping and font size tweaking will help if there is no character limit, and we're dealing with 500 character lines.

(I accidentally hit the "send" button before I had finished drafting this comment, so please disregard that if you received the notification.) Anyway - My response:
You need to be careful with that assumption.
First, the main issue with the current transcript spec is that it was a bit too English-centric or European-language-centric, initially by not recognising that some languages have double-width characters and hence need an adjusted line limit. But when it comes to "automatic word wrapping", we also need to try to do this in a way that considers all languages. For example, Japanese and Chinese don't use any spaces to separate words, and the TextView widget in Android does not actually do "automatic" line wrapping in Japanese and Chinese for that reason - there are no spaces that indicate where exactly the line should be wrapped. If your app would rather not concern itself with the extra processing required to parse Japanese and Chinese text so that it can implement its own line wrapping correctly for every language, you can fortunately just render the SRT block the way the SRT publisher rendered it for you, as they will have used appropriate line splitting guidelines for the language in which they're publishing.
Second, the idea that adjusting the font size and line wrapping will always solve the problem in "any" app is not right. Remember that the proposal above was to remove the character limit altogether because the transcript tool @benjaminbellamy is using can produce extremely long lines (100s of characters long). That's just not acceptable for a mobile app, which is the most common device people use for podcast consumption. Even if your app doesn't mind wrapping a 500 character long line all over the entire user interface obscuring whatever is behind it, I think that some apps (e.g. mine) wants to reserve two lines at the bottom for the captions, without obscuring the album and chapter art square at the top, without obscuring the episode title, and without obscuring the playback controls.
The other thing is that it is easier to start with a standard that works for the mobile phone and then use adaptive layout techniques to make it work on a tablet or desktop than it is to go in the reverse direction. For example, if for some reason you really think that on a tablet or desktop users want to see twice as much text at a time, then you could simply show two SRT blocks at a time, concatenating them together. But if you were to change the standard itself so that it were first optimised for that kind of target, you can't reverse the process. That is, you can't split an SRT block and fabricate timestamp at the split point. And the alternative of just freely allowing long lines with no limit is really just going to cause a text overflow or a line wrap that obscures other important parts of the mobile screen in what is a very limited screen real estate.
I would maintain that industry standard of somewhere in the ballpark of 32 to 47 characters per line is also appropriate here. I happen to think 32 is more appropriate given that we're mostly dealing with mobile phones in portrait orientation, and that a feature primarily designed for accessibility reasons should not force the font size to be any smaller for those who are not only hearing impaired but also vision impaired.

Allow me to jump in to show you how people are actually using transcripts/subtitles/closed captions in the real world:
https://www.youtube.com/watch?v=ny7i2Yo9CoU
There are MANY ways to display this kind information and we all need to go out and take a good look at what is happening in the real world.

We can support all the different use cases, but we just need to specify each different transcript file format well enough so that apps can rely on the right file format for the right use case. See #484 for a discussion of the issues and proposal.
But in short, the JSON format "could have" been perfect for the type of use case you linked to, except that it lacks the kind of specificity that SRT enjoys. The specificity of the format is what allows it to be useful: SRT for reading the transcript by line, and JSON (if we were to tighten the spec) for reading by word.

How's this?
"SRT files are for use in simple closed-captions or can be parsed for display on a website. SRT lines should be limited to 32 visible characters, to ensure they are visible on a wide variety of screen sizes without alteration. SRT files are more widely supported than other formats, and are highly recommended."
"JSON files are for use in more advanced circumstances, and contain timing for each word's start and end."
JSON files would be used by Adam's fancy examples. They could also be used by, for example, Hindenburg Journalist Pro to edit audio further (though I doubt that's a use-case we want to promote).
I'd personally like to ensure that SRT is the bare minimum and are supported by all.

I would mostly agree subject to the international considerations in #370 .

Personally, I think the JSON format is the one we should be investing time in improving.

JSON files are for use in more advanced circumstances, and contain timing for each word's start and end.
The beauty of this format is that it can provide as much or as little fidelity as possible. The highest fidelity being 1 word per timestamp, but sometimes its a phrase or a complete sentence dependent on the source of the transcript.

Once you have a transcript in a JSON format, you could transform it into any SRT with any length you want as long as the fidelity is good enough.

I suggest we keep this discussion focused on the particular SRT issue mentioned in the description. We can have different discussions about SRT and JSON happen in parallel, but we're not going to get anywhere fast if we cover lots of different topics in the same thread. Here are other more targeted discussions that touch on the specific points you bring up.

Regarding "The beauty of this format (JSON) is that it can provide as much or as little fidelity as possible", the contrary view is taken in #484 , and your comment would add usefully there. I argue that we actually don't want an unspecified fidelity, and that is what makes the format difficult to use for apps that are based on word timestamps, because it's hard to know whether they can rely on that file "actually" containing word-level fidelity when it is allowed to be arbitrary. I've seen someone put an entire episode into a single segment. I've also seen someone start with what appeared to be word-level timestamps, and then suddenly somewhere in the middle of the transcript there was a segment with 70 words in it. That's not going to go well for a karaoke app that assumes word timestamps. One "benefit" of this format is that makes it easy for the developer of transcript editing software to allow you to edit a section of words without having to do the hard work of re-syncing the new words with their new timestamps. But that's only a short-sighted benefit for the producers that causes problems down the line for consumers of that data.
Regarding the "you could transform (JSON) into any SRT)", this comment would add usefully in the context of #519 because it gives a background on what use cases are enabled by JSON and not SRT -- and vice versa. It is tempting, of course, to think that you can easily derive the equivalent of an SRT from a JSON with a simple word-wrap algorithm, however SRT alllows the publisher to indicate appropriate places for line breaks, which is especially important in music lyrics. Also, when a lot of people think of ideas that at first seem beautiful for their simplicity, they might come from an English speaking background or some other specific language where the convenient properties the idea depends on happen to be present in the particular language THEY'RE familiar with. But then when you consider other languages that have rather different rules on where you are allowed to break lines, you may realise that the software you need to implement the line splitting algorithms for various difficult languages is something more appropriate for a backend server with more RAM.

I know I've said various things above that people might want to respond to, but those are just summaries of what I said in the other issues, and so those discussions could be continued there.

@benjaminbellamy I have since added official support into Whisper for character limits and line limits. To generate a transcript that meets the podcast namespace standard, use the options below:
whisper --output_format srt,vtt --word_timestamps True --max_line_width 32 --max_line_count 2 episode.mp3

Note that I have not added support for the unique rules of Japanese and some other languages because the Whisper code base is not intended to have such complexity in it. If you are building your own server side transcription service (as I am doing), you will want to add more complicated code to handle some of these more complex languages. However, the way it currently works should still meet the 32 character limit and the 2 line count limit, it's just that it may split lines in places that Japanese people might not expect lines to be split. The official releases still lag behind git, so for now you'll need to download the git version of Whisper.
Given that we don't want to have arbitrary fidelity in SRT files (e.g. we don't want 10,000 character lines to be allowed), we need some limit. Whatever that limit is, even if you were to want a different limit, I believe that you now have the command line option that you were originally seeking, and this hopefully resolves the issue for you.

I think this issue can be closed.


Allow basic filtering in overviews queries

Currently when (vector) overviews exist for a table, they're used in the query passed to Mapnik only if the original query is of a very simple form not having a WHERE clause.
Allow the queries to have a simple (no joins, subselections, etc.) WHERE clause and apply it to the query passed to the tiler.

as per jgoizueta: superseeded by the ticket about widgets, closing this


feat(plugin): support Prometheus Scrape Metrics (#355) and Prometheus…

… Remote Write plugins(#348)
Signed-off-by: tl<EMAIL_ADDRESS>
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #348 and  #355
Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

And we need to add unit tests like this:
https://github.com/fluent/fluent-operator/tree/master/apis/fluentbit/v1alpha2/plugins/output
https://github.com/fluent/fluent-operator/blob/master/apis/fluentbit/v1alpha2/clusteroutput_types_test.go


New by: :traffic_source option for reports

Before this commit, reports were always returning day-by-day data
(e.g. views were returned as {Thu => 10.0, Wed => 11.0, ...}).
After this commit, two channel reports (views, estimated_minutes_watched)
and one video report (views) can also return data by traffic source.
For instance, you can now run:
channel.views since: 7.days.ago, by: :traffic_source

and it would return something like:
{advertising: 10.0, related_video: 20.0, promoted: 5.0, subscriber: 1.0, channel: 3.0, other: 7.0}

@brettu @stavro This is the first step for better reports!

Awesome. :+1:


[Storage] Change policy ordering to after retry async v3

This time targeting storage-stg96 to not interfere with upcoming things releasing in main

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-storage-blob


pull request for e2e test at 01/22/2017 14:26:13

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Test changes to TSan build system

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves #NNNNN, fix apple/llvm-project#MMMMM.

Please test with following pull request:
https://github.com/apple/llvm-project/pull/5525
@swift-ci Please smoke test

Linux builds is able to build compiler-rt, and fails for the issue that will be addressed by #61818


Add Tensor functions to juliamind.tensor.tensor

Please create a new issue with each of the subtasks and comment "- [ ] #issue_number" to keep the task list updated.

Define the basic tensor class :p

taking this up


[Feature request] Search box

Search box
Description
It seems that Search Box doesn't be supported in vuepress-next, I can't find it the doc and readme.
Solution
Support Search box

The built-in search feature of vuepress v1 will be extracted into a standalone plugin.

The built-in search feature of vuepress v1 will be extracted into a standalone plugin.

But there isn't have a document of docsearch plugin /sad-face

But there isn't have a document of docsearch plugin /sad-face

@Hooper93 On the way. You can checkout the setup of our docs for now.
https://github.com/vuepress/vuepress-next/blob/e552dec8e107b66196515c8245b5385de85e3dc3/docs/.vuepress/config.ts#L91-L105

@Hooper93 On the way. You can checkout the setup of our docs for now.
https://github.com/vuepress/vuepress-next/blob/e552dec8e107b66196515c8245b5385de85e3dc3/docs/.vuepress/config.ts#L91-L105

The documentation of docsearch plugin is available now:
https://vuepress.github.io/reference/plugin/docsearch.html

The documentation of docsearch plugin is available now:
https://vuepress.github.io/reference/plugin/docsearch.html

Any chance there is an option that doesn't require letting a third-party scrape our documentation?


Endpoints integration

Is your feature request related to a problem? Please describe.
IntelliJ and WebStorm have a plugin in the ultimate version called Microservices. It basically shows off all the routes that are present in your project. It looks like this for Express projects:

It would be cool to have this for Nest.js as well.
Describe the solution you'd like
I've already implemented the code required for this in my own unpublished plugin, and I'm opening this issue to ask if the maintainers of this repository would be interested in integrating it in to this plugin instead of me publishing it on my own.
Describe alternatives you've considered
I have the code for it written, and I could publish it myself, but I don't want to have to mess around with the actual publishing part. If the answer is no, and you wouldn't be interested in integrating this functionality in this repository, that's fine, I can publish it on my own. Just figure it would be better to have an all-in-one Nest.js plugin instead of multiple.
Additional context
No response

Bump


[Suggestion] Add recipe to upgrade existing Farming Stations to AgriCraft-compatible one

It would be good if exiring Farming Stations can be upgraded somehow to support Agricraft seeds. It's important because there would be a scenario when someone makes a farm system with normal EIO Farming Stations (as EIO ones can harvest crops too, even if they're not too smart in this term), and when there's enough resource wants to replace them with EIOA ones but without wasting original ones.

This will be in the next version.

@HenryLoenwind cool, thanks!


Feature alchemy

Coverage decreased (-0.09%) to 94.7% when pulling 1823f13991bd5f5a75a90c4e9ec9dea1b558835f on feature-alchemy into 27311e49f28b7dd1c891ad4f63e9fc2378a36013 on master.


DRAFT: support scheduler compaction validation

closes #96
this patch adds the ability to validate compaction request. Now the compaction scheduler should be able to assets if a compaction request is valid or invalid. This is a first draft commit with the intention of confirming the logic and approach used to perform such validation.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@brayanjuls Checking in: any help needed on this?

@brayanjuls Checking in: any help needed on this?

I am waiting for some feedback after changing the code given the previous comments from Rohan and Vignesh. I asked for feedback on thread about this PR on discord as well.


Bug / Crosspost... YAML linting...

FYI, the Linter plugin chokes on your YAML formatting. I've reported it there, crossposting it here FYI.
https://github.com/platers/obsidian-linter/issues/467

The YAML is technically valid, and this is being looked at in https://github.com/platers/obsidian-linter/issues/467, so I am going to close this issue.


Question toward configurations for LoRA and QLoRA

Hi,
Thanks for this great work!
I am a bit confused about what configurations correspond to LoRA and QLoRA, respectively. For example,
# Load Llama model
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/mistral-7b-bnb-4bit", # Supports Llama, Mistral - replace this!
    max_seq_length = max_seq_length,
    dtype = None,
    load_in_4bit = True,
)

Whether load_in_4bit = True means QLoRA and load_in_4bit = False refers to LoRA?
Do we also need to change the model_name from  unsloth/mistral-7b-bnb-4bit to unsloth/mistral-7b?
Thanks!

@verazuo Correct - QLoRA is load_in_4bit = True and LoRA is load_in_4bit = False. No need on the model name changes - I handle that automatically - ie I will switch - you can change the name if you want!
Also any model name from the Huggingface Hub works, and it'll error out if we don't support it!

Thanks a lot! One more question, what is the difference between unsloth/llama-2-7b and the original LLaMA2 (meta-llama/Llama-2-7b-hf)?

@verazuo No difference! I just made it so it's not necessary for a token :)

Thanks!


Also document PAYPAL_PASSWORD required setting

Thanks. Merged upstream, but in the future please open pull requests at https://github.com/stephenmcd/cartridge (this is a personal fork).


Add support to identify which bluetooth adapter to use

This is a work in progress to enable the user to use an external Bluetooth adapter in lieu of the builtin Bluetooth.

@scottleibrand, I believe this one is ready.

Just to confirm: this maintains the current behavior unless the preference string is added?
Looks like there's also a merge conflict now.

@scottleibrand, yes, this preserves the current behavior that defaults to hci0 unless the preference string is added (I just re-verified on one of my rigs).

The merge conflicts are corrected.

Not sure why we're getting a Travis failure.  I'll try closing and reopening the PR to force it to try again.  The failure was:
not ok 189 IOB should calculate IOB without counting time pump suspended in middle of basal
  AssertionError: expected -0.01 to be 0.235
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value (node_modules/should/cjs/should.js:356:19)
      at Context.<anonymous> (tests/iob.test.js:973:38)


Amazon Mobile Hub - Custom authentication in Django

So l  have Django Back-end hosted on Heroku which uses Django Rest Framework. I have configured and installed Amazon Mobile Hub and works really well. I am able to log in with Facebook and Google+. I would like to use Django's User Authentication with AWS Cognito Developer Authentication. So that l can authenticate users using the android app and still have access to Amazon resources such S3, Push Notification etc.
I have looked at this example, how do l translate this to work with Django Back-end? Do you have support for Django?

Dang, I'm looking for this too.
@flexpeace did you figured out how to authenticate into Django with Cognito?

+1

mee too


Reduce Riot-Router size

Use babel loose mode on webpack:
{test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader', query: {loose:["es6.classes", "es6.properties.computed"]}},


Ability to add your own colors?

hey, you can provide your own initial color, the rest of them will be generated automatically (analogous and complementary):
const generateMeshGradient = (
  length: number,
  baseColor?: string,
  hash?: number
) => {
  const [bgColor, bgImage] = genStops(
    length,
    hexToHSL(baseColor) ? hexToHSL(baseColor) : undefined,
    hash ? hash : undefined
  );
  return `background-color: ${bgColor}; background-image:${bgImage}`;
};

usage:
generateMeshGradient(6, #088F8F);

What if you want to provide all the colors it should use?

Yeah I'm also looking for a mesh generator but with my own preset colors. But I might fork this and make the adjustments myself. Probably do aim to do something like this:
  generateMeshGradient(6, [
    '#ff0000',
    '#00ff00',
    '#0000ff',
    '#ffff00',
    '#ff00ff',
    '#00ffff',
  ]);

Will report back if I make progress.

What if you want to provide all the colors it should use?

make the PR?


Version on pypi is still 0.3.3

The Pypi website (https://pypi.org/project/mkdocs-ezlinked-plugin/) shows version 0.3.3 (without #1 fixed), but this repository shows 0.3.4 (with #1 fixed). Is it related to https://github.com/Lisandra-dev/mkdocs-ezlinked-plugin/blob/d56ee44e9bfac99f10cbec9552a1a42778bfd29a/setup.py#L6, which is still on 0.3.3?

Direct installing v0.3.4 results in 0.3.3 being installed:
$ poetry add https://github.com/Mara-Li/mkdocs-ezlinked-plugin/archive/refs/tags/v0.3.4.tar.gz

Updating dependencies
Resolving dependencies... (5.3s)

Package operations: 2 installs, 0 updates, 0 removals

  - Installing pygtrie (2.5.0)
  - Installing mkdocs-ezlinked-plugin (0.3.3 https://github.com/Mara-Li/mkdocs-ezlinked-plugin/archive/refs/tags/v0.3.4.tar.gz)

Writing lock file

$ poetry show mkdocs-ezlinked-plugin
 name         : mkdocs-ezlinked-plugin
 version      : 0.3.3
 description  : A mkdocs plugin that makes linking to other documents easy.

dependencies
 - mkdocs *
 - pygtrie ==2.*

Hello,
use mkdocs-obsidian-links instead


Change description of the mobilityDCAT-AP repository and organisation

To be changed:

Add README to the organisation with link to the specification and relevant documents
Specify it is not only for NAPs
Change the link in the repo now pointing to NAPCORE news?

Are your proposals related to the GitHub repository, or to the ReSpec page? Please specify which sections need an update.

The issue is related to the GitHub organisation and repository. I'm referring to the metadata in the repository:

And the homepage of the organisation that can be also further customised with a README.
https://docs.github.com/en/organizations/collaborating-with-groups-in-organizations/customizing-your-organizations-profile#organization-profile-readmes

Done


Azure MXChip IoT DevKit Get Started dead link in Next Steps

Link to article:
https://docs.microsoft.com/en-us/samples/azure-samples/mxchip-iot-devkit-get-started/sample/
Problem:
In the very bottom of the article, the first link in the "Next Steps" section leads to 404.
Connect IoT DevKit to your Azure IoT Central application
https://docs.microsoft.com/en-us/azure/iot-central/howto-connect-devkit

@dominicbetts can you take a look at this?

@alparamonov - thanks for reporting this.
I fixed an error in the redirect file: https://github.com/MicrosoftDocs/azure-docs-pr/pull/100165
As soon as the PR is merged the link will be working again.
FYI, the correct link is: https://docs.microsoft.com/azure/iot-central/core/howto-connect-devkit/

#please-close


Compare Against Installed Versions

Currently we just compare the version numbers in the composer.json file. We should compare with the lock file to see what versions that already are installed.

lock file or maybe vendor/composer/installed.json?

Yeah, either that or the composer.lock file.

Done in #11


Collections of case classes sharing a base class trigger Serializable/Product wart

This one is expected:
scala> case class A1(); case class A2(); List(A1(), A2())
defined class A1
defined class A2
res0: List[Product with Serializable] = List(A1(), A2())

However:
scala> trait A; case class A1() extends A; case class A2() extends A; List(A1(), A2())
defined trait A
defined class A1
defined class A2
res4: List[Product with Serializable with A] = List(A1(), A2())
                                     ^^^^^^

Maybe the latter should not trigger the wart?

Any word on whether this might be addressed? I would think that at least when it's the return value of an explicitly annotated method it would be OK not to trigger the wart, same with when you assign to an annotated val.
E.g.
trait A
object A {
  def sillyListMethod: List[A] = List(A1(), A2())
  val sillyListVal: List[A] = List(A1(), A2())
}
case class A1() extends A
case class A2() extends A


CurrentTraceContext.context()t is null in downstream

I have a code like this and injected CurrentTraceContext from Micrometer Tracing:
        dataSourceClient.retrieveCount(categoryConfig.getCountEndpoint()) <-- this invokes WebClient from Reactor
                .map(CountResponseDTO::getTotalSize) <- here currentTraceContext.context() exists
                .flatMap(count -> createIndex(config, timestamp, count) <- starting from here it returns a `null`
                        .map(indexName -> SyncContext.builder()
                                .config(config)
                               .build()))
                .flatMap(this::publishMessages)
                .flatMap(this::doSomethingElse)
                .subscribe();

Config and dependencies:
@Configuration
public class TracingConfig {

    @Bean
    public CurrentTraceContext currentTraceContext(brave.propagation.CurrentTraceContext currentTraceContext) {
        return new BraveCurrentTraceContext(currentTraceContext);
    }

    @Bean
    public Tracer tracer(CurrentTraceContext currentTraceContext, Tracing tracing) {
        brave.Tracer braveTracer = tracing.tracer();
        BraveTracer braveTracer1 = new BraveTracer(braveTracer, currentTraceContext, new BraveBaggageManager());
        ContextRegistry.getInstance().registerThreadLocalAccessor(new ObservationAwareSpanThreadLocalAccessor(braveTracer1));
        return braveTracer1;
    }

}

       <dependency>
                <groupId>io.projectreactor</groupId>
                <artifactId>reactor-bom</artifactId>
                <version>2022.0.8</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.projectreactor</groupId>
                <artifactId>reactor-core-micrometer</artifactId>
                <version>1.0.7</version>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-tracing-bom</artifactId>
                <version>1.1.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-tracing-bridge-brave</artifactId>
                <version>1.1.2</version>
            </dependency>

We use Spring Boot 3.1.1 with Reactor framework.
Any idea why currentTraceContext.context() is null in the first flatMap operator?
From what I can see on debug the Observation is closed after first http call, but I don't know if this is normal behaviour and I should still expect context available.
Thanks for help!

cc @chemicL

Please share the code which invokes webClient to see which API methods are in use.

 Mono<CountResponseDTO> retrieveCount(Endpoint countEndpoint) {
        return webClient.method(countEndpoint.getMethod())
                .uri(countEndpoint.getPath())
                .retrieve()
                .bodyToMono(CountResponseDTO.class)
                .onErrorResume(WebClientErrorsUtils::handleError)
                .retryWhen(Retry.backoff(MAX_RETRIES, Duration.ofSeconds(1)));
    }

Thank you. And what does createIndex do? Is the context non-null in the flatMap before calling this method and null after createIndex resumes?

FullSyncService:
private Mono<String> createIndex(Config config, String timestamp, Long count) {
        final var metadata = Index.Metadata.builder()
                .count(count)
                .traceId(tracer.currentTraceContext().context().traceId()) <-- NPE here
                .build();
        return indexService.createIndex(config.getName(), timestamp, metadata);

IndexService:
Mono<String> createIndex(String categoryName, String suffix, Index.Metadata metadata) {
      var indexName = getIndexName(categoryName, suffix);
      final Map<String, Object> mapping = new HashMap<>();
      mapping.put("_meta", metadata);
      return indexDAO.createIndex(indexName, mapping)
              .thenReturn(indexName);
  }

IndexDao:
Mono<Void> createIndex(String indexName, Map<String, Object> mapping) {
        return reactiveIndicesClient.createIndex(indexName, mapping).then();
    }

ReactiveIndicesClient:
public Mono<CreateIndexResponse> createIndex(String indexName, byte[] indexConfig, Map<String, Object> meta) {

    return Mono.fromSupplier(() -> {
        final var requestBuilder = new CreateIndexRequest.Builder();
        requestBuilder.index(indexName);
        ...
        return requestBuilder.build();
    })
            .flatMap(request -> Mono.fromFuture(indicesClient.create(request)))
            .subscribeOn(scheduler); <-- new BoundedElastic scheduler
}

indicesClient from above is from elasticsearch-java:7.17.10 which uses Apache httpasyncclient:4.1.5 and that might be a problem, because it's not instrumented by default. Right?
Previously we used TracingHttpAsyncClientBuilder  from brave-instrumentation-httpasyncclient.
Are there any alternatives or do we need to instrument this manually using some HTTP interceptors or something?

That's what I expected :) I see two options:

consider Spring Data ElasticSearch (ReactiveElasticsearchClient)

change the below code in ReactiveIndicesClient#createIndex:
  // Mono.fromFuture(indicesClient.create(request)) ->
  Mono.fromFuture(indicesClient.create(request)).contextWrite(Function.identity())

Actually the context is null right before calling a createIndex so it changed nothing I'm afraid.

Please try creating an isolated reproducer, free of external dependencies: just WebClient, skip the call to the elasticsearch client - replace it with e.g. Mono.just(dummy) and we can analyze it.

That's exactly what I'm planning to do. Thanks.

I was able to reproduce this problem in example app.
https://github.com/maxio89/demo-tracing/blob/master/src/main/java/com/example/demo/ExampleController.java

@RestController
@RequestMapping("/tracing")
public class ExampleController {

	@Autowired
	CurrentTraceContext context;
	@Autowired
	WebClient webClient;

	@GetMapping("/webclient")
	public Mono<Void> getWebclient() {
		return Mono.just(1)
				.doOnSuccess(a -> WebClient.create().get()
						.uri("https://httpbin.org/get")
						.retrieve()
						.bodyToMono(String.class)
						.doOnNext(next -> {
            /* context is null here --> */            System.out.println(context.context());
						})
						.subscribe())
				.then();
	}

}

So the problem is related with the thing we do subscribing to another stream.
We have a nested streams and the context stopped propagating after migration from Sleuth to Micrometer Tracing.
Adding                 .contextWrite(Context.of(TraceContext.class, currentTraceContext.context())) on inner stream doesn't change anything.

Two issues @maxio89 in your implementation:

WebClient.create() -> this should be replaced to use the injected webClient instance and not create a new, bare one.
The fact you're creating an unattached Publisher, to which you manually subscribe and abandon the reference -> This chain has no Context attached, meaning you can't expect the trace context to be present.

Does that fix the issue you're observing?

Two issues @maxio89 in your implementation:

WebClient.create() -> this should be replaced to use the injected webClient instance and not create a new, bare one.
The fact you're creating an unattached Publisher, to which you manually subscribe and abandon the reference -> This chain has no Context attached, meaning you can't expect the trace context to be present. I'm not sure about the mechanics here, but do you have a ThreadLocalAccessor for TraceContext.class ? If not, then I wouldn't expect anything to be propagated even if you add the contextWrite. AFAIR (and @marcingrzejszczak can correct me) the trace context is just a derivative of an Observation being in scope.

Does that fix the issue you're observing?

Yeah, you right, but it doesn't change anything.
Do you mean adding something like this ContextRegistry.getInstance().registerThreadLocalAccessor(new ObservationAwareSpanThreadLocalAccessor(braveTracer));?

I updated my examples. It's even worse, because context is null at the beginning of controller method.

Your code still has a few minor issues, but consider the following changes:
return Mono.just(1)
				.flatMap(a -> webClient.get() // <1>
						.uri("http://www.google.pl/")
						.retrieve()
						.bodyToMono(String.class)
						.doOnNext(next -> {
							/* context is null here -> */ System.out.println(context.context());
						})) // <2>
				   .then();

flatMap instead of doOnNext
no subscribe() - as mentioned, this disconnects the chain from the one that has an Observation attached!

The subscribe() was there, because we wanted to return response to the client immediately and then run some background logic asynchronously.

@maxio89 I suppose the best place to ask questions is the Micrometer Slack.


Update documentation to reflect k-NN FAISS AVX512 support

Description
This change updates the documentation to reflect AVX512 hardware accelerator support that was added to speed up vector search and indexing. The k-NN index and settings pages under k-NN search are updated in this change.
Issues Resolved
Closes #8306
Version
2.18
Related to the PR: https://github.com/opensearch-project/k-NN/pull/2110
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@akashsha1

@naveentatikonda - public documentation for AVX512 PR

@noahstaveley Could you please resolve DCO? Also, is this for versions 2.16 and above or for the next version (2.18)?

@akashsha1 @noahstaveley I will try to review this PR by EOD. Thanks!

@noahstaveley Could you please resolve DCO? Also, is this for versions 2.16 and above or for the next version (2.18)?

DCO is resolved. This is for version 2.18 only, I updated the PR to reflect that. Thanks for confirming

@noahstaveley Why are we seeing so many commits included in this PR. Can you rebase this PR again ?

@noahstaveley Why are we seeing so many commits included in this PR. Can you rebase this PR again ?

@naveentatikonda  Yes sorry about that, I rebased and removed the unrelated commits.

@noahstaveley Thanks for raising this PR. @kolchfa-aws can you please review it. Thanks!


Tiles not centered

Discussed in https://github.com/rocksdanister/weather/discussions/33

Originally posted by xCloudx091 November  7, 2023
Hello there,
if been using your Software for a while now and wanna say thx for all the amazing things you create.
But now with this Weather App I gotta ask... did you create it just to make me suffer? xD Ever since I adjusted the Window size just a tiny bit, the info boxes where never centered ever again. The space left and right are specially the things that drive me nuts xD
Had to get it out there, Iam still thankfull for this app and anything else you create. Gonna attache a Screenshot of this madness.

@xCloudx091 Thanks for the report, this will be fixed next update 😅


Recorded Video Changing the video quality bitrate

Hi @pedroSG94
I have recorded video as 720p. I would like to reduce the bitrate into 480p. Is there any way to modify the video and make it new video file with expected pixel in this library?

Hello,
If you are asking about change the resolution on fly. No, you can't do it.
If you start with 720p of resolution you will need stop the record, change video configuration and record again other video.
You can reduce the bitrate but no the resolution.

Hi @pedroSG94 can you help me to achieve reducing video file size from input file path by changing width, height and bitrate with native API?


.ui.buttons affect all nested button elements

The .ui.buttons affect all the nested button elements, although it should affect only the first level children with class "ui button".
Thank you for a great framework!

@max-payne-7 : kindly use this jsFiddle to create a test case.
For anything else, just ping us on Gitter
Closing this for now, if you have any serious question.. just ask 😃


Boolean values: handle numeric 0 and 1

Coverage remained the same at 100.0% when pulling 41570cc3801caf156fed5804c36f1bb4120fb361 on rundef:master into 24da883c0038427338a2cdc2de69331fd9eac98b on SSENSE:master.

Coverage remained the same at 100.0% when pulling 1133dbd1aa6c89d219ad66c7298d7bde24324a0d on rundef:master into 24da883c0038427338a2cdc2de69331fd9eac98b on SSENSE:master.

Coverage remained the same at 100.0% when pulling 1133dbd1aa6c89d219ad66c7298d7bde24324a0d on rundef:master into 24da883c0038427338a2cdc2de69331fd9eac98b on SSENSE:master.


conditionally import reflect-metadata and fix run without debug

Conditionally import reflect-metadata (fixes #432)

Once within the extension
Once within the debugger
Once within the unittests

Fully qualify the path module (fixes #454)

@brettcannon changes ready, with bumped version number.


rename files to follow facebook's conventions in jest-cli package

Summary
File names in jest-cli package renamed to follow Facebook's file name conventions as described in https://github.com/facebook/jest/issues/4969

Test plan
Running tests after cleaning build folder (leftovers from older builds might give us false positive).
Running yarn run build-clean followed by yarn jest gave a result of all tests passed.

Codecov Report

Merging #6553 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master    #6553   +/-   ##
=======================================
  Coverage   63.83%   63.83%
=======================================
  Files         234      234
  Lines        8797     8797
  Branches        3        4    +1
=======================================
  Hits         5616     5616
  Misses       3180     3180
  Partials        1        1

Impacted Files
Coverage Δ

packages/jest-cli/src/SearchSource.js
45.13% <ø> (ø)

packages/jest-cli/src/TestNamePatternPrompt.js
44.44% <ø> (ø)

packages/jest-cli/src/reporters/base_reporter.js
100% <ø> (ø)
:arrow_up:

packages/jest-cli/src/testResultHelpers.js
9.37% <ø> (ø)

packages/jest-cli/src/collectHandles.js
0% <ø> (ø)

packages/jest-cli/src/plugins/test_path_pattern.js
100% <ø> (ø)
:arrow_up:

packages/jest-cli/src/TestWatcher.js
83.33% <ø> (ø)

packages/jest-cli/src/reporters/coverage_worker.js
50% <ø> (ø)
:arrow_up:

packages/jest-cli/src/watch.js
79.02% <ø> (ø)
:arrow_up:

packages/jest-cli/src/preRunMessage.js
83.33% <ø> (ø)

... and 22 more

Continue to review full report at Codecov.

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

I see that this PR has conflicts. Should I rebase my changes on top of master or should I merged master into my branch?

Rebase would be best 🙂

Rebased

This is a conflict magnet, so merging


tzdata not present in alpine image used in NPM

the tzdata package is required to activate the time zone selected in the TZ environment variable
I installed the tzdata package in the container with the newest version, and after that the time zone was enabled

Images have been rebuilt (latest, 2, 2.1.1), just pull again and the package will be there.