[$250]  IOU - The number of requests in IOU comment increases by one after paying IOU

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to staging.new.expensify.com
Have User A request money two times from User B
As User B, go to the IOU and select Pay elsewhere

Expected Result:
The number of requests does not change
Actual Result:
The number of requests changes from two to three. The behaviour we are seeing is that a paid message is considered as a request.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/80096e2b-9fe7-45cc-aa0d-8b84a40bb3a8
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team / @tymatein
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~018f16a485984ea234
Upwork Job ID:<PHONE_NUMBER>961791488
Last Price Increase: 2023-08-23

Originally reported by https://expensify.slack.com/archives/C049HHMV9SM/p1691614025611059

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01baf1de6864df6df3

Yep, can reproduce this!

BE issue. The created report has the same childMoneyRequestCount value as childCommenterCount.

Proposal
Please re-state the problem that we are trying to solve in this issue.
The number of requests in IOU comment increases by one after paying IOU
What is the root cause of that problem?
In payMoneyRequest we are calling which is calling getPayMoneyRequestParams and it is calling updateReportPreview
Here we are increasing childMoneyRequest to +1
https://github.com/Expensify/App/blob/a03a21d25832760cf9db4235b0fbc88cc08bd490/src/libs/ReportUtils.js#L1908
The same issue is also happening in the backend where PayMoneyRequestWithWallet or PayMoneyRequest requests are increasing childMoneyRequest count
What changes do you think we should make in order to solve the problem?
We should remove +1 here
https://github.com/Expensify/App/blob/a03a21d25832760cf9db4235b0fbc88cc08bd490/src/libs/ReportUtils.js#L1908
And also fix it from backend
What alternative solutions did you explore? (Optional)

Will review this today.

I think we should first fix this from backend, and then take a look at this issue.
Tagging an internal engineer here.
🎀 👀 🎀 C+ reviewed.

Yeah this does look like a backend issue. Reaching out internally for somebody who my have worked on this recently.

No response. I'll take a look at this in a bit

Not overdue! @arosiclair as a heads up, I'm at a conference this week - if you need payments sorted, please feel free to reassign another B0 team member.

Made Auth PR with a fix

Okay got it. Thanks for clarifying.

done

We need to pay reporting bonus to @tymatein

@mountiny Thanks for thinking of me.
BTW is it enough to fix the BE only? I would expect a glitch in the UI before the response from the server is returned. But I haven't tested it.

I am waiting to confirm, but the latest main has dropped the X Requests copy for the iou preview

@tymatein can you:

Apply for the job here? https://www.upwork.com/jobs/~018f16a485984ea234 (I can't seem to invite you)
Add your Upworks name to your GH? Thanks!

@jliexpensify Thanks, done.

Paid, job closed!


NoSuchMethodError on Android

I'm getting this error when running on my android compose multiplatform app (Android and iOS support)
java.lang.NoSuchMethodError: No static method readResourceBytes(Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; in class Lorg/jetbrains/compose/resources/ResourceReader_androidKt; or its super classes (declaration of 'org.jetbrains.compose.resources.ResourceReader_androidKt' appears in /data/app/~~2kUBRrt_cmjg-QaHysMpvA==/pt.tiagocarvalho.truelevelpadel-FI-IpVVTTjPgw6LcLnqYNQ==/base.apk!classes20.dex)
kotlin = "2.0.0-RC3"
coil = "3.0.0-alpha06"
compose = "1.6.7"
compose-plugin = "1.6.10-rc01"
kottie = "1.8.3"
 val composition = rememberKottieComposition(
            spec = KottieCompositionSpec.File("files/celebrate.json"),
        )

        val animationState by animateKottieCompositionAsState(
            composition = composition,
            iterations = 1,
        )

Managed to get it to work with:
var compositionSpec by remember { mutableStateOf<KottieCompositionSpec?>(null) }
        LaunchedEffect("spec") {
            val jsonFile = Res.readBytes("files/celebrate.json").decodeToString()
            compositionSpec = KottieCompositionSpec.JsonString(jsonFile)
        }

        val composition = compositionSpec?.let {
            rememberKottieComposition(
                spec = it,
            )
        }

thanks @tiago-carvalho-deltatre, I've fixed it and released a new version 1.8.4. You can use KottieCompositionSpec.File("files/celebrate.json")

@ismai117 I'm seeing the same problem on Desktop (Multiplatform) and I'm already on 1.8.5 which doesn't help.
Kotlin: 1.9.24
Compose Multiplatform: 1.6.10

@ismai117 I'm seeing the same problem on Desktop (Multiplatform) and I'm already on 1.8.5 which doesn't help.
Kotlin: 1.9.24 Compose Multiplatform: 1.6.10

In Compose 1.6.10, JetBrains has changed the readResourceBytes method signature.
need to recompile with the latest version of Compose.

@vickyleu
I've released a new version 1.8.6. Res.readBytes has been removed from the library module so you now have the option to do it yourself.
var animation by remember { mutableStateOf("") }

LaunchedEffect(Unit){
    animation = Res.readBytes("files/animation.json").decodeToString()
}

val composition = rememberKottieComposition(
    spec = KottieCompositionSpec.File(animation) // Or KottieCompositionSpec.Url || KottieCompositionSpec.JsonString
)


Add wrapper method to fix issue #856

Hiya, can we expedite this fix? It is affecting users of the micro:bit ecosystem.
I applied it locally and it ran fine, it seems your CI build is broken.

Thanks @thegecko :smile:

Yup, CI has borked again. Package updates between builds do that.

@thegecko Would it be possible to do a pip deploy?

@thegecko What's the best way to assist? I don't know how to repro the error locally, I tried to run the test but am not encountering the same error as the CI...


Error with multiple routes

We have to change this method. It is overriding routes when we have endpoints like this.
PATCH /v1/:id
POST /v1/:id

const paths = Object.keys(singleton.paths).reduce((acum, item) => (
{ ...acum, [formatPath(item)]: singleton.paths[item] }
), {});

https://github.com/guidesmiths/swagger-endpoint-validator/blob/master/index.js#L30

As I talked with @inigomarquinez. We could not reproduce this issue again so I'll label it as needs investigation.

V2 closes this.


Unable to install on Windows 10

I ran:
cargo install --force unfuck

And get the following:
error: failed to run custom build command for python27-sys v0.5.2
Caused by:
process didn't exit successfully: C:\Users\Owner\AppData\Local\Temp\cargo-installjv6TdT\release\build\python27-sys-3402b30bc412a50e\build-script-build (exit code: 101)
--- stderr
thread 'main' panicked at 'called Result::unwrap() on an Err value: "No python interpreter found of version 2.7"', C:\Users\Owner.cargo\registry\src\github.com-1ecc6299db9ec823\python27-sys-0.5.2\build.rs:453:65
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile unfuck v0.3.0, intermediate artifacts can be found at
Does Python 2.7 need to be in your path even to install it through cargo? I saw that listed in the building section, but wasn't sure if you needed it simply to install it too.
In addition, does it matter how its added to your path? For example, I have Python 3.7, 3.8, 3.9, and 3.10 installed currently. I call 3.10 with just Python, but 3.9 with python3.9. Would having Python 2.7 added to my path as python2.7 mess up the functionality?

Update: I installed Python 2.7.0 into C:\Python27, but still no go.

Very ironic that I found this issue by searching for this error message while trying to install my own program... a year late. My apologies.
For some reason the cpython crate looks for a python2 binary. If you rename C:\Python27\python.exe to python2.exe, it should work fine. I'll try to look for a better solution, but I think it may be a bug on their end.

Hi,
I changed my python.exe to python2.exe, and no longer get errors about that. However, I do get this, both when installing through cargo and when building from source.
  running: "gcc.exe" "-O3" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "bzip2-1.0.8" "-D_WIN32" "-DBZ_EXPORT" "-D_FILE_OFFSET_BITS=64" "-DBZ_NO_STDIO" "-o" "C:\\Users\\quin\\AppData\\Local\\Temp\\cargo-installlF8aoO\\release\\build\\bzip2-sys-a5274473e6494676\\out\\lib\\bzip2-1.0.8/blocksort.o" "-c" "bzip2-1.0.8/blocksort.c"
  cargo:warning=In file included from bzip2-1.0.8/blocksort.c:22:
  cargo:warning=bzip2-1.0.8/bzlib_private.h:25:10: fatal error: stdlib.h: No such file or directory
  cargo:warning= #include <stdlib.h>
  cargo:warning=          ^~~~~~~~~~
  cargo:warning=compilation terminated.
  exit code: 1

  --- stderr

  error occurred: Command "gcc.exe" "-O3" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "bzip2-1.0.8" "-D_WIN32" "-DBZ_EXPORT" "-D_FILE_OFFSET_BITS=64" "-DBZ_NO_STDIO" "-o" "C:\\Users\\quin\\AppData\\Local\\Temp\\cargo-installlF8aoO\\release\\build\\bzip2-sys-a5274473e6494676\\out\\lib\\bzip2-1.0.8/blocksort.o" "-c" "bzip2-1.0.8/blocksort.c" with args "gcc.exe" did not execute successfully (status code exit code: 1).

warning: build failed, waiting for other jobs to finish...
error: failed to compile `unfuck v0.3.0`, intermediate artifacts can be found at `C:\Users\quin\AppData\Local\Temp\cargo-installlF8aoO`

Couldn't find... stdlib.h? What? Checking my mingw installation, it's most certainly there, and I can execute something like:
#include <stdlib.h>

int main(int argc, char* argv[]) {
	return EXIT_SUCCESS;
}

without issue. Any ideas?
Thanks!

Do you have the Microsoft C/C++ SDK installed? I'm not sure why it'd be reaching out gcc otherwise.
Regardless, I see that bzip is required by the zip dependency which is remnants from some testing I was doing. Can you try removing the zip dependency in the Cargo.toml file and try compiling again?


Larvel 7.x support - Should I?

If I understand everything right, you don't support newer versions of Laravel yet?
Should I re-think using MongoDB as my primary database and aim for Postgres instead?
I'm currently on Laravel 7.3 and was thinking about MongoDB but without laravel-mongodb support, I'm not sure anymore. Why isn't it any support for newer Larvel versions out yet and when can we see this coming?

Please have a look at this link: https://github.com/jenssegers/laravel-mongodb/issues/1974

@nahojj, you can try ti use development branch for support laravel 7

Thanks, Is the development branch really "safe" in that case so we can use it in production or is it like more just to have a quick fix for the Laravel 7 support locally until it's finished?
Have we any clue when this should be in place? I mean, is it close so we're talking about waiting 1-3 weeks or is it further away until we have dev to production?

This solution can has potencial bugs, please report about them
We have plans to start work on new release soon

Thanks.


Update cluster-api to v1.4.2

Description of changes
This involved updating controller-runtime as well, which required updating rufio and eks-a curated packages.
There were some breaking changes in curated packages, hence all those updates.
@a-cool-train @ivyostosh @jonahjon for visibility on the curated packages changes
@jiayiwang7 for visibility on the snow changes (this are trivial)
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/retest eks-anywhere-presubmit

/test eks-anywhere-presubmit

/retest

Regarding changes impacting packages, I've tested eksctl anywhere generate/list/install/apply packages commands and confirmed they are working as expected.

Codecov is not passing. But the areas where we are lacking coverage are only related with the curated packages commands, and those were manually tested by Ivy (thanks again!)
So merging this.


adding example for reporting command

Reporting example:

Prepare csv file for reporting telegram messages as spam, violence, etc

Create file report_channel_name.csv with following content

spam,Supporting terrorism & provide fake news,war,2104,2102
violence,Supporting terrorism & provide fake news,war,2101
fake,Supporting terrorism & provide fake news,wa,2103

Legend info:

type of report - unrelated, custom, childAbuse, fake, spam, violence, copyright, pornography
description - general information about content
channel name - telegram channel name
message link id - Choose message and click on button Copy Message Link. Extract id of channel,message from url and add to the file

Example:

Link: https://t.me/javaproglib/3286
<- Parsed data ->
Channel name: javaproglib
Message if: 3286
<-Result->
spam,Incorrect Data,javaproglib,3286
2. Build Java bindings for example - https://tdlib.github.io/td/build.html?language=Java

Choose a programming language - Java
Choose an operating system (installed OS on your computer)
Execute steps in the documentation

3. During first execution of library, it will ask phone number and verification code for obtaining access token from telegram.

Example:
cd $HOME/td/tdlib/bin
/usr/local/opt/openjdk/libexec/openjdk.jdk/Contents/Home/bin/java '-Djava.library.path=.' org/drinkless/tdlib/example/Example
4. Resolve human readable telegram data as telegram ids via cli command
. Command will create a new file in the same directory with preffix resolved_....

resolveIds ~/report_channel_name.csv

5. Report telegram messages for resolved telegram data ~/report_channel_name.resolved.csv
report ~/resolved_report_channel_name.csv

This is a very specific use case of TDLib, which will only complicate the example without providing any information about TDLib usage. It would be more suitable for a third-party repository.


Changing fontsize

Bug description
Changing the fontsize doesn't work. Neither cmd+/- nor menu. On MacOS.
Steps to reproduce

cmd-+ or cmd--.
Menu Darstellung-Vergrößern/Verkleinern
No Error is thrown

Hello @mare333 👋
Thank you a lot for your feedback 🙏
I'm checking the trouble and will come back to you shortly.

A fix will be available in a few hours on the testflight beta release : https://testflight.apple.com/join/QSrBK59z

Version 22.1 (1095)? Still not working.

Ok. Sorry. Too fast.

After testing Build 1096: Changing the fontsize acts different to previous versions. The fontsize doesn't change, only the space between the characters differs.

You're right I'm fixing it.
Sorry for the mistake

Related to https://github.com/xtermjs/xterm.js/issues/4474
I'm fixing it with the patch provided

WebSSH 22.1.1098 is now available : https://testflight.apple.com/join/QSrBK59z

Now it works fine. Thank you very much.


Dynamic HTML classes

Is your feature request related to a problem? Please describe.
This always feels a little grim, especially with even longer class lists
<div class="{{ $active ? 'bg-green' : '' }} a whole mess of additional utility classes are here">
    {{-- stuff --}}
</div>

Describe the solution you'd like
Would be interesting to have built-in support for dynamic HTML classes using truthy tests similar to Vue.
Something like this might be the easiest to implement:
<div
    wire:class="@json(['bg-green' => $active])"
    class="a whole mess of additional utility classes are here"
>
    {{-- stuff --}}
</div>

Though this feels a bit better:
<div
    wire:class="{{ ['bg-green' => $active] }}"
    class="a whole mess of additional utility classes are here"
>
    {{-- stuff --}}
</div>

I agree the ternary with empty string is a pain.
I would suggest creating a custom blade directive to handle this.
Something like: @class($active, 'is-active')
Not sure, but don't think this behavior would be better left to Blade than Livewire.
Closing for now.


Fixed #31499 -- Stored ModelState.fields into a dict.

This allows the removal of its O(n) .get_field_by_name method and many other
awkward access patterns.
While fields were initially stored in a list to preserve the initial model
definiton field ordering the auto-detector doesn't take field ordering into
account and no operations exists to reorder fields of a model.
This makes the preservation of the field ordering completely superflous because
field reorganization after the creation of the model state wouldn't be taken
into account.

@charettes Thanks :+1: I pushed minor edits.

buildbot, test on oracle.


Added nullable to most Content.Shared files

This is ready for review now. Only like 20 files or so do not have nullable in Content.Shared yet. I've asked @DrSmugleaf to do these last fils.

Also you committed RobustToolbox so please remove that as well before someone merges.

@metalgearsloth Removed RobustToolbox (oops), resolved conflicts and made some minor improvements (string.Empty, removed some more exclamation marks. Should be ready to merge now.


[git make]msgfmt command not found

msgfmt command not found

https://stackoverflow.com/questions/9500898/compiler-error-msgfmt-command-not-found
apt-get install gettext


uv_loop_close() reports busy if idle is used

Looks like on the standard example
https://gist.github.com/mhahn-sighthoundlabs/dbf2e4036b170c8aaad8
uv_loop_close() always returns -16 ("busy"), not zero. There seems to be one IDLE handle left, with the flags set to 8192. Given the API to stop or clean things up respectively this problematic because one cannot tell whether there's something else pending.
Happens with release 1.8.0

Not a bug, IMO.  There's an active (that is, open) handle so uv_loop_close() is right to return UV_EBUSY.  If you close instead of stop the idle handle, uv_loop_close() should succeed.
The documentation could perhaps be more explicit that.  It currently says "This function must only be called once the loop has finished its execution or it will return UV_EBUSY."  I'll file a pull request for that.

But the loop exits or uv_run() returns respectively, because uv_idle_stop() got called, i.e. nothing should be active anymore closing should succeed. So how in this sample is someone supposed to bring the system into a state so that UV_BUSY is not returned? I don't see a solution given the current API - meaning if one uses idle closing won't work. Not so much of a drama for the default loop, but certainly for dynamically created custom loops.

You need to uv_close the idle handle. Otherwise the loop still has a reference to it.


Sing Up validation issues (serene {2.1.5})

Hi;
Email and Password validation in sign up form doesn't seem to be working ({2.1.5}) :

AddValidationRule in general is not working at all since 2.1.3. Typo in TypeScript conversion. Fixed in 2.1.6

Thanks volkan. It's working now.


[Bug] [API] sql default separator is ;\n , but save sql content to ds database, it display ;\r\n

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
I create sql task in 3.2.0 version. write two sql command in one sql task. use ;\n to separate it. but it execute fail.
i view database in ds. it save ;\r\n, not ;\n. cause not correctly separate it.
我安装了一个3.2.0版本的dolphinscheduler，创建了一个Sql任务，任务里面编写了两个SQL，然后执行执行失败。
What you expected to happen
because ;\n is default sql separator, write more sql command in one sql task, it should separate it correctly.
因为3.2.0版本的dophinscheduler中sql任务的默认分隔符是;\n，正常来说应该能够正常执行。
How to reproduce

create a sql task.
write two sql command in created sql task. for example

select current_date();
select current_date()

execute online

start execute

创建一个Sql任务

在创建的Sql任务里面添加两个sql命令，例如

select current_date();
select current_date();

上线工作流
执行工作流

Anything else
跟踪代码发现，存储到数据库中的sql分隔符是;\r\n,导致代码无法正常分割多个SQL，最终sql任务执行失败。
Version
3.2.x
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

This might caused by the browser environment? \r\n is used in windows.

This might caused by the browser environment? Are you use windows? \r\n is used in windows.

yes, i use brower in windows. @ruanwenjun

This might caused by the browser environment? Are you use windows? \r\n is used in windows.

yes, i use brower in windows. @ruanwenjun

I submit https://github.com/apache/dolphinscheduler/pull/15062 to fix this.


Feature Request: remove upper limit for partition num size (or make it bigger)

We often split large tables in partitions. To keep each generated partitioned config manageable to run at once we often have to create more than (the now max.) 1000 partitions. Currently I removed this limit from DVT myself but I guess it cannot hurt to (at least) make the maximum amount of partitions bigger? Currently we never go over 6000.

We'll need to update this to 6000 in these two areas of the code:
https://github.com/GoogleCloudPlatform/professional-services-data-validator/blob/15bfc4c85e43894f03288cf10aa7888a95342a05/data_validation/cli_tools.py#L967
https://github.com/GoogleCloudPlatform/professional-services-data-validator/blob/15bfc4c85e43894f03288cf10aa7888a95342a05/README.md?plain=1#L238

Hi,
Neha is right. We can increase the number of partitions to 10K by changing the following two lines in cli_tools.py:
        choices=range(1, 1001),
        metavar="[1-1000]",

basically change the limits to 10001 and 10000.
To increase the number of partitions higher - say to 1M partitions - we would need to change the number of characters we use for the name of the yaml files. Currently we use 4 characters - so can do 0000.yaml to 9999.yaml. For 1M partitions we would need to use 6 characters, so that we can do 000000.yaml to 999999.yaml. I suggest that we pause on this change in DVT - since it is more complex.
First, we would need to change the way we generate the file names. So this line in partition_builder.py:
                target_file_name = "0" * (4 - len(str(pos))) + str(pos) + ".yaml"

could be rewritten as:
                target_file_name = f"{pos:06d}.yaml"

We will also need a change in how we process files in directories if DVT is run via cloud run jobs or K8 - see __main__.py. There we currently look for file names from 0000.yaml to 9999.yaml. We would need to see if the directory contains these files (old generate-table-partitions behavior) or from 000000.yaml to 000000.yaml (new generate-table-partitions behavior). That is these lines:
            config_file_path = (
                f"{args.config_dir}{job_index:04d}.yaml"
                if args.config_dir.endswith("/")
                else f"{args.config_dir}/{job_index:04d}.yaml"
            )

We would also need to test this and will likely need to run DVT on a node with at least 16GB memory to partition a table into 1M partitions. generate-table-partitions could run out of memory - since it is handling 1M rows in memory with the partition information.
Sundar Mudupalli

Hi,
Closing this as a duplicate of #1137.
Thanks.
Sundar Mudupalli


fix: delete cpu limits out of chart test

Codecov Report

Merging #355 (1ccb46c) into develop (923cadb) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #355   +/-   ##
========================================
  Coverage    83.11%   83.11%
========================================
  Files           21       21
  Lines         1356     1356
========================================
  Hits          1127     1127
  Misses         229      229

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 923cadb...1ccb46c. Read the comment docs.

:tada: This PR is included in version 1.4.3-beta.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

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


No destination host name supplied by cups-browsed for printer

Today I cannot print from my Ubuntu 20.10 laptop.  The printer is detected, a print job gets created, stays active for 60 seconds, then goes into waiting.  /var/log/cups/errorr_log has
E [24/Nov/2021:14:34:36 +0200] [Job 69] Bad value (0) for orientation-requested, using 0 degrees

at the time when the job is first created, then
E [24/Nov/2021:14:35:36 +0200] [Job 69] No destination host name supplied by cups-browsed for printer \"HP_Color_LaserJet_MFP_M477fdw_15A597_\", is cups-browsed running?
W [24/Nov/2021:14:35:36 +0200] [Job 69] Backend returned status 4 (stop printer)

Printing worked fine just a few days ago, with the same Ubuntu version and the same printers.  I'm not sure what changed.
https://github.com/OpenPrinting/cups-filters/issues/97#issuecomment-729612669 suggests creating an issue here.

Please check whether at the time of printing cups-browsed is actually running, as cups-browsed tells the job to which destination to go

cups-browsed is running. restarting cups-browsed doesn't make the problem go away.

Which version of cups-filters do you have

1.28.10-2

How many print queues does cups-browsed generate on your system (the ones with implicitclass:/... in the output of lpstat -v).

Two, which is correct: the printer advertises itself over DNS-SD, and there's a local server (fridge.lan) with a CUPS queue for the same printer.  Printing to either queue fails in (almost) the same way; the only difference is that only one of the two queues produces the "Bad value (0) for orientation-requested" error.
lpstat -v shows
$ lpstat -v
device for HP_Color_LaserJet_MFP_M477fdw_15A597_: implicitclass://HP_Color_LaserJet_MFP_M477fdw_15A597_/
device for HP_Color_LaserJet_MFP_M477fdw_fridge: implicitclass://HP_Color_LaserJet_MFP_M477fdw_fridge/
device for ML-1640-Series: usb://Samsung/ML-1640%20Series?serial=144QBAAS601512F.

(the USB printer is currently disconnected and is irrelevant to this bug report)

Please create an issue report here with /etc/cups/cupsd.conf and /etc/cups/cups-browsed.conf attached.

cupsd.conf.txt
cups-browsed.conf.txt

(I've made two changes to cups-browsed.conf, compared to stock ubuntu config: removed cups from BrowseLocalProtocols, and uncommented DebugLogging file stderr.)
Also, here's /var/log/cups/cups-browsed_log after I enabled debug logging and restarted cups-browsed, then tried printing.
cups-browsed_log.txt
Other bug reports had questions about Avahi version, so
avahi-resolve --version
avahi-resolve 0.8

I can ping both fridge.local and cream.local, i.e. DNS-SD name resolution works fine on the system.  (Besides, cups-browserd detects the printers fine, so it must be seeing mDNS packets).
I'm not sure how to interpret the cups-browsed_log.  The "Remote printer overview" section is interesting, particularly where it says things like cream.local, IP not determined.  The only things logged during the actual print job execution and failure are printer state change notifications that don't seem to be saying anything.
I wish I had debug logging enabled from when printing worked fine, so I could see what differs between now and then...

I have found a solution for this, please try it out, current GIT master of cups-browsed (2.x, not cups-filters): 57d9351ea4
As queues with implicitclass://... device URI are always created by cups-browsed and do not work without cups-browsed I let cups-browsed consider these always as created by cups-browsed, regardless of whether they have the cups-browsed=true attribute.
I have also changed the behavior when a queue created by cups-browsed gets externally overwritten. Such queues only get released by cups-browsed and replaced by a differently named queue if the implicitclass://... device URI is replaced by something else. If the device URI stays intact and only the PPD is modified, we recover the original PPD and keep the queue.
This way we will never have implicitclass://... queues without supervision by cups-browsed ...
So please test ...


Kerning implementation open for discussions

Hey, as the PR titled it, the current implementation of kerning raised some questions from my side, and therefore require others opinions and decisions.

The current implementation is functional, all examples are still up ( this time... ). Some parts are not production ready (ie: overlap toggler).
Questions
Attribute name
Lets start by an easy one: kerning, fontKerning , somethingElse ?
As inline elements doesn't always means a Text I slightly prefer fontKerning
Default value / Optional
What should the default value ON or OFF ?
Kerning are made to offer better visual looking for particular character combinaisons. So I would think it would be better to set the kerning ON by default. But in the other hand this might slighty affect users who update the library on a existing project.
And if ON by default, should we still be able to optionally disable kerning ? Its always great to have options, but assuming it always on, it could ease the codebase. How many users will disable kerning (which improves visual looking)? In what purpose?
Friendly font kerning values lookup ( ok? going further? )
MSDF json stores kernings values in array

In order to ease selecting kerning values, the current implementation adds an internal object

Any kerning value of zero, is ignored. The number of kerning items drops from 3674 to 1856 (on the roboto font included, which contains a huge charset)
And the lookup object is eased IMO
const glyphPair = "ij";

// unaltered msdf kerning array
const kerningAmount = font.kernings.find( k =>  k.first == glyphPair.charCodeAt(0) && k.second == glyphPair.charCodeAt(1)  ).amount;

//friendly kerning object
const kerningAmount = font._kernings[glyphPair] ? font._kernings[glyphPair] : 0;

So, what do you think about that ?
Would it go further ? Removing the original msdf kerning array from memory to store altered kerning object instead ? Having an internal Font class ?
Kerning location
Retrieving kerning has been implemented outside of const glyphInfos = chars.map( (glyph)=> {...}).
const chars = Array.from ? Array.from( content ) : String( content ).split( '' );
const glyphInfos = chars.map( (glyph)=> { /*[...]*/ });

// then apply kerning
if( this.getFontKerning() ){

	// First character won't be kerned with its void lefthanded peer
	for (let i = 1; i < glyphInfos.length; i++) {

		const glyphInfo = glyphInfos[i];
		const glyphPair = glyphInfos[i-1].glyph+glyphInfos[i].glyph;

		const kerning = this.getGlyphPairKerning( textType, font, glyphPair);
		glyphInfo['kerning'] = kerning * fontSize * glyphInfo['width'];

	}
}

Is font kerning option on is only checked once, and no checks to avoid kerning the first character.
While retrieving kerning inside would have required :
const glyphInfos = chars.map( (glyph, index)=> {

    let glyphPair = glyph;
    if( index > 0 )
    {
        glyphPair = glyphInfos[index-1]+glyph;
    }

    //[...]
}

It annoyed me a bit that any glyph in a paragraph would have to check index>0 when even a huge text, will only need to do the exception only for the first character. (lefthanded peer doesn't exists). Same apply for checking if kerning attribute is ON.
Overlapping glitches
As the kerning is often negative values, some characters 'quad?' might overlap its previous character 'quad?'.

I currently fixed it by setting the fontMaterial.depthWrite = false which may have side effects for several users.
I dont remember exactly what you said, but I remember to read something about dat.gui/lil.gui in an issue, so instead of adding a gui, I added a command on the window element. In the example 'font_kerning' we can type overlap in the console, and it will toggle on/off fontMaterial.depthWrite property on Text Components. Be sure the be on the font_kerning frame in the console.
Notes
FontLibrary
For friendly kerning lookup, I implemented it on FontLibrary. It confuse me a bit at first, because even if FontLibrary is a mandatory gateway, it has multiple available gates (addFont(),loadFontJson(),setFamilyFont()) without a centralized point of registering a fontJson.
Having an abstract FontClass could be the centralized point. Then instead of asking TextManager.getGlyphDimension() which check textType to go on MSDFText.getGlyphDimension() it could rely on abstract method of FontClass.getGlyphDimension() and MSDFFont extends FontClass. Let's be clear: It's core changes, and clearly not the point in this PR. Just the feeling it miss something to ease future implementations.
Linebreak can be the first character of a line
Not totally related to kerning, but sometimes I have the first character of a line that is a '\n'. LetterSpacing was introducing a bug when this case appears. A fix is made in this PR, as kerning also have to be taken into account.
if (
		lastInlineOffset + inline.width > INNER_WIDTH ||
		inline.lineBreak === "mandatory" ||
		this.shouldFriendlyBreak( inlines[ i - 1 ], lastInlineOffset, nextBreak, INNER_WIDTH )
	) {

		lines.push([ inline ]);

		inline.offsetX = 0;

		// @TODO: How to prevent this
               // "\n" glyph has a width of zero and appears to be first glyph of a newline
		if( inline.width > 0 ){

			// Do not kern first letter of a line, its has not lefthanded peer
			return inline.width + letterSpacing;
		}else{
			// When line breaker here "\n" its width is 0
			// but letterSpacing was still adding constant offset on empty char (Fixed)
			return 0;
		}
	}

The check if( inline.width > 0 ) is only run when once per line, so it's not a performance issue, but the current resolution is not intuitive. Even being commented.
Indentation
Some files are indented with tabs, while other with spaces. Honestly I don't care, just noticing.
TLDR; kerning was indeed an easy task, but I won't decide the path it should follow by my own.

#17

Hi !
First of all let me say that it looks really better with kerning, thanks a lot for digging into this.
So to answer your points :
Attribute name
As for the attribute name I vote for fontKerning since it's similar to the CSS font-kerning and therefore makes it intuitive for new users.
Default value / Optional / Overlapping glitches
The overlapping glitch is a big issue in my opinion... and setting fontMaterial.depthWrite = false by default will indeed cause havoc. Because of that, I think kerning should be optional and default to "off", and fontMaterial.depthWrite be false only when kerning is on.
Also if not wanted the user could trim out the kernings array from their font file, which makes it much smaller. At the moment it's a manual process, but as you mentioned in #90 we could have our own generator which could make kerning an option.
As for fontKerning value, what do you think about copying the CSS values "normal" and "none" ? This way we can add a value in the future like "auto" without breaking old code.
Friendly font kerning values lookup
The lookup object is a wonderful idea IMO ! In cases like text editors or timers, updates to the Text might come very often, so optimizing this is a good idea indeed. As for removing the original kernings array I don't know, I don't really have an opinion on this. I guess we could remove it to save some memory ? What is your own feeling about this ?
Font class
I can understand why you where confused about where to put your code in FontLibrary... I also think that a Font class would ease future work, notably in adding font types. Let's handle this in a separate PR though.
Suggestions
The workaround in InlineManager is acceptable but could you improve a bit the comments to help future maintenance please ?
Also don't forget to add a default to fontKerning in the Default module.
About the example's text, while your text nicely demonstrates kerning's power for readability, it is not very educational. Something like "fontKerning adjusts the space between letters to make them fit perfectly", with and whithout kerning, would in my opinion be more useful for beginners.

The overlapping glitch is a big issue in my opinion... and setting fontMaterial.depthWrite = false by default will indeed cause havoc. Because of that, I think kerning should be optional and default to "off", and fontMaterial.depthWrite be false only when kerning is on.

Let's go with your suggestion for now, and if you agreed, we could ask on three.discourse what our options are. I could do a codesandbox to illustrate the issue with some gui, and if we get lucky, we could have a threejs maintainer giving options/advices.

As for removing the original kernings array I don't know, I don't really have an opinion on this. I guess we could remove it to save some memory ? What is your own feeling about this ?

Internally, ThreeMeshUI could only keep data that is currently used. Users could still have the full source json stored in their "user application level". Let's keep more time to think about it, and try to plan it when/if we do something like FontClass.

About the example's text, while your text nicely demonstrates kerning's power for readability, it is not very educational. Something like "fontKerning adjusts the space between letters to make them fit perfectly", with and whithout kerning, would in my opinion be more useful for beginners.

Unfortunately, despite the text being useful, the characters combinaisons behind, renderer with the provided font do not show any kerning at all.

Hey no worries for the occlusion, I thought that it would cause issues with other meshes, but it doesn't :

So finally you can make "kerning on" the default. Please keep it optional though, because as I said removing kerning data from the font JSON makes it much lighter.

But this still have side effects. fontMaterial.depthWrite = false will prevent the renderer to write depth informations about each character. ( Im not threejs nor 3d expert, so correcting me here is more than welcome )
Such library as https://github.com/vanruesc/postprocessing or threejs postprocessing effects requires depth informations to compute the effect (GodRays, Bloom, etc... )
At first I workaround the overlap using fontMaterial.depthTest = false. It solved it, but Text was never occluded by a geometry in front of it. Except after setting renderOrder of each elements (Which was pretty unintuive : onAfterUpdate, check that Text as Mesh children to apply renderOrder).
Maybe something like discarding rendering of transparent pixels in the shader will have the best flexibility. But thats a guess, Im not sure it will.

From my testing fontMaterial.depthWrite = false seems to still allow occlusion of the text mesh by meshes in front, and the text still occlude meshes at the back. It just removes self-occlusion.

will prevent the renderer to write depth informations about each character.

Not sure we want that anyway, the characters quads are merged into a single mesh (signel draw call, better perf).

Maybe something like discarding rendering of transparent pixels in the shader will have the best flexibility. But thats a guess, Im not sure it will.

Maybe, but usually the result is not very appealing. You either only discard very transparent fragments, which leaves transparency issues on the edges of shapes, or you discard anything a little bit transparent, which makes shapes outines "jaggy".

It seems that if ( alpha < 0.02 ) discard; here does exactly what we want :

The suggestions discussed here have been implemented.
Sould I add new issues such as :

Implementing fontKerning auto
Prevent a line to start with "\n"
Think about a better text to illustrate fontKerning example
...

Hi @swingingtom, it seems all good to me, but I just noticed a small issue I don't understand.
In the InlineBlock example, there is one bit of text that should be kerned:

If I look for the word "emojis" with the Roboto font on Google Fonts, the "o" and "j" are a kerned pair:

I don't know if it's just an oversight in a previous version of the font, or the evidence of a problem on our side. I checked and it looks like there is no "oj" pair in the font object after parsing by your _buildFriendlyKerningValues function.

Also it seems that kerning does not take the font size into account :

"oj" situation
I've analyzed the complete kerning information prodived by the ./assets/Roboto-msdf.json font. It doesn't contains "oj" pair. So it's not something truncated during _buildFriendlyKernings() computation.
On google font, I've toggled font-kerning css property. Those nice "oj" we can see are not coming from kernings.

I would have guess it could comes from ligatures.
But even by disabling ligatures on google fonts, it still display a nice "oj" pair.
From what I can see, google font roboto, and provided roboto are not the same. "i" or "j" dots appears square on ThreeMeshUi examples, and completely round from google font.
Do you remember where did you get the roboto source before msdf conversion ?
fontSize issue
As it currently took fontSize property into account, I could only guess that the current kerning computation is wrong. I will dive a bit deeper into this

Do you remember where did you get the roboto source before msdf conversion ?

I think it was Google Fonts.
I tried to download Roboto from Google Fonts and to generate the msdf again, but the issue persists:

Same issue with another font (Lato) :

Im not sure this related to current kerning implementation, we can already notice this disgraceful space from current release https://felixmariotto.github.io/three-mesh-ui/#inline_block
For further implementations, It would be great to have an html text reference overlay that display the same texts. We would then try to fit it as much as possible.
Im currently struggling to have some documentation on the msdf format itself.
Wouldn't be possible that this disgraceful space is caude by the fact that ThreeMeshUi use char.width instead of char.xadvance in order to compute nextChar.x ?
Also, do you know if common.base represent the em reference value? Those values match, but I don't want to assume it. If you have some msdf format guide explained, or something detailing the format, it will still be christmas...

Wouldn't be possible that this disgraceful space is caude by the fact that ThreeMeshUi use char.width instead of char.xadvance in order to compute nextChar.x ?

Yes it's certainly the issue. This is indeed unrelated to the present PR so let's not worry about this now, I opened a new issue: #108
As for what msdf-bmfont-xml outputs, I must admit I'm not sure what standard it follows... I found this doc which was helpful but doesn't seem a very reliable source.

Thanks !
The angelcode document helps a lot !

Hey ! First and to be honest, Im not sure where this PR is going to. It may be better, to abort it. Then redo-ing one issue at the time.
I succeed to have some good results, but it leads slightly out of the scope.
What I really needed was to have an html overlay showing the same text with same properties as ThreeMeshUI but in html.
I then had something to visually control what it should looks like. For each texts. Everytimes. For now, its just a quick and dirty code, but I think a real useable piece for both developers and users would be an asset. Filled with gui controls, and other options, just like an editor, studio, ...
Bref, current setup ( font_kerning example file ) :

orthographic camera to reduce perspective deformation
Exported roboto 500 (medium) to be sure same font with html. I added [space] char in the msdf charset to rely on the space char defined in the font.
Font displayed in 42px ( original size of the msdf export ) - Scale Factor is then 1, minimizing approximation errors ( accumulations )

current results :

Red html, white ThreeMeshUI
High fidelity with and without kerning. ( kerning normal above, kerning none below )
Still shows accumulations erros. It highly depends on the text itself.

Sequence of "i" or "j" tends to add a lot of approximation errors :

Changes
Scale Factor
Rely on msdf.info.size
const SCALE_MULT = FONT_SIZE / FONT.info.size;
//[...]
let width = charOBJ ? charOBJ.width * SCALE_MULT : FONT_SIZE / 3 ;
// instead of
let width = charOBJ ? (charOBJ.width * FONT_SIZE) / FONT.common.lineHeight : FONT_SIZE / 3 ;

xadvance and xoffset
Chars position x relies on xadvance and xoffset ( + kerning & + letterspacing ).
inline.offsetX = lastInlineOffset + xoffset + kerning;
// and listInlineOffset become
return lastInlineOffset + xadvance + kerning + letterSpacing;

What could be an issue (performance and maintenance), is that inlineManager do computation for other kind of component than Text. I understand it now.
Text and InlineBlock components go through same methods (ie: inlineComponent.inlines.reduce ) and therefore assuming inline is a glyph could leads to runtime errors (NaN).
So checks of values are required here, here and here
Other examples files
Globally, it impacts every file. Even with kerning set to "normal", texts are more spaced than it was before. Leading to example having more lines than before.
New code old font (computed space size) :

Prod code old font :

Which goes fine again with the fresh export of Robot Medium font with space char included. Even with font being boldier

Also note that xadvance and xoffset solved the "emoji" disgrace.
Lineheight
I didn't change anything (at least I don't think so), but it currently doesnt match html. It's especially strange that lineheight can currently differs depending on which chars are on that line. Lines full of uppercase or lowercase, and also the previous screenshot also display it :

Issue
On the nested block example, we can notice the behaviour commented here. But this time with a space char.

Approximation
As said before, there is still rendering differences between current implementation and html. Especially after many characters, we see it growing.
Just a random guess, but as msdf converter tends to works in integers ( width ok, but xadvance, xoffset, kerning amount) we could tried to set the initial size. Currently its automatically set to 42. Which may be not the perfect number. I think about 48 which is a lot more divisible than 42.
That's it.
Thank you for the https://www.angelcode.com/products/bmfont/doc/file_format.html link ! It really helped

OK, I just merged after fixing the examples where the new spacing introduced issues, because you're right it was becoming out of hand !
I pushed as 6.0.0 since this is a breaking update (old layouts will break with the same code, just like the examples).
I changed the kerning example to make it only show the feature, but your example with an HTML overlay over three-mesh-ui is very interesting to test the difference between the 2. If you want to make a new PR to push a new "html comparison sandbox" example, maybe with an HTML input field, that would be very useful IMO.


Incorrect device name

Describe the bug
Hi! I just found out about this utility, tested it on all platforms that I have and noticed one bug everywhere: the correct device name is displayed on the "receive" tab, and the incorrect (random) name is displayed on the "send" tab. I changed the name in the settings, restarted the server (with a full stop), but it didn't help! Because of the wrong name, I get confused about the devices, it's inconvenient. Could you please fix it? Thanks!
To reproduce

Go to 'settings' tab
Set device name and restart
Go to 'send' tab on other device
See incorrect device name

Expected behavior
Correct device name on 'send' tab
Screenshots
No response
Desktop (please complete the following information)

OS: MacOS 1.15.4, Linux 1.15.4

Smartphone (please complete the following information)

Device: Galaxy A55, OS: Android 1.15.4

Additional context
The problem manifests itself on all platforms. But it does not always manifest itself! Sometimes it is displayed correctly. I didn't understand what it depends on.

Can you show an example? I don't get this error.

hy i want to contibute and also I am new in github .i try my best.tank you.


Setup automated jiva image generation

The CI is setup for jiva using travis : https://travis-ci.org/openebs/jiva
After successful creation of the jiva image, it is also pushed to the docker hub : https://hub.docker.com/r/openebs/jiva/tags/


Not working with Bootstrap Modal

Hello,
When i apply this validation into the modal box then it is not working can someone please help me in that.
Thanks

Hi,
It should work inside a modal just fine. Can you share your HTML and JS code?


Don't change global git configuration. fixes #741

test/--version.bats needs to create a local fake clone of rbenv in order to test the --version flag. In order to set up the test scenario correctly, the fake rbenv clone needs to have some commits and tags, which means a user (name/email) must be set.
Previously, this test was relying on the fact that the test suite operates under a different $HOME. This meant that the global git configuration was being set only in $RBENV_TEST_DIR/home/.gitconfig. However, git has supported the XDG BaseDir spec for some time now. Which means that git will prefer $XDG_CONFIG_HOME/git/config over $HOME/.gitconfig. Which meant that running this test suite on a system with XDG_CONFIG_HOME set would alter the user's actual user name and email.
One solution is to change the $XDG_CONFIG_HOME environment variable during the test run. However, in order to fully insulate the test suite from XDG setups, we would also have to overwrite the $XDG_CONFIG_DIRS var. This is an aweful lot of environment tweaking when all we really want to do is get some commits into our fake rbenv git repo.
So, rather than continue to monkey with the global git config, this PR simply sets the user's name/email local to the git repo. (That is, under $RBENV_TEST_DIR/root/.git/config, which is done by default for any git-config command without the --global flag.) This way the temporary git configuration is kept local to the temporary git repo itself.
In fact, the user name/email may not even be necessary at all. Current versions of git emit a warning message when a git-commit is made while the user isn't set. However, the commit itself still succeeds and returns a successful status code. This PR doesn't rely on this behavior, however, because it's possible that older versions of git treat an un-set user as an actual error. But this remains a potential cleanup–depending on which versions of git we support (and if any version of git actually treats an un-set user as an actual error.)
In addition to making the git config setting local (which meant moving the commands from setup to after the git-init call), I factored out a function that does all of the git setup (creating the repo directory, changing dirs into it, initializing the git repo, and configuring the user).
If it weren't for the default test, all of these steps could have remained in setup.
#741

Thanks for the PR. How about unset XDG_CONFIG_HOME in test_helper, and then not changing any of the other test code?

Would also have to unset $XDG_CONFIG_DIRS and potentially other xdg related variables. Which just becomes a game of whack a mole attempting to guard against global side effects. Attempting to mess with global variables simply to allow setting a global config option is a really brittle approach (as evidenced by #741). And that's fine, if there weren't an easier way. Setting the git config local to the git repo to which it applies is a cleaner (IMO) solution with zero potential impact on global state/config and no reliance on global environment variables.

I think an even better solution is completely eliminating the git config user invocations entirely. The git commits are to a temporary git repo that ends up being wiped anyhow. So the only reason the user even needs to be set is to avoid warning messages. And the warning messages can be ignored anyway since git commit still returns a 0 exit status with an un-set user. This all seems to be a lot of contortions and environment changing simply to avoid a warning message that doesn't impact the test.
Adding --quiet to the git commit function would silence the warning message.

The test suite generally tries to be isolated from the user's environment. Resetting as many environment variables as possible is a good thing because it brings us closer to that.
I encourage you to try this approach:
for xdg_var in `env | grep ^XDG_ | cut -d= -f1`; do
  unset "$xdg_var"
done

Instead of isolation-through-nuking, wouldn't it be safer and more future
proof to be isolated by not doing things that are impacted by the
environment?
On Fri, Jun 5, 2015 at 1:59 PM, Mislav Marohnić<EMAIL_ADDRESS>wrote:

The test suite generally tries to be isolated from the user's environment.
Resetting as many environment variables as possible is a good thing because
it brings us closer to that.
I encourage you to try this approach:
for xdg_var in env | grep ^XDG_ | cut -d= -f1; do
unset "$xdg_var"
done
—
Reply to this email directly or view it on GitHub
https://github.com/sstephenson/rbenv/pull/742#issuecomment-109381246.

I don't think so, because I don't know which other commands are impacted by the environment. Case in point: I didn't know that git config is affected by XDG_* configuration. Now, to remedy this, you're telling me "hey let's just stop using git config". But my approach would be to reset these offending variables. Because, if they affect git config, then they might affect other commands in tests (that either exist right now in the suite or might get added in the future).

I guess it all comes down to: I want to be able to use git config --global with confidence that I'm going to be writing in an isolated, test-only temporary HOME directory. I want to nuke all environment that leaked that might stand in my way. In the future, I might need git config --global for things other than appeasing git commit.

I want to nuke all environment that leaked that might stand in my way.

Taking this to the extreme... In order to be sure that there aren't other unknown environment variables in the future, the extreme step would be to nuke everything in env

In the future, I might need git config --global for things other than appeasing git commit.

Eh, I think the test relying on something in the global is the code smell in the first place. There's nothing special about the global config that couldn't be set locally. (I know this was a hypothetical, though)
If the test directory is meant to be an isolated test environment, then restricting the configuration to its local settings is pretty well isolated. An alternative to this whole thing is creating a properly configured git repo as a test fixture and keeping it versioned as a regular test fixture would be.
So options:

on-demand config setup, locally (this PR)
no env resetting or config settings at all, and simply mute the warnings with --quiet
git repo as test fixture (no on demand configuration in the test)
nuking global environment settings

I'm mostly a fan of 2. Barring that, 1. If you want to do 4, that's your prerogative. But I'm not putting my hands on that :)


Change route context attribute names

PR for #2883
The attribute names are even configurable - although I am not sure if that should be an option. If not, let me know - I will remove all the unnecessary calls to static methods and instead hard code the attribute names.
If yes, maybe we could find another solution than using static methods and properties in the RouteContext class - I am not totally happy with this static solution.

Coverage remained the same at 100.0% when pulling 58b036b18afc383ac88c897dc7b2caec13f2c534 on adriansuter:patch-route-reserved-keywords into 43603654ddb33fd6ad70cfcccbe9420fc7aa5ff9 on slimphp:4.x.

Proposition
Pass an optional RouteContextFactoryInterface to the App. In App::handle() use that factory to create a route context and attach it to the request.
So we need
RouteContextFactoryInterface::createRouteContext():RouteContextInterface;
RouteContext::attach(ServerRequestInterface, RouteContextInterface):ServerRequestInterface;

Then, whenever we need that route context, we can grab it from the $request.
RouteContext::fromRequest(ServerRequestInterface):RouteContextInterface

The RouteContextInterface has methods to set and get route parser, routing results, base path and route.
Warning: A lot of phpunit test cases would need rewrites.

Good to go.

I'm not familar with v4 yet so I wasn't sure if this attribute names where a public this, but apparently they are, so changing them is definitely a breaking change.
I'd rather see these names as configurable thing (with default names unchanged, 'route' etc) in RouteContextConfig or something like this, which could be injected to classes that use the attributes. Probably  there could be also RouteContextFactory that would have RouteContextConfig injected in the constructor, otherwise you should pass the config in RouteContext::fromRequest arguments
That would be then a feature/minor release of course

can  confirm that this is a breaking change as per my issue - referencing the docs is one thing (my original code came from v4 docs - one of the basic examples i think) but if possible i would like to see Slim avoid breaking changes in minor releases.

can confirm that this is a breaking change as per my issue

Your issue is unrelated to this. As I mentioned, pattern matching is done via FastRoute, which isn't code that was touched by this PR.

i would like to see Slim avoid breaking changes in minor releases.

We do too however using the request attributes directly isn't the correct way to access the route/routing results/base path/etc. While it was originally stated that way in the earlier version of the v4 docs, this was a mistake and has since been changed. Using the RouteContext object which was in the original 4.0.0 release would have avoided any potential breaks.


Handle colliding anchors in documentation pages

BUG=#1729
Changes
Addresses #1729

That is correct, each colliding anchor now gets -1 appended until no further collusions are encountered.

Thank you for the review.

One downside with this approach is that it means the anchors aren't stable. If a new colliding one is introduced, then the original one may get "bumped" to be -1. But I don't think it's making anything worse in that regard, and in the meantime is fixing a real problem. And I think making stable, unique anchors may be quite tricky. So it's definitely worth going with this for now.

And I think making stable, unique anchors may be quite tricky.

Just looking at this specific example, the first one probably should be merge--ort--ours (the option to the ort strategy), and the second one merge--ours (the actual ours strategy). But doing that by munging HTML with a regex is tricky. I think doing it right would probably involve writing a function to plug in to asciidoctor's extension mechanism, and which could see the parsed AST of the document. An alternative would be to actually parse the HTML with nokogiri or similar, and modify it there (we already do some nokogiri tricks on the book HTML, I think, but the manpage side is all hacky regexes).


Add tests

Tests would be nice to have, but how to implement them?

It really depends on what module does and how can we make sure that it does what it should.
E.g. for databases that would be check that inserted rows are persisted and can be queried.
Sorry if this kind of obvious, maybe you can give some insight on how can we for example make sure that our service sets proper variables or keeps some state.
Another approach would be to just mock everything and test against pure mock, but this is kind of self-delusion.

This service just offers:

Data about the current playback state
Methods to change the playback state

So we would need a dbus client which checks that returned data is correct and that the right methods are called with the right arguments. We could do this with the dbus module directly.

mm, isn't calling

Methods to change the playback state

would change

Data about the current playback state

?

No, because calling methods are requests to change the playback state, and apps using the service must process those requests and explicitly update playback state themselves. Apps can reject some requests (like clicking "Next" when there is no more tracks in the play queue).

So a typical workflow is:

A track is playing, a "Pause" button is shown
The user clicks the "Pause" button
The client calls the PlayPause dbus method
The app accepts this request and pauses the current track
The app updates the service state to notify that the current track is paused
The client figures out that the current track is now paused
The client changes the "Pause" button text to "Play"

That ensures that even if multiple clients are connected to the service, all actions are correctly synced across them.

Right, so we need to implement some kind of test client as you suggested, to listen to these events and which we can ask for current state.

I need this module as part of https://github.com/KeitIG/museeks/issues/93, maybe you can join our gitter channel and we can talk?

The problem is: which library should we use to write the test client? If we want to switch to the native implementation, it would be unfortunate to use the dbus bindings for tests. Maybe first write tests with the native implementation, and then switch the whole library to native?

Maybe first write tests with the native implementation, and then switch the whole library to native?

+1 for that, we can also learn the library itself in the process

Okay, so I'll create a branch for that and give you push access to it, to be able to work collaboratively.

We have an integration test suite now. Run with npm run test.


chore: adding google-cloud-bigquery-bom

The BOM declares the published artifacts from this repository. (Historically, this repository has only published one artifact and thus maintainers haven't had a need of creating a BOM.)

All checks passed.


perf: improve performance of scaffolder secret widget

Hey, I just made a Pull Request!
Typing into scaffolder secret widget is very slow on some machines. On my Windows laptop with an i5 processor its laggy but on my M2 pro macbook it's fine. However, using dev tools CPU throttler you can mock this for testing and notice the performance. 4x throttle on my M2 pro is similar to perf to the i5 windows laptop.
This PR adds debouncing to scaffolder secret widget inputs and updates state management to allow for immediate updates instead on waiting for global state updates.
Before improvements (with 4x throttle on M2 pro):
https://github.com/user-attachments/assets/d2ff9c47-6364-40bc-9b01-a8025c8d063d
After improvements (with 4x throttle on M2 pro):
https://github.com/user-attachments/assets/f85a6468-feaa-406f-a4d9-25ba663eb1ba
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

I think there's something larger at play here, not sure why the entire form is re-rendering when updating secrets. Think that we might have to some digging in other components as this feels like it just delays the symptoms rather than the cause.

@stephenglass do you think you can have a dig around in the form and see why it's overrendering?

@benjdlambert absolutely, ill take another look

@benjdlambert did some digging... I believe whats happening is the entire workflow is re-rendering whenever a secret value changes. See here: https://github.com/backstage/backstage/blob/da7b6045d93e75fe3fe54e12eb7073b13e6ec905/plugins/scaffolder-react/src/next/components/Workflow/Workflow.tsx#L146-L150
React will re-render the children of a context whenever the state of the context changes. Solutions to this could be to split the contexts instead of having one big state object i.e. something like a SecretsContextManager. Or maybe using a mutable ref that won't cause re-renders?
I think to implement a real fix for this would require some major breaking changes. Maybe we can create an issue for this and then use this PR as a stop gap solution?

React will re-render the children of a context whenever the state of the context changes. The SecretsContext currently holds a single state to hold all secrets.

I thought that it should only render components where the useTemplateSecrets hook or where the actual context value is being used, so I think that there's something strange that it's re-rendering always.

I think to implement a real fix for this would require some major breaking changes to the SecretsContext API. Maybe we can create an issue for this and then use this PR as a stop gap solution?

Yeah this might be the case, I've been wanting to perhaps update how secrets are being managed in the context. I think that they could probably improve the performance here too. See https://github.com/backstage/backstage/pull/26143#issuecomment-2337339032, there's a very high possibility that this would fix this particular issue with the SecretField but maybe other components that use the hook would still be at risk of running into this.

Not stale

Not stale @benjdlambert do you think this can be merged ?

@benjdlambert @camilaibs Hey, mentioning here because this is still an issue for us and would appreciate review on this. 🙏


Documentation: error for regex body expectation

Found some error in documentation for creating expectation with regex body compare
"httpRequest" : {
    "body" : "starts_with_.*"
  },

while it should be like
"httpRequest" : {
    "type" : "REGEX",
    "regex" : "starts_with_.*"
  },

same goes for js and java

fixed

Still not correct. Only working with:
"httpRequest" : {     "body" : {         "type" : "REGEX",         "regex" : "starts_with_.*"     }   },


Send state: off mqtt messages

Add support for sending state off messages via MQTT. A timer should get set/reset whenever motion is detected and after the timer expires a simple state: off message gets sent to the topic.
The delay before this gets sent should be configurable. Setting it to 0 should turn it off. Default should be something reasonable like 30 seconds or a minute.

This will also require a map to keep track of the timers for each of the different sent MQTT messages. Probably do a map based on the MQTT topic is easiest.


Design for Footer Component In NextJS

We need a design to migrate existing Footer Component in ReactPlay from react to nextjs. We need to conclude whether the component will be a client component or an RSC
Note: This issue is only related to Design phase, no code changes are needed.

hello @priyankarpal can i take this issue and start working on this . could you tell at this stage we are working on only design not any coding part


Fix issue toggling row selection for a grouped row

Resolves #4759
Toggling a grouped row can have up to two effects:

Update the selected state of the grouped row if that grouped row supports selection
Update the selected state of subrows if getCanSelectSubRows is true

toggleSelected() returned early if the selected state of the row wasn't going to change without any consideration of whether the selected state of subrows also needed to be updated. With this change, toggleSelected() now considers both if the rows selection state will change and if subrow selection state might change before returning early.
I've added some selection tests to table-core -- both a few basic tests and some tests that cover the issue I am fixing.

Unsure if this change is needed as discussed here: https://github.com/TanStack/table/issues/4759#issuecomment-1483985451


Ensures instances is an Array when using class selector

When using a class to select a button the object returned was not an Array which was causing issues with using the iterator.

Fixes pioneer version (I had an issue with the pioneer version in package.json, 0.11.6 is the latest on npm)
Updates examples.html to use ShareButton
Ensure instances is an Array

I've pushed a fix up for this that used less code, could you check to see if this still persists for you?

Yeah, that works using a div with a class now.
I'd also updated the same code in the _public function, although I don't know where that is called from.


[Youtube] yt-dlp from scoop, unable to open for writing: [Errno 13] Permission denied

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2022.06.29 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[ ] I've read about sharing account credentials and I'm willing to share it if required

Region
Singapore
Provide a description that is worded well enough to be understood
When I use yt-dlp from scoop, I am unable to download some YouTube videos.
But if I manually download yt-dlp.exe in a new path and run ./yt-dlp, this problem does not occur.
I don't know if it's the yt-dlp.conf that causes the problem.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
> yt-dlp -vU -f 299+140 https://www.youtube.com/watch?v=LAVEKwkijLE
[debug] Command-line config: ['-vU', '-f', '299+140', 'https://www.youtube.com/watch?v=LAVEKwkijLE']
[debug] Portable config "D:\Scoop\apps\yt-dlp\current\yt-dlp.conf": []
[debug] Encodings: locale cp936, fs utf-8, pref cp936, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.06.29 [9d339c4] (win32_exe)
[debug] Python 3.8.10 (CPython 64bit) - Windows-10-10.0.22621-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 5.0.1-full_build-www.gyan.dev (setts), ffprobe 5.0.1-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {'http': 'http://<IP_ADDRESS>:10809', 'https': 'https://<IP_ADDRESS>:10809', 'ftp': 'ftp://<IP_ADDRESS>:10809'}
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
[debug] Downloading _update_spec from https://github.com/yt-dlp/yt-dlp/releases/download/2022.06.29/_update_spec
Latest version: 2022.06.29, Current version: 2022.06.29
yt-dlp is up to date (2022.06.29)
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=LAVEKwkijLE
[youtube] LAVEKwkijLE: Downloading webpage
[youtube] LAVEKwkijLE: Downloading android player API JSON
[debug] Loading youtube-nsig.0e7373c2 from cache
[debug] [youtube] Decrypted nsig fZcOi9i_C-Lae3Bju => CMaN4GAEhK9ZXA
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
[info] LAVEKwkijLE: Downloading 1 format(s): 299+140
[debug] Invoking http downloader on "https://rr1---sn-npoeenly.googlevideo.com/videoplayback?expire=1657613370&ei=2tfMYseHKJWc4t4P5qKykAw&ip=<IP_ADDRESS>&id=o-APErmBa2ty0oxAtUIP7KvsU8S3bJDquiGXaqsUggdFe4&itag=299&source=youtube&requiressl=yes&mh=S9&mm=31%2C29&mn=sn-npoeenly%2Csn-npoe7nsl&ms=au%2Crdu&mv=m&mvi=1&pl=19&initcwndbps=980000&vprv=1&mime=video%2Fmp4&gir=yes&clen=984237091&dur=1403.985&lmt=1594890109044637&mt=1657591502&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=ANDROID&txp=5432432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgRniykcAxBC8-1A96B9Rfpi2sLGVXK795E4N_GUmEjmECIF450UgYd_Mx_5pwA-TCCKiO5z6LZdb6OOJhZdYCtUsf&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAOWmuHT0kUEn32fbsiQxXULDIWvInRvBldYtkNg7Ia3HAiB2iTBV_-EoPGgjz_uOWNo89mXbB9StQGfgPLvOeaadkA%3D%3D"
[download] Unable to open file due to file access error. Retrying (attempt 1 of 3) ...
[download] Unable to open file due to file access error. Retrying (attempt 2 of 3) ...
[download] Unable to open file due to file access error. Retrying (attempt 3 of 3) ...
ERROR: unable to open for writing: [Errno 13] Permission denied: 'Review - 2020 Honda Civic Si Coupe HPT [LAVEKwkijLE].f299.mp4.part'
Traceback (most recent call last):
  File "yt_dlp\utils.py", line 625, in sanitize_open
yt_dlp.utils.LockingUnsupportedError: File locking is not supported

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "yt_dlp\downloader\http.py", line 266, in download
  File "yt_dlp\downloader\common.py", line 224, in inner
  File "yt_dlp\downloader\common.py", line 242, in sanitize_open
  File "yt_dlp\utils.py", line 628, in sanitize_open
PermissionError: [Errno 13] Permission denied: 'Review - 2020 Honda Civic Si Coupe HPT [LAVEKwkijLE].f299.mp4.part'

[debug] Invoking http downloader on "https://rr1---sn-npoeenly.googlevideo.com/videoplayback?expire=1657613370&ei=2tfMYseHKJWc4t4P5qKykAw&ip=<IP_ADDRESS>&id=o-APErmBa2ty0oxAtUIP7KvsU8S3bJDquiGXaqsUggdFe4&itag=140&source=youtube&requiressl=yes&mh=S9&mm=31%2C29&mn=sn-npoeenly%2Csn-npoe7nsl&ms=au%2Crdu&mv=m&mvi=1&pl=19&initcwndbps=980000&vprv=1&mime=audio%2Fmp4&gir=yes&clen=22723964&dur=1404.040&lmt=1594889230931004&mt=1657591502&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=ANDROID&txp=5431432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgDznj56yirTCi8UIgu6kwypmzFQCv2w7RD0ksWuxipB0CIQCPiWLo_-qTmZyNTx4rf1SEn1MgH_MuBB9r8OdEDipcIw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAOWmuHT0kUEn32fbsiQxXULDIWvInRvBldYtkNg7Ia3HAiB2iTBV_-EoPGgjz_uOWNo89mXbB9StQGfgPLvOeaadkA%3D%3D"
[download] Unable to open file due to file access error. Retrying (attempt 1 of 3) ...
[download] Unable to open file due to file access error. Retrying (attempt 2 of 3) ...
[download] Unable to open file due to file access error. Retrying (attempt 3 of 3) ...
ERROR: unable to open for writing: [Errno 13] Permission denied: 'Review - 2020 Honda Civic Si Coupe HPT [LAVEKwkijLE].f140.m4a.part'
Traceback (most recent call last):
  File "yt_dlp\utils.py", line 625, in sanitize_open
yt_dlp.utils.LockingUnsupportedError: File locking is not supported

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "yt_dlp\downloader\http.py", line 266, in download
  File "yt_dlp\downloader\common.py", line 224, in inner
  File "yt_dlp\downloader\common.py", line 242, in sanitize_open
  File "yt_dlp\utils.py", line 628, in sanitize_open
PermissionError: [Errno 13] Permission denied: 'Review - 2020 Honda Civic Si Coupe HPT [LAVEKwkijLE].f140.m4a.part'

Scoop installation is not officially supported. Download from releases of this repository and try with it.

Check that you have write access to your current directory (cd). Being a scoop install should not be relevant

@b4imetu as @pukkandan said, being a Scoop install should not matter. Scoop just downloads the archive and places the binary in place for use.
I ran the command you've used and it starts video download normally.
It looks like you don't have write access in the location you're trying to download in.

Check that you have write access to your current directory (cd). Being a scoop install should not be relevant

It looks like you don't have write access in the location you're trying to download in.

Thank you guys. I unchecked Read-only for yt-dlp folder, but it didn't start downloading normally. Didn't know how to fix it.

@pukkandan Sorry about bothering you, I thought yt-dlp would download by default in the folder where yt-dlp.exe is located, but it turns out it's a current directory (cd) problem.


perf(transformer/react-refresh): reduce allocations

Small optimization. When generating hash of hooks key, build the hash string directly in arena, avoiding an intermediate heap-allocated String, by using base64 crate's encode_slice method which writes directly into a slice.
base64 crate is rather inefficient - there are various optimizations that could be made. But not worth getting into that, as this is only place we use base64 crate in a performance-sensitive context.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#8018  👈 (View in Graphite)
#8017
#8016
main

How to use the Graphite Merge Queue
Add either label to this PR to merge it via the merge queue:

0-merge - adds this PR to the back of the merge queue
hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

Tiny perf improvement (like +0.1%).

Merge activity

Dec 19, 12:45 PM EST: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


use int instead of short in FindRep

Use int instead of short to fix a (false positive) vulnerability warning.
Even though is not necessary (because the value is limited to 0x204), the generated code seems to be better as well, because a zero-extension becomes unnecessary.

Merging, thanks for the fix.


notification_settings: Open push notification docs link in new tab

Merged, thanks @andersk!

Backported in https://github.com/zulip/zulip/pull/28571.


Out of bounds std::vector accesses in NDMeshStreamer

Original issue: https://charm.cs.illinois.edu/redmine/issues/1957

Reproducible with the following one-liner:
./build AMPI multicore-linux-x86_64 --suffix=asan -j8 -g3 -fsanitize=address && pushd multicore-linux-x86_64-asan/tests/charm++/streamingAllToAll/ && make OPTS="-g3 -fsanitize=address" -j8 && ./ataTest

Originally found on Windows, due to a bounds check only present in Microsoft's C++ STL in debug mode:
Charm build command: ./build LIBS mpi-win-x86_64 smp --enable-error-checking --without-romio --suffix=debug -j8 -g -O0 |& tee build_result_debug
$ make test
../../../bin/testrun  +p4 ./ataTest

Running on 4 processors:  ./ataTest
charmrun> /cygdrive/c/Program Files/Microsoft MPI/Bin/mpiexec -n 4  ./ataTest

Charm++> Running on MPI version: 2.0
Charm++> level of thread support used: MPI_THREAD_FUNNELED (desired: MPI_THREAD_FUNNELED)
Charm++> Running in SMP mode: 4 processes, 1 worker threads (PEs) + 1 comm threads per process, 0 PEs total
Charm++> The comm. thread both sends and receives messages
Charm++ warning> fences and atomic operations not available in native assembly
Converse/Charm++ Commit ID: v6.8.2-853-g4146bf788
Charm++> Disabling isomalloc because mmap() does not work.
CharmLB> Load balancer assumes all CPUs are same.
Charm++> Running on 1 hosts (1 sockets x 4 cores x 2 PUs = 8-way SMP)
Charm++> cpu topology info is gathered in 0.000 seconds.
size of envelope: 64

TEST 1: Using 2D TRAM Topology: 4 1
Elapsed time for all-to-all of       32 bytes sent in      1  iteration of 32 bytes each (    using TRAM): 0.000000 seconds
Elapsed time for all-to-all of       64 bytes sent in      2 iterations of 32 bytes each (    using TRAM): 0.000000 seconds
Elapsed time for all-to-all of      128 bytes sent in      4 iterations of 32 bytes each (    using TRAM): 0.000000 seconds
Elapsed time for all-to-all of      256 bytes sent in      8 iterations of 32 bytes each (    using TRAM): 0.000000 seconds
Elapsed time for all-to-all of      512 bytes sent in     16 iterations of 32 bytes each (    using TRAM): 0.000000 seconds
Elapsed time for all-to-all of     1024 bytes sent in     32 iterations of 32 bytes each (    using TRAM): 0.000000 seconds
Elapsed time for all-to-all of     2048 bytes sent in     64 iterations of 32 bytes each (    using TRAM): 0.000000 seconds
Elapsed time for all-to-all of     4096 bytes sent in    128 iterations of 32 bytes each (    using TRAM): 0.016000 seconds
Elapsed time for all-to-all of     8192 bytes sent in    256 iterations of 32 bytes each (    using TRAM): 0.000000 seconds

job aborted:
[ranks] message

[0-2] terminated

[3] process exited without calling finalize

---- error analysis -----

[3] on CS-DEXTERITY
./ataTest ended prematurely and may have crashed. exit code 0xc0000417

---- error analysis -----
make: *** [Makefile:22: test-ataTest] Error 127

Original date: 2018-11-19 22:22:31

Was this fixed by #1960?

Original date: 2019-03-06 20:31:22

This problem is caused by indexing -1 into a vector.
ataTest.exe!std::vector<int,std::allocator<int> >::operator[](const unsigned __int64 _Pos) Line 1733
	at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\vector(1733)
ataTest.exe!MeshStreamer<DataItem,SimpleMeshRouter>::checkForCompletedStages() Line 219
	at include\ndmeshstreamer.h(219)
ataTest.exe!MeshStreamer<DataItem,SimpleMeshRouter>::receiveAlongRoute(MeshStreamerMessage<DataItem> * msg) Line 672
	at include\ndmeshstreamer.h(672)
ataTest.exe!CkIndex_MeshStreamer<DataItem,SimpleMeshRouter>::_call_receiveAlongRoute_MeshStreamerMessage(void * impl_msg, void * impl_obj_void) Line 720
	at include\ndmeshstreamer.def.h(720)
ataTest.exe!CkDeliverMessageFree(int epIdx, void * msg, void * obj) Line 578
	at tmp\ck.c(578)
ataTest.exe!_invokeEntryNoTrace(int epIdx, envelope * env, void * obj) Line 621
	at tmp\ck.c(621)
ataTest.exe!_invokeEntry(int epIdx, envelope * env, void * obj) Line 632
	at tmp\ck.c(632)
ataTest.exe!_deliverForBocMsg(CkCoreState * ck, int epIdx, envelope * env, IrrGroup * obj) Line 1096
	at tmp\ck.c(1096)
ataTest.exe!_processForBocMsg(CkCoreState * ck, envelope * env) Line 1111
	at tmp\ck.c(1111)
ataTest.exe!_processHandler(void * converseMsg, CkCoreState * ck) Line 1275
	at tmp\ck.c(1275)
ataTest.exe!CmiHandleMessage(void * msg) Line 1678
	at tmp\convcore.c(1678)
ataTest.exe!CsdScheduleForever() Line 1932
	at tmp\convcore.c(1932)
ataTest.exe!CsdScheduler(int maxmsgs) Line 1859
	at tmp\convcore.c(1859)
ataTest.exe!ConverseRunPE(int everReturn) Line 1607
	at tmp\machine-common-core.c(1607)
ataTest.exe!ConverseInit(int argc, char * * argv, void(*)(int, char * *) fn, int usched, int initret) Line 1500
	at tmp\machine-common-core.c(1500)
ataTest.exe!charm_main(int argc, char * * argv) Line 1713
	at tmp\init.c(1713)
ataTest.exe!main(int argc, char * * argv) Line 6
	at tmp\main.c(6)
[External Code]

NDMeshStreamer.h:219, currentStage is -1.
  inline void checkForCompletedStages() {
    int &currentStage = myCompletionStatus_.stageIndex;
    while (cntFinished_[currentStage] == myCompletionStatus_.numContributors &&
           cntMsgExpected_[currentStage] == cntMsgReceived_[currentStage]) {

Original date: 2019-03-06 21:20:23

Running the streamingAllToAll test case on Linux with ASan also exposes these issues, and printf traces of the value of stageIndex show the same values on Windows and Linux. It looks like the reason this only crashes, as the issue title says, in Windows debug builds, is because Microsoft's C++ STL adds a bounds check to std::vector<T>::operator[] in debug mode.
public:
	_NODISCARD _Ty& operator[](const size_type _Pos)
		{	// subscript mutable sequence
 #if _ITERATOR_DEBUG_LEVEL != 0
		_STL_VERIFY(_Pos < size(), "vector subscript out of range");
 #endif /* _ITERATOR_DEBUG_LEVEL != 0 */

		return (this->_Myfirst()[_Pos]);
		}

Original date: 2019-03-15 17:45:23

Updating this issue to reflect its general nature as opposed to being Windows-specific.
The bug can be reproduced with this one-liner:
./build AMPI multicore-linux-x86_64 --suffix=asan -j8 -g3 -fsanitize=address && pushd multicore-linux-x86_64-asan/tests/charm++/streamingAllToAll/ && make OPTS="-g3 -fsanitize=address" -j8 && ./ataTest

Original date: 2019-03-18 16:22:24

Reassigning this since it appears to be a logic error in NDMeshStreamer.

Original date: 2019-03-19 16:40:31

Here is a patch for debugging that adds some printf tracing of the index value that goes out of bounds.


Powerline fonts look bad in Terminal

Issue Type: Bug
The terminal renders powerline characters incorrectly when starting a terminal.
Characters look like this:

Steps to reproduce:

Open Visual Studio Code
Open the integrated terminal

By the way, when you change the terminal font to another font, then back to the previous front, the terminal starts to render correctly, but you need to do this every time you open an integrated terminal.

Open terminal
Open settings (JSON)
Update the terminal.integrated.fontFamily setting:
You read: terminal.integrated.fontFamily = "Hack, monospace"
Rewrite to: terminal.integrated.fontFamily = "monospace"
Save
Rewrite to: terminal.integrated.fontFamily = "Hack, monospace"
Save
Terminal renders correctly

This is very similar to issue #120129, and I suspect it's for the same reason: the webgl renderer, which is now the default.
VS Code version: Code 1.55.0 (c185983a683d14c396952dd432459097bc7f757f, 2021-03-30T16:02:21.560Z)
OS version: Linux x64 5.8.0-7642-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (4 x 2300)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_renderer: enabled_onvideo_decode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
5.71GB (0.25GB free)

Process Argv
--no-sandbox --unity-launch --crash-reporter-id e0cd88a6-c143-4203-9298-dc9a627fda3a

Screen Reader
no

VM
0%

DESKTOP_SESSION
pop

XDG_CURRENT_DESKTOP
Unity

XDG_SESSION_DESKTOP
pop

XDG_SESSION_TYPE
x11

Extensions: none

Yep this is a duplicate of that, thanks
/duplicate


Parent_process recursion in sample events

Related: 996, 1004
The sample api does not seem to obey the schema directive that parent process should only be populated on one level of recursion per event.
I can see the value in sometimes going a few more levels up than normal to prepare consumers that it is a possibility however currently I am seeing 9 levels of parent_process in an account change event.
I've attached the JSON file containing the response from the server.
account-change.json

Ugh. OK. I haven't poked around with this part of the code yet.
Can you give me a sense of urgency for this problem?


Add menu swapper for Altar of the Occult to swap to magic book of choice

Many players use hosted occult altars to swap their magic book. Most of the time, it's back-and-forth between the standard book and one of the other books. With this extension, you'll be able to set which magic book they want to switch between.
This extension is disabled by default.
Example: https://gfycat.com/ThatDisastrousBobwhite

I've added a gif to explain what this does since apparently I'm horrible at explaining with my words.


Unpacking a dataclass just returns a dict

When calling unpackb I want to have a dataclass. In simple use cases I can easily call MyDataClass(**ormsgpack.unpackb(...)). But in more complex use cases the reconstruction can be complicated.

We pair ormsgpack with pydantic for the dict <-> dataclass conversions, combined with some custom type casting hackery.

from dataclasses import fields, is_dataclass
from typing import Type, TypeVar, Union

import ormsgpack
from pydantic import parse_obj_as
from pydantic.json import pydantic_encoder
from pydantic.typing import get_args, get_origin

V = TypeVar("V")

def serialize_msgpack(original: V) -> bytes:
    """
    Serializes a python object to msgpack. If you're having trouble, try adding a
    'to_dict' function to your class.
    For a higher level function for model storage see
    `pack_data_in_zip_file`
    """

    def default(obj):
        if hasattr(obj, "to_dict"):
            return obj.to_dict()
        else:
            return pydantic_encoder(obj)

    return ormsgpack.packb(original, default=default)

def deserialize_msgpack(T: Type[V], msgpack_bytes: bytes) -> V:
    """
    Deserializes objects from msgpack that were stored by
    `serialize_msgpack`.
    """

    obj = ormsgpack.unpackb(msgpack_bytes)
    instance = parse_obj_as(T, obj=obj)
    return cast(T, instance)

def cast(T: Type[V], v: V) -> V:
    if is_dataclass(v):
        if get_origin(T) is Union:
            T = next(
                A
                for A in get_args(T)
                if A.__name__ == v.__pydantic_model__.__name__  # type: ignore
            )
        return T(  # type: ignore
            **{f.name: cast(f.type, getattr(v, f.name)) for f in fields(v)}
        )
    else:
        return v

As suggested by @drewm1980 and documented in https://github.com/aviramha/ormsgpack#will-it-deserialize-to-dataclasses-uuids-decimals-etc-or-support-object_hook , deserializing a type to a dataclass should be done using a data validation library.


Tests get stuck when executing "vscode.openFolder" command in different test files

VS Code version: 1.54.2
Platform: Windows 10
Issue probably related: 87
Problem
Running these
tests_stuck.zip
tests via command-line results in an infinite loop
Steps to reproduce

Unzip example
Run npm ci in a terminal window
Run npm run test

Observed behavior
Tests get stuck in an infinite loop, switching between opening workspaceA and opening workspaceB

Duplicates https://github.com/microsoft/vscode-test/issues/87 -- we don't support this scenario


Allow resetting requests when radarr/sonarr switch to unmonitored

Description
When using the media cleaner plugin for jellyfin, I can removed movie/series files when they haven't been watched in a while. On radarr/sonarr, I can set a setting to unmonitor a movie/series when the files are deleted on disk. This way, the movie/series doesn't need to be searched for right after it has been deleted. All of this is great, but when the movie becomes unmonitored, there isn't a way to re-request it on jellyseer which still shows the request as completed and wants to redirect me to the movie on jellyfin (which has been deleted)
Desired Behavior
The desired behavior would be that once a movie/series is unmonitored on radarr/sonarr, the user should be allowed to request the movie again.
Additional Context
No response
Code of Conduct

[X] I agree to follow Jellyseerr's Code of Conduct

Media availability sync job will remove media that has been deleted from jellyfin


[BUG]

Describe the bug
Discrepancy between posts collected on the instamancer command with different parameters
To Reproduce
Steps to reproduce the behavior.
I noticed a discrepancy between how many posts I can collect between the command: instamancer user science.sam --type=csv and instamancer user science.sam -fvd. I performed these two command line on July 21st.
The first command allows me to collect 501 posts which does not include around 10 recent posts of this user, while the second command allows me to collect all of the 512 posts by the user. However, I really like the csv format and I thought the first command should allow me to collect all of this user’s posts, right?
Expected behavior
I thought that the two command lines should allow me to collect the same amount of posts.
Output
If applicable, add Instamancer's output in a code block
here

Setup (please complete the following information):

MacOS
Instamancer version [v1.1.4]
Node version [e.g. v11.6.0]
NPM version (if applicable) [eg. 6.5.0]

Additional context
Add any other context about the problem here.

Full mode retrieves posts not just from the API, as it also includes the posts pre-rendered on the page. There isn't a way to start from the very beginning of the API without modifying the pagination; so to simplify things, I just restricted that functionality to full mode only.

Full mode retrieves posts not just from the API, as it also includes the posts pre-rendered on the page. There isn't a way to start from the very beginning of the API without modifying the pagination; so to simplify things, I just restricted that functionality to full mode only.


CVAT and the way from lan into internet

Hi,
we have a discussion inside of our enterprise. Therefore I have the following question to you:
We want to load a model from outside our lan - for example from roboflow. How is the way of this process ? The user starts the process over his browser. Who makes than the further work: his browser or the cvat-container ? In other words: Must we give the cvat-container access into internet ? This is the controversial subject in our team.
If the cvat-container must access into internet, have we the possibility to build a mirror for roboflow in our enterprise ? This could be the next question.
Best Regards
Rose

Everything is proxied through cvat containers, so, it needs access to the Internet.
I am not sure it will work with mirrors, it was not supposed during implementation, but you may try.


Update cloud API action wording

fixes #2249

I'm slightly concerned we leave "Libraries" out - it was pretty helpful for this case. How about Manage Cloud APIs and Libraries...?

what about:

Add Cloud Libraries and Manage Cloud APIs
Manage Cloud APIs

its a bit long, but its the most descriptive / correct. wdyt?

Looks good to me, I agree.

updated


Website breaks after running build command

Description
Running npm run build or npm run preview causes my Astro site to break in appearance and function from the development view.
Screenshots
Website after running npm run dev:

Website after running npm run build:

Setup
My Astro project is set up using the "Just the basics" template with 1.0.0-beta.33". I'm working on a MacBook Air (M1, 2020) running macOS Monterey.
To Reproduce

Install Astro "Just the basics" template
Run npm run build
Open index.html in the browser

Hi @david-gagne! Thanks for opening an issue. This is the repository for the Astro documentation, so I’m going to transfer this across to the main Astro repo!


Add net_http_connect_on_start example with explicit domain

While debugging the net_http_connect_on_start gotcha with Capybara I found it's sometimes necessary to restrict the scope of net_http_connect_on_start to prevent network connections to external services while allowing (and fixing) connections to the local test server.
This PR pulls information from this comment into the readme and adds an example to show net_http_connect_on_start accepts domains as well as boolean values, which resolved the issue for me.

@spikeheap I have just encountered this situation and I think your addition to the README makes a lot of sense. I'm sure this will save others time as well. Thanks for your blog post on the topic: https://ryanbrooks.co.uk/posts/2023-01-17-capybara-webmock-allow-http.html
@bblimke @myronmarston Is there a chance you can review and merge this within the next days/weeks? Thanks a lot.
@silvermind FYI

There doesn't seem to be appetite for this PR, so closing to clean up my PR list. No worries 🙇

@spikeheap really sorry for not getting to your PR sooner. Thank you for the PR. That's super useful. Also really appreciated your blog post. Thanks for all the effort you put in.


Staged files block others in the same add from going through

Staged files cannot be added, which is appropriate, but if they are included as part of a group of files that are added in one, they block the whole add from going through. As it is now, it would be very inconvenient to add a large amount of files that were mixed evenly between staged and unstaged. It might be better to allow the unstaged files to be added, as well as putting up the notification about trying to add staged ones.

Whoever takes this on should first look at what git does at the command line in this situation.