fix: WebVTT position setting not working

Fixed implementation of specs: https://www.w3.org/TR/webvtt1/#webvtt-cue-position The 'auto' value was missing for position rule, plus text alignment was not used if no alignment was given for position.
Fixes https://github.com/shaka-project/shaka-player/issues/4486

@joeyparrish Do you need anything else from me in order to proceed with this PR?

@Robloche, no, I'm just very far behind on PRs.  Trying to get caught up on bug fix PRs today.

I think for this PR, what I really need is to add some layout/screenshot tests that exercise specific subtitle parsers like VTT and TTML.  Then I could:

Check that your changes don't break any existing WebVTT layouts
Add a regression test that covers this change

Apologies for delaying your work further, but I think tests like those are long overdue.

I think for this PR, what I really need is to add some layout/screenshot tests that exercise specific subtitle parsers like VTT and TTML. Then I could:

Check that your changes don't break any existing WebVTT layouts
Add a regression test that covers this change

Apologies for delaying your work further, but I think tests like those are long overdue.

Just to be clear, you want me to add tests in ui_text_displayer_unit.js, right?

Just to be clear, you want me to add tests in vtt_text_parser_unit.js and ui_text_displayer_unit.js, right?
EDIT: I wrote some regression tests in vtt_text_parser_unit.js. Now, I need help on how to generate official layout screenshots.

Sorry for being unclear!  I was offering to create some basic layout tests and screenshots in our lab that cover existing functionality, then come back to this PR and add a new screenshot.  That way, we not only have a new test for this fix, but we can be sure that it doesn't accidentally change the tests for what was already working.
But the regression unit tests you added are good, too.  Thanks!

My bad! I indeed misunderstood you.
So, my part is done here.
Thanks for the screenshots.

Merry Christmas, @joeyparrish!
Could I have an update on this PR?
If I can do anything to speed up the process, please do tell me.

Any update @joeyparrish?
I don't want to be too pushy but we're waiting for this PR in order to release our next app's version.
Again, if there's anything I can do to help you, feel free to ask.

Apologies.  I haven't had time yet.  I promise to prepare new releases as soon as this is resolved.

Apologies. I haven't had time yet. I promise to prepare new releases as soon as this is resolved.

Thank you so much.
Any idea of timing? Maybe in the following days? Or weeks?

I'm working on it now, and I hope to have the first step in review later today.  Here is what to expect:

PR to refactor, extracting commonalities in layout test setup and steps
PR to add new tests for WebVTT layout

I'm testing your PR now against a work-in-progress VTT test suite, and I'm seeing several regressions.  I'll try to get the tests reviewed ASAP so you can see for yourself and iterate on the results.

OK, thanks.

@Robloche, we just merged the new end-to-end layout tests.  After running the tests locally, you can review the results on your local web server using the tools at /test/test/assets/screenshots/review.html.  I hope this is a useful guide for your work.  Thanks!

I launched the tests then check review.html but most of the -newand -diff images are missing.

In fact, I only see the screenshots for Windows/Chrome and Windows/Edge.
Am I missing something, here?
My second issue is about the differences.
The red area says there are differences but I don't think I changed any code related to this (on top of these differences being very slight):

Could you please enlight me about these tests?

I launched the tests then checked review.html but most of the -newand -diff images are missing.
In fact, I only see the screenshots for Windows/Chrome and Windows/Edge. Am I missing something, here?

No, that's correct.  If you only run the tests on Windows/Chrome and Windows/Edge, only those will have -new and -diff images, because only those were run.  This is normal.  Use the filters at the top to show only one or both of the platforms you have.

My second issue is about the differences. The red area says there are differences but I don't think I changed any code related to this (on top of these differences being very slight)

Those are often sub-pixel rendering differences around edges, or slight color variations for your graphics card and/or monitor.  You can and should ignore those, and those tests should still be passing.
Please use the filters in review.html to select only the tests that fail or that you are working on.

Thanks, that's clear.
I'm working on a totally unrelated thing at the moment but I'll try to find time to address this as soon as possible.

What I saw with your PR was that the positioning in the new webvtt tests was off.  You should merge main in and try those new tests.

I merged main and now I see the issues...

@joeyparrish
I spent quite some time, digging into the specs, Shaka's code and my fix proposal.
I found some errors in my implementation but, I mostly found errors in the tests.
For instance, take this one:

This is the screenshot that should be matched to successfully pass the test.
But clearly, it's wrong because, I you can see, the cue box is centered around the 50% mark.
I should be centered around the 90% mark, like position:90%.
I read multiple times the specs at https://www.w3.org/TR/webvtt1/#webvtt-cue-position-alignment and I really think it should be displayed like this:

Of course, if I'm right, some of the tests should be updated to match the specs.
I made a quick demo that you could play with at: https://codesandbox.io/s/pedantic-chatterjee-cr1enf
It embeds a version of Shaka Player that includes my fixes.
Please have a look and let me know what you think.

There are also issues with the following tests: align-end, align-end-long, align-start and align-start-long.
Like the specs says, if text alignment is left (resp. right), the auto position translates to 0% (resp. 100%):

But if text alignment if start or end, the auto position translates to 50%:

More over, since no position alignement is given, it falls back to auto, and the specs tells us that this translates to line-left (resp. line-right) when text alignment is start (resp. end):

And this is obviously not what the current tests show, since both cue boxes are centered at 50%:

What I would expect here, is:

Oh, there are definitely issues prior to your PR.  As I created that test suite based on the upstream VTT web platform tests, I left comments on the tests where we clearly did the wrong thing.  We needed a baseline to start from, to keep us aware of changes, and to make sure that future PRs are only making things better and never worse.

OK. I understand.
So what are the next steps?
Tell me if I can be of any help.

So what are the next steps?

Double-check your changes against the test suite.  If you look in test/text/web_vtt_layout_integration.js, you'll see FIXME comments detailing what we know is wrong with our rendering of those cases.  Whatever you change, check that it's both correct and an improvement, and update/delete those comments as appropriate.  When you're satisfied with the work you've done, we'll review the results.
I just built a GitHub Actions workflow (PRs #4991 and #4993) to update a PR with screenshots from all platforms in our test lab.  It's still a bit rough, but mostly working, and I can trigger that for you at any time to update all the changed screenshots.

Also, thank you again for working on this, and for being patient with us while we build these tools to make sure we are moving in the right direction!  Changes in subtitle rendering have been painful for us in the past without these tools, and regressions were extremely common.  You are one of the first to go down this path with us.

I'm not sure what I'm supposed to do...
The following UI tests are OK with my fixes (hence the FIXME comments should be removed):
https://github.com/shaka-project/shaka-player/blob/ac963a9d1ac78ebd22eee6df49c48e520f9c9969/test/text/web_vtt_layout_integration.js#L94
https://github.com/shaka-project/shaka-player/blob/ac963a9d1ac78ebd22eee6df49c48e520f9c9969/test/text/web_vtt_layout_integration.js#L106
https://github.com/shaka-project/shaka-player/blob/ac963a9d1ac78ebd22eee6df49c48e520f9c9969/test/text/web_vtt_layout_integration.js#L118
https://github.com/shaka-project/shaka-player/blob/ac963a9d1ac78ebd22eee6df49c48e520f9c9969/test/text/web_vtt_layout_integration.js#L130
https://github.com/shaka-project/shaka-player/blob/ac963a9d1ac78ebd22eee6df49c48e520f9c9969/test/text/web_vtt_layout_integration.js#L155
For this one, the UI test is OK but the Native one is still incorrect:
https://github.com/shaka-project/shaka-player/blob/ac963a9d1ac78ebd22eee6df49c48e520f9c9969/test/text/web_vtt_layout_integration.js#L180

@joeyparrish Any update on the tests?

I'm not sure what I'm supposed to do...
The following UI tests are OK with my fixes (hence the FIXME comments should be removed):

Then please remove/update those comments and upload your latest changes.  Let us know when you're ready for review.  I'll run the workflow to update your PR with the latest screenshots on all platforms, and I'll review the diffs.

I'm not sure what I'm supposed to do...
The following UI tests are OK with my fixes (hence the FIXME comments should be removed):

Then please remove/update those comments and upload your latest changes. Let us know when you're ready for review. I'll run the workflow to update your PR with the latest screenshots on all platforms, and I'll review the diffs.

I can remove them, but I cannot update them since I don't know how to proceed to fix the invalid test images.

@joeyparrish Could you please clarify what I'm supposed to do?

I can remove them, but I cannot update them since I don't know how to proceed to fix the invalid test images.

I will run an automated workflow on GitHub that will update your PR with new images on all platforms.  Please let us know when you are ready for that.

Well, I am ready.

Okay, thanks.  I'm using the lab for another PR at the moment, but I'll run yours next.

Your job is now in progress: https://github.com/shaka-project/shaka-player/actions/runs/4356666987

I think there's a fundamental problem with the width+padding model of alignment you've implemented, and it seems to affect a large number of test cases negatively. None of these effects are platform-specific, and so you didn't need to wait for me to test them in the lab to see the effects.

I think my latest changes have not been pushed to this PR because when I run the tests on my computer, the only faulty tests I see are outdated tests. I'll check my recent commits...

I fully understand that you have another agenda (one that actually feeds you), no worries.
Is there any possibility that someone else have a look at this issue and at the specs?
Maybe we're both wrong, after all.

One possible path forward is for me to spend some time trying to fix these test cases in a different way, informed by this PR. I'll let you know what I can do when I have time to look at this again. In the meantime, we welcome other perspectives and alternate approaches from the rest of the community.

OK for that.

@Robloche can you rebase and resolve the conflicts? Thanks!

@Robloche can you fix the build errors? Thanks!

@Robloche can you rebase and resolve the conflicts? Thanks!


Don't Merge! PR real time test for webhook case

Docs Build status updates of commit 70325f9:
:clock10: Pending: waiting for processors (14 builds ahead of you)
:warning: Docs Build is busy, currently there are 14 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 70325f9:
:clock10: Full build: the average full build time is 7 min(s) 26 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 70325f9:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-BackendEngineExceptionError] An exception occurred during the build process. Please check the raw log and retry building your content again. If the issue persists, please open a ticket in https://SiteHelp and include the URL of publishing report as well as below information: One or more errors occurred..

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


NfcManager.java Build Error with setNdefPushMessage

NfcManager.java -> setNdefPushMessage ->  nfcAdapter.setNdefPushMessage(msgToPush, currentActivity);
Issue Description:
When trying to build the Android project, I encountered an issue related to NfcManager.java and the setNdefPushMessage function. Specifically, the build fails if I comment out the line nfcAdapter.setNdefPushMessage(msgToPush, currentActivity);. However, the build succeeds when this line is included.
Expected Behavior:
The build should complete successfully even when the line nfcAdapter.setNdefPushMessage(msgToPush, currentActivity); is commented out.
Actual Behavior:
The build fails when the line nfcAdapter.setNdefPushMessage(msgToPush, currentActivity); is commented out.
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(context); nfcAdapter.setNdefPushMessage(msgToPush, currentActivity); callback.invoke();

This function has been removed in the Nfc Adapter Documentation. You can find more information about this change at the following link:
Changes in android.nfc.NfcAdapter

yes, this error is coming with react native version
"react-native": "0.72.4",
"react-native-nfc-manager": "^3.14.6",

Hi @nicolasburtey @adeelcheeema @kirandchavan you're right! I have removed the deprecated api and released v3.14.7, please give it a try & thanks for the information!


SDK: data mappings (WIP)

PR-Codex overview
This PR focuses on updating dependencies, adding new features, and improving code structure.
Detailed summary

Updated @dappnode/dappnodesdk dependency to version 0.3.11.
Added MAX_BYTE_SIZE constant in consts.ts.
Added INVALID_DISPUTE_DATA_ERROR constant in index.ts.
Added new fields version and metadata in dispute template JSON files.
Updated environment variables in .env.example and .env.devnet.public.
Added new functions and types in various files.
Added new tests and test scripts.
Improved code structure and formatting.

The following files were skipped due to too many changes: kleros-sdk/src/dataMappings/actions/callAction.ts, kleros-sdk/config/v2-disputetemplate/escrow/DataMappings.escrow.jsonc, kleros-sdk/src/dataMappings/disputeDetails.ts, kleros-sdk/package.json, web/package.json, kleros-sdk/config/v2-disputetemplate/reality/example3/DisputeTemplate.json.mustache, kleros-sdk/src/dataMappings/actions/eventAction.ts, kleros-sdk/src/dataMappings/utils/actionTypes.ts, kleros-sdk/src/dataMappings/actions/fetchIpfsJsonAction.ts, kleros-sdk/src/dataMappings/utils/DisputeDetailsValidator.ts, kleros-sdk/src/dataMappings/dataMapping.json, kleros-sdk/config/v2-disputetemplate/reality/example3/DisputeMappings.json, kleros-sdk/config/v2-disputetemplate/escrow/DisputeDetails.escrow.jsonc.mustache, kleros-sdk/config/v2-disputetemplate/moderate/DisputeDetails.moderate.json, kleros-sdk/src/dataMappings/utils/actionTypeValidators.ts, kleros-sdk/src/dataMappings/utils/disputeDetailsSchema.ts, kleros-sdk/src/dataMappings/executeActions.ts, kleros-sdk/config/v2-disputetemplate/NewDisputeTemplate.schema.json, kleros-sdk/src/dataMappings/decoder.ts, web/src/components/DisputeCard/index.tsx, kleros-sdk/src/dataMappings/retrieveRealityData.ts, web/src/components/DisputePreview/DisputeContext.tsx, kleros-sdk/src/dataMappings/dataMapping.ts, kleros-sdk/test/disputeDetailsSchema.test.ts, web/src/pages/Cases/CaseDetails/Overview/index.tsx, kleros-sdk/config/v1-metaevidence/escrow3.json, web/src/pages/DisputeTemplateView.tsx, kleros-sdk/test/dataMappings.test.ts, contracts/scripts/disputeCreatorBot.ts, yarn.lock

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Work will continue on a different branch.
DONE

a rudimentary implementation of the data mappings in kleros-sdk/src/dataMappings/actions
sdk basic data types, schema validator (Zod) and tests (Vitest)
court display of the case details using the sdk: by executing the data mappings and populating the dispute template.
dispute preview for development purposes at route #disputeTemplate in web/src/pages/DisputeTemplateView
the web package now depends on kleros-sdk instead of contracts
the kleros-sdk package depends on contracts

TODO

consolidate kleros-sdk/config/v2-disputetemplate, escrow is the most up-to-date.
consolidate the types between

web/src/context/NewDisputeContext.IDisputeTemplate used by the Dispute Resolver
kleros-sdk/src/dataMappings/utils/disputeDetailsTypes

use the dispute context info more explicitly, don't hardhat arbitrable addresses like in kleros-sdk/src/dataMappings/decoder.ts
the dispute preview page should provide input fields for the context info.
more


Don't dump 'allow'-ed extra by default

In v1, if you had a model with extra = 'allow' in the model config, it would include the extra fields when dumping the model.
If we do this, we end up with the following (possibly strange/surprising?) behavior:
def test_serialize_extra_allow_subclass_2() -> None:
    class Parent(BaseModel):
        x: int
        model_config = ConfigDict(extra='allow')

    class Child(Parent):
        y: int

    class Model(BaseModel):
        inner: Parent

    m = Model(inner=Child(x=1, y=2))
    assert m.inner.y == 2
    assert m.model_dump() == {'inner': {'x': 1}}
    assert json.loads(m.model_dump_json()) == {'inner': {'x': 1}}

    m = Model(inner=Parent(x=1, y=2))
    assert m.inner.y == 2
    assert m.model_dump() == {'inner': {'x': 1, 'y': 2}}
    assert json.loads(m.model_dump_json()) == {'inner': {'x': 1, 'y': 2}}

I would argue this is the correct behavior, because the Child class has said that y is one of its fields, not arbitrary extra, and we have decided (for FastAPI-security-related reasons) that when serializing, we use the schema of the type on which the method is called, rather than asking instance attributes how they want to be serialized.

However, because of the risk of accidentally converting instances to dicts and back at some point in whatever code a user might use to interact with their objects, I would go a step farther and make the argument that there is similar risk for security issues whenever we include allowed-extra attributes when serializing model instances.
Therefore, I think in v2, we should change the default behavior to exclude any allowed extra attributes by default, though we can retain a flag to include them for backwards compatibility.

One thing I foresee potentially being a feature request in the wake of these changes is the ability to make it so you do ask field items how they want to be serialized. However, I think we can implement that by using an any serialization schema, which I think can be done by way of an annotation. So I don't think we need to worry too much about that for now (though it may make sense to add this annotation to annotated_arguments).

we have revalidate which would avoid this issue by rebuilding child into parent.
In theory, if this became a problem we could detect a subclass in the model serializer, and do something complicate to work out which things are fields, and which are extra.

I think since we now have SerializeAsAny we can close this.


Files created by zimmer don't work in Kiwix Desktop / Serve

Finally I come to the main issue I was trying to report (the other issues arose when trying to rebuild a zim, just to make sure this issue was still present): It seems that files created by zimmer cannot be opened by any of the current "Official" Kiwix software.  To reproduce:

node wikizimmer http://prepaid-data-sim-card.wikia.com/wiki/Alaska
node zimmer --optimg prepaid-data-sim-card.wikia.com
Download Kiwix Desktop for Windows from https://www.kiwix.org/en/downloads/, & try to open the .zim file.  It crashes.
Download Kiwix Tools from https://www.kiwix.org/en/downloads/kiwix-serve, & try: kiwix-manage.exe test.xml add thezim.zim. It reports "Assertion failed" & exits.
Likewise, kiwix-serve.exe thezim.zim reports the same assertion & exits.

Note that I also reported this to the kiwix people awhile back, but it doesn't seem like they'll fix it, as it only happens for zims from zimmer. However, you can see the many errors reported by zimcheck in that report here: https://github.com/kiwix/kiwix-desktop/issues/270

Just checked. It's fine with the Linux version of the Kiwix.
BTW this download needs some clean up:
wikizimmer.js https://prepaid-d~ki/Alaska --remove nav,iframe,.editsection

Correct, zims produced with zimmer work on Linux, but not on Windows.

Kiwix at the Windows 7 crashes for me  even before it opens any window.
Kiwix for Android is fine with the zim generated.

Kiwix at the Windows 7 crashes for me even before it opens any window.

Yup, exactly.  You can see the underlying error by trying to open it with any of the kiwix-tools from commandline, i.e.
kiwix-serve.exe prepaid-data-sim-card.wikia.com.zim

The error it shows (same as kiwix-manage, & presumably the same underlying error that crashes the desktop app) is:
Assertion failed at ../../SOURCE/libzim_release/src/file_reader.cpp:88
 offset.v[1012801] < _size.v[1012801]

Kiwix at the Windows 7 crashes for me even before it opens any window.

Yup, exactly. You can see the underlying error by trying to open it with any of the kiwix-tools from commandline, i.e.

No, I mean the Kiwix desktop for Windows crashes even before I have a chance to open the file -- no GUI pops up at all.

Oh, weird. I'm on Win10 - haven't had any issues with it, though I personally actually use kiwix-serve primarily.  I just mentioned Desktop as I think it's the most common interface for Windows users.  Were you able to reproduce it with kiwix-serve?

kiwix-serve.exe can't even start at the Windows 7 complaining missing entry point_create_locate at the msvcrt.dll.

kiwix-serve.exe prepaid-data-sim-card.wikia.com.zim

The error it shows (same as kiwix-manage, & presumably the same underlying error that crashes the desktop app) is:

Assertion failed at ../../SOURCE/libzim_release/src/file_reader.cpp:88
offset.v[1012801] < _size.v[1012801]

Perhaps it would be better to ask the libzim developers about this issue.

kiwix-serve.exe can't even start at the Windows 7 complaining missing entry point_create_locate at the msvcrt.dll.

Must be some missing dependency on your system, or it doesn't support Windows 7 (which has been deprecated & is no longer receiving updates from MS).  Try in a Win10 VM?

Perhaps it would be better to ask the libzim developers about this issue.

I did report it to them ~7 months ago. The view seems to be that this only happens with zims produced by zimmer, not any of the official zims or from any other sources, so it's an issue with zimmer.

As an example see https://github.com/openzim/libzim/issues/196
But frankly speaking I'm only interested in Linux and Android versions of the Kiwix. I'm sorry, but perhaps it's easier to remove the Windows (and MacOS) from the Redme.

Bummer.  Seems like with all the work you've already put in & how close it is, it'd be nice to have this great tool usable by as wide an audience as possible (aka by producing compatible zims), but if time doesn't permit, I understand. Your software, your call :)

Well, it's quite possible it's a bug /design flaw in the libzim.
So, the Kiwix desktop at the Linux VM?

So, the Kiwix desktop at the Linux VM?

Sorry? What do you mean? I'm using kiwix-serve on Linux, just suggested testing it in a Win10VM, since it seems like it might not work on Win7 anymore...?

Sorry, it should read that the kiwix-serve doesn't show such an issue on the Linux.

...Oops, sorry, I miswrote too~ I meant to say that I'm using kiwix-serve on Windows, hehe.
But yeah, I see that the zimmer zims only fail on Win, not Linux.
Unfortunately Linux might not be feasible for many users, but I understand if it's not a priority to support all platforms.

BTW if I remember correctly the Win10 has its own facility to run Linux apps semi/natively.

Also AFAIK there is a pure JS implementation of the Kiwix.

Yup, you're thinking of WSL, a cygwin-like Linux environment that more advanced users can install on recent versions of Win10.

As it's fine for Linux Kiwix, but not for Windows version then the issue needs to be addressed to the Kiwix developers.


⚠ Jenkins Plugins Artifactory has degraded performance

In d56963f, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1191 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 7b09cd2 after 28 minutes.


source code for google-assistant-library

Where can I find the source code for google-assistant-library?
I get buttery smooth audio playback with the assistant-library on the RasPi but super choppy with the assistant-grpc implementation. Tweaking the audio-block-size and other parameters didn't seem to have any significant effect.
Would love to look into the library source to see what audio libraries and settings are being used.

@krsnaa while the source code for google-assistant-library is not currently available, it'd be interesting to discuss how to improve the sound quality for the google-assistant-grpc samples.
Can you open a new issue, in the repo detailing:

which sound card you are using
if you've got similar issue/chopiness with aplay/arecord
if you've got similar issue/chopiness with https://python-sounddevice.readthedocs.io samples

@krsnaa really glad to hear the library is working well for you! I'm afraid that the binary is closed source for the time being however, sorry for the difficulties if there is anything we can do to improve the library to better suit your needs please don't be afraid to reach out.

https://github.com/googlesamples/assistant-sdk-python/issues/359

Hi Johan, with google-assistant-library was deprecated, may be source code will available? Thank you for considering my request.


Is there any callback function to handle TIMEOUT event?

Hi!
I'm working on a project where I need to handle task timeout events and other unexpected errors.
Is there any method that can execute a custom callback function when a task times out or encounters an error?
I've read the documentation, and the closest thing I found is the hook parameter.
However, I've noticed that the hook is only called when a task completes normally.
It seems that Django Q doesn't provide a method to handle cases where a task abnormally terminates, such as when it times out or encounters an error.
Here's what I'm trying to achieve:
def timeout_handler(task):
    print(f"Task {task.id} timed out after {task.timeout} seconds")
    # Custom logic to handle timeout
    # Update task status in database
    # Send notification
    # etc.

def error_handler(task):
    print(f"Task {task.id} encountered an error: {task.result}")
    # Custom logic to handle errors
    # Log the error
    # Update task status
    # Send alert
    # etc.

task_id = async_task(
    run_my_task,
    arg1,
    arg2,
    timeout=3600,
    timeout_handler='path.to.timeout_handler',
    error_handler='path.to.error_handler'
)

Is there a way to implement this kind of functionality in Django Q? If not, what would be the recommended approach to handle these scenarios?
And, I've noticed that Python RQ (https://python-rq.org/docs/#job-callbacks) has similar functionality:
from rq import Callback
queue.enqueue(say_hello,
              on_success=Callback(report_success),  # default callback timeout (60 seconds)
              on_failure=Callback(report_failure, timeout=10), # 10 seconds timeout
              on_stopped=Callback(report_stopped, timeout="2m")) # 2 minute timeout

Is it possible to implement something similar in Django Q? Having this kind of callback system would be extremely helpful for handling various task states, including timeouts and errors.
Thank you for your time and for maintaining this great package! :)

There isn't something like this right now, but I think this would be worthwhile to implement. Especially for cleaning up tasks.
I think it would be fairly straightforward to add this. We catch the timeout here, so we would have to trigger a new async_task from there to trigger the timeout event: https://github.com/django-q2/django-q2/blob/cb253357fbbc5489d69b9f1c31cbe8ed79808bcd/django_q/worker.py#L106-L107
Though a better setup would be to have a more advanced "guard" system that will take care of it, but that's a fairly big rewrite.

Hi GDay!
Thank you for your quick response and for considering this feature.
I just added 2 simple hooks for handling timeout and failure exceptions.
https://github.com/django-q2/django-q2/compare/master...NatLee:django-q2:feat/add-timeout-and-failure-hooks
This implementation allows users to define custom functions to handle timeout and failure events, similar to the existing hook parameter for successful task completion.
Example usage:
def timeout_handler(task_dict):
    print(f"Task {task['id']} timeout.")
    # Custom timeout handling logic

def failure_handler(task_dict):
    print(f"Task {task['id']} failed with error.")
    # Custom failure handling logic

async_task(
    my_function,
    hook='path.to.success_handler',
    timeout_hook='path.to.timeout_handler',
    failure_hook='path.to.failure_handler'
)

One limitation of the current implementation is that the task passed to the handler functions is a dictionary rather than a Task object.
I think that this initial implementation might be a bit rough around the edges.
It could potentially be more concise and elegant, but it works in my scenarios. :3
Thank you very much!🫡

Great work! I have made a PR for it and will probably make a few changes and then merge. Thanks a lot!!

Thank you! I appreciate your quick response and action.
I understand that adding this new feature to an older project that hasn't been fully refactored yet can be challenging, even though it's quite useful.
Thank you again for your work on this. 👍


Uncaught TypeError: Cannot read property 'left' of undefined with Chart.js 2.7

After updating chartjs to 2.7.0 get this error

Uncaught TypeError: Cannot read property 'left' of undefined.

min = helpers.isValid(options.xMin) ? options.xMin : xScale.getPixelForValue(chartArea.left);
max = helpers.isValid(options.xMax) ? options.xMax : xScale.getPixelForValue(chartArea.right);

How to reproduce.
When chart.update() is called and in options only one of xMin or xMax I get this error, because chartArea is undefined

I have this bug too.
It seems that setDataLimits() is being called before the chartArea property has been created. setDataLimits() is called by initialize() inside module.exports() and that doesn't seem like the right place. I've scratched my head over this for an hour and cant see where the right place to call setDataLimits() is.
I did find that changing the code as follows made everything work ok for me on a bar chart:
min = helpers.isValid(options.xMin) ? options.xMin : 0;
max = helpers.isValid(options.xMax) ? options.xMax : 1;

Chart.js v2 is no longer supported


Use 1ES managed images for image generation in Helix-machines

Motivation
Currently, we generate all of our Azure VM images by making calls to the Image Factory service directly. We maintain the infrastructure to do this in the helix-machines repository.
Image factory is currently used for three scenarios:

Generating the non-standard base images like Mariner, VS, and windows: Everything in this folder: https://dnceng.visualstudio.com/internal/_git/dotnet-helix-machines?path=/base-images. We generate these through the Image Factory CLI and the image generation pipeline. These images never use any of our custom artifacts, and use Image factory's base artifact source in order to install all the windows updates and the vs components.
Generating the helix images: These are additional calls to image factory on top of both the public gallery, and the base images we generate above to install all the Helix artifacts and make these machines Helix-ready. This happens in the helix-machines main pipeline, and once they are generated, they are sent to an Azure compute gallery where the different Helix scale sets pull the image versions from.
Generating the 1ES Hosted pool images: This goes through the same path as 2. But once the image is ready, we add it to a 1ES image so that the hosted pools can use them. This is a bit of a waste, because the managed image is only used as a container for the image we already generated manually by calling Image Factory. An example of such image is the build.ubuntu.1804.amd64 1ES image. These 1ES images we generate for hosted pools are of the public gallery type.

Since the time when we adopted Image Factory and 1ES hosted pools, some developments have made it so that we are using unsupported or deprecated models.
Mainly, The Image Factory team is working on a V3 implementation of their service which requires changes in our infrastructure to adopt, and the 1ES team has deprecated our current model for hosting the 1ES hosted pools in favor for a model where the pools are hosted in their managed subscriptions.
1ES offers the service to generate managed images, which:

Make all calls to image factory completely transparent to the user, meaning we don't need to maintain infrastructure for communicating with Image Factory
Support copying the underlying image to VM Compute galleries so that we can use the images for our existing scenarios.
Provide automatic updates to the image when there is an OS update or the artifacts added to the images changes
Can be used as-is with other 1ES infrastructure offerings such as Cloudtest and 1ES hosted pools.

As part of our journey to integrate our infrastructure with 1ES' we should take advantage of this offering and look into reducing our own custom infrastructure.
Business objectives

[ ] Better align with 1ES offerings by moving VM image generation for Build and test machines into 1ES managed images.
[ ] Reduce the number of direct dependencies our services rely on by removing our direct dependency on Image Factory APIs.
[ ] Stop using deprecated hosting models by moving the 1ES hosted pools that use our images out of our own subscriptions and into 1ES managed subscriptions.

One Pager
TBD

That automation is very annoying.

I'm reopening this issue as a sort of sub-epic for #376 just for tracking the 1es pieces


Use host header when constructing the forwarded header

Fixes #1333

@spencergibb @TYsewyn @OlgaMaciaszek would appreciate your thoughts on this change.  It will certainly change the behavior of how we construct the header and could effect users who were depending on the old way we constructed the header.  Although it appears the way we were constructing the forwarded header before was wrong.

@patricklucas is this the behavior you were envisioning?

@patricklucas is this the behavior you were envisioning?

Yes, I believe so. Thanks for taking this on.

FYI I'm however curious how this will behave when running on K8s.

I don't think this change will make things any worse—MDN is fairly clear that the host param of the forwarded header should be the "Host request header field as received by the proxy".
Also, for what it's worth, K8s services are TCP (not HTTP) proxies, so no headers would be set, and which seem to preserve the source IP where possible.
The application where I ran into this actually runs on K8s, so I might also be able to try it out in the near future once I figure out how to make a custom build of spring-cloud-gateway and integrate it.

Sorry, I was a little bit wrong in my previous comment.
K8s does support the configuration of a service with the HTTP protocol but only when its type is of LoadBalancer and if the cloud provider supports it IIRC.
When the host header is not set (correctly) then that needs to be fixed on the cloud provider's side and not within K8s. This is where I was wrong.
But like I said this would be an issue with all proxies that are not, or incorrectly, doing this.


question: about privacy

If I have a negative comment about a teacher, how to keep myself anonymous and prove whether I am a student of CSU?

I'm glad to see someone notice this point! I got the same question as you were concerned about before I set up this program.

My solution is to connect with our manager, following Evaluation request. BTW, you can connect with us by QQ or Wechat directly.
We set pairs of managers for each grade, such as Security.
And if you worry about getting into trouble with your evaluation, I suggest trying more neutral words like “随意”.

Complete anonymity makes one irresponsible like QQ, I think you could understand what I mean.
Therefore, the best way is to provide our manager with your screenshot of  "专业培养计划" in real-time. If you trust EvalCSU you can provide your personal information in your email, but I suggest not.
Hope my answers could help you!

Complete anonymity makes one irresponsible like QQ, I think you could understand what I mean.

Therefore, the best way is to provide our manager with your screenshot of  "专业培养计划" in real-time. If you trust EvalCSU you can provide your personal information in your email, but I suggest not.
Hope my answers could help you!

It sounds good, anonymity can be protected.

* And if you worry about getting into trouble with your evaluation, I suggest trying more neutral words like “随意”.

But this is not a good idea, blurry word can't help anyone, it's not better than "do not comment".

My solution is to connect with our manager, following Evaluation request. BTW, you can connect with us by QQ or Wechat directly.
We set pairs of managers for each grade, such as Security.

And I will not be able to evaluate the manager system, just let time goes on and tell us.

And if you worry about getting into trouble with your evaluation, I suggest trying more neutral words like “随意”.

But this is not a good idea, blurry word can't help anyone, it's not better than "do not comment".

So, you can provide some facts like this one. Act better than talk.

My solution is to connect with our manager, following Evaluation request. BTW, you can connect with us by QQ or Wechat directly.
We set pairs of managers for each grade, such as Security.

And I will not be able to evaluate the manager system, just let time goes on and tell us.
By the personal feelings, I hate this system.

I insist on authenticating you with maximum protection of your privacy.

Without considering labor cost and development cost, zero-knowledge certification is the best way.
This manager system is my best solution for now.

Thx for your suggestion and feedback. I'll seriously consider it when EvalCSU grows bigger.


Added Hill Climb Racing Game!

Description
I MADE THIS GAME USING HTML AND JAVA SCRIPT.
Fixes:  #2335

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Checklist:

[x] I have made this from my own
[x] I have taken help from some online resourses
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

@Sulagna-Dutta-Roy

@Sulagna-Dutta-Roy
Please assign me.

@TheNikhilRaj I guess you had 135 points earlier. Now 2 issues as level2 merged around 190 points you earned.
Only 1issue left as entry level project which is 10 points. So 200 will be complete. Thanks

@TheNikhilRaj I guess you had 135 points earlier. Now 2 issues as level2 merged around 190 points you earned. Only 1issue left as entry level project which is 10 points. So 200 will be complete. Thanks

@Sulagna-Dutta-Roy  135 + 50 = 185
but i need my 5 point!

Okay, sure


Razor custom view model breaks with Layout

This resolves issue #23 but may be a breaking change for anyone assuming IDocument as the model for the Layout razor view.

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

@daveaglick Is there anything I can do to make the PR acceptable?

Oh darn, I renamed the default branch from master to main and didn't notice this PR was still hanging out (renaming the default branch closes pending PRs). I'm going to see if I can retarget it from my end, but if not can you retarget to main?

Got it, thanks! Going to go ahead and merge too.


can not fingerprint the mp3 files in the directionary mp3.

hello,
i use python2.7 under ubuntu 18.04,i ran the example.py,it raises errors:No such file or directory.
i debug it ,and find djv.fingerprint_directory("mp3", [".mp3"]),i dig in,and finally find that it went wrong after the process of function imap_unordered.though i get there,i don not know where it exactly wrong and how to fix it.have anyone ever come across this problem or fix it.


add following status to User object

User class doesn't contain the parameter "following" and I have fixed it.

this is a property abandoned years ago.
http://issue.twitter4j.org/youtrack/issue/TFJ-143
https://code.google.com/p/twitter-api/issues/detail?id=419
https://code.google.com/p/twitter-api/issues/detail?id=532
You cannot trust the property and Twitter4J ignores it on purpose.


/bin/sh: createProcess: fork: resource exhausted

Maybe it is a bit extreme, but after executing ~478 shell commands using turtle I get the following error:
/bin/sh: createProcess: fork: resource exhausted (Resource temporarily unavailable)

and the script terminates.
All I did is just a recursive method that does some inshell, checks the result, sleeps for 1 second and calls itself.
Interestingly, having no sleep at all gives me about the same number of iterations, so it seems that it has nothing to do with concurrency or time needed for releasing resources.

Do you have a simplified version of the recursive method that caused the resource exhaustion?

The reason I'm asking for the example is that Shell is designed to release resources promptly.  If you do something like this:
example :: Shell ()
example = do
    _ <- [1..10]
    _ <- using someResource
    ...

... then Shell will release the resource after each iteration of the loop.  The only way you can get a resource leak is if you recursively acquire a resource within the acquisition of another resource, like this:
example2 = do
    _ <- using someResource
    example2

That second example will eventually exhaust the resource.
More generally, the intuition for how resource acquisition and release works is that:
-- Step 1: Acquire Resource #1
-- Step 2: Release Resource #1
-- Step 3: Acquire Resource #2
-- Step 4: Release Resource #2
using resource1 <|> using resource2

-- Step 1: Acquire Resource 1
-- Step 2: Acquire Resource 2
-- Step 3: Release Resource 2
-- Step 4: Release Resource 1
using resource1 >> using resource2

Does that help answer your question?

I think this is caused because stream never reads the exit code of the processes it creates, which leads to zombie processes hanging around.
The following program will create 5 zombie processes:
{-# LANGUAGE OverloadedStrings #-}

import Turtle

main = do
  sh (inproc "ls" [] empty)
  sh (inproc "ls" [] empty)
  sh (inproc "ls" [] empty)
  sh (inproc "ls" [] empty)
  sh (inproc "ls" [] empty)
  getLine

Adding a waitForProcess call to stream should fix the issue:
diff --git a/src/Turtle/Prelude.hs b/src/Turtle/Prelude.hs
index 08f03de..5b3b952 100644
--- a/src/Turtle/Prelude.hs
+++ b/src/Turtle/Prelude.hs
@@ -405,12 +405,12 @@ stream p s = do
             , Process.std_out = Process.CreatePipe
             , Process.std_err = Process.Inherit
             }
-    (Just hIn, Just hOut, Nothing, _) <- liftIO (Process.createProcess p')
+    (Just hIn, Just hOut, Nothing, ph) <- liftIO (Process.createProcess p')
     let feedIn = sh (do
             txt <- s
             liftIO (Text.hPutStrLn hIn txt) )
     a <- using (fork feedIn)
-    inhandle hOut <|> (liftIO (wait a) *> empty)
+    inhandle hOut <|> (liftIO (Process.waitForProcess ph *> wait a) *> empty)

 -- | Print to @stdout@
 echo :: MonadIO io => Text -> io ()

Although this changes the behaviour of stream a bit

Yeah, I think you identified the correct solution.  As I mentioned in another issue, this looks awfully similar to the problem and solution in this lpaste:
http://lpaste.net/136737
This might resolve a lot of issues that the library has been having with running external commands.


After the command aa-recorder why in the folder" / srv / video-storage "does not create MP4 files?

After the command aa-recorder why in the folder" / srv / video-storage "does not create MP4 files?

Are you running aa-recorder yourConfig.json (passing your config file in on the command line)?
Do you see any error messages in the ffmpeg output?

Are you running aa-recorder yourConfig.json (passing your config file in on the command line)?
yes

Do you see any error messages in the ffmpeg output?
no

After entering the command "aa-recorder your Config.json" on the screen does not appear anything at all!
root@oper2:/home/user/aa-recorder-master/bin# dir aa-recorder  config.json  yourConfig.json root@oper2:/home/user/aa-recorder-master/bin# aa-recorder yourConfig.json root@oper2:/home/user/aa-recorder-master/bin#

Please paste yourConfig.json into this thread.

yourConfig.txt
I had to change the file extension (json-->txt) to be attached here

Do you speak Russian?

Hmm, I would think you would get some output using this configuration. I'm
on mobile right now but I'll investigate when I'm back at a computer.

Hello, what do you say to my question? I can provide you with access for SSH to my computer, and give you a RTSP-URL to my camera. I beg you to help.

I downloaded your config file and I can't reproduce. The output I get is below. The ffmpeg process starts as intended. I suspect something is wrong with your node.js setup.
$ aa-recorder yourConfig.txt
No cleanup threshold defined, using 10GB
camera camera1004: ffmpeg -rtsp_transport tcp -i rtsp://admin:123456@<IP_ADDRESS>:1004/mpeg4?videocodec=h264&compression=20&fps=20&duration=120&resolution=1280x738 -vcodec copy -an /srv/video-storage/20160726_091655_camera1004.mp4
camera camera1004: ffmpeg version N-80926-g83a940e Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --enable-gpl --enable-libx264
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.103 / 57. 48.103
  libavformat    57. 41.100 / 57. 41.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 47.100 /  6. 47.100

camera camera1004:   libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100

What happens if you run just aa-recorder with no arguments? You should see some error messages.
$ aa-recorder

fs.js:427
  binding.open(pathModule._makeLong(path),
          ^
TypeError: path must be a string
    at Object.fs.open (fs.js:427:11)
    at Object.fs.readFile (fs.js:206:6)
    at Object.<anonymous> (/usr/lib/node_modules/aa-recorder/bin/aa-recorder:15:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

If you don't get this, perhaps your node.js installation is not working properly. What happens if you run node -v at the command prompt? If you get command not found you may need to install the nodejs-legacy package from Debian. Debian has renamed node to nodejs and installing the nodejs-legacy package corrects this.
$ node -v
v0.10.29

I developed this script for a customer; it's working fine for them. I decided to share it hoping that it would be useful for others, but I really don't have time to provide free technical support. If you would like to set up a consulting arrangement please send me an email (it's andrew@asquaredlabs.com).


Notes coefficients

Hello,
Using the library, I enountered a problem: coefficients that are not integers don't display correctly. I had a quick look at the code and found the line responsible for that:
"coefficient": ("coefficient", int),

(dataClasses.py    line 268)
You just have to make the coefficient a string instead of an integer to fix the problem. That would be great if it was modified in the next releases.
Thanks.

Hello,
thank you for notifying me. I applied the fix you suggested.


Moved GitBook documentation to GitHub

@mickmister - This PR should now be ready for your review.

@mickmister - This PR appears stuck at the check stage. Is there a way to get it moving again?


Implement bracers balancing check

Please create static class OperatorParser and add pubic static function CheckBracesBalance(String input) to check whether given string has right number of closing and opening braces in it.
At first you may return a single boolean value indicating whether line has correct braces balance or not.
Please add unit tests for your function.

Check please!


Fix capitalization in PowerShell script

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

Thanks @benmcmorran! I'll get this merged.


Add out-of-bounds default to Collection#at

With this methods recent change of accepting negative arguments, it bothered me that undefined was being returned half the time. Although this might not be ideal, I feel like it add some consistency.

Correct me if i'm wrong, but i think it has already been fixed in gh-3770

Yup. Thanks @Florian-R

Looks like gh-3770 was a fix for adding models past the end of a collection. This would be simply for accessing collection models with collection.at( index ). This will return the last model when index is beyond length, keeping it consistent with the adding models behavior.

My mistake (got thrown off by the "add" in the title...).
I still don't think we should change this. Collections are analogous to Arrays in javascript, and indexing beyond the bounds of an Array returns undefined.
It would be overly surprising behavior if we automatically clamped lookups for you (additions are fine, since you're likely just trying to add it to the end of the array already. If you want to get the last value, just use col.last().)


Added deployment settings

After a lot of PoC... This PR includes required settings to deploy site on Heroku:
Due to we need sass, I should add:

Adds Gemfile to install sass.
Set multiple buildpack:  https://github.com/heroku/heroku-buildpack-multi.git
Add buildpacks: Ruby and Scala

@dialelo @raulraja Could you review please? Thank you.

Thanks for making this work! LGTM :+1:


Deep links: incorrect React setup documentation

URL
Deep links - React docs
What is missing or inaccurate about the content on this page?
The React docs state that the association files should be hosted under the public folder (domain.com/public/.well-known). But when done so, the online validators and the operating systems don't pick up the files.
Moving the files to the root (domain.com/.well-known) ensures the files are properly read and only then the deep links start working (verified both on Android and iOS).
Online validators used:

iOS: AASA validator
Android: Statement link validator

P.S.: A big thank you to the entire Ionic and Capacitor team for making a complex topic like Deep links so easy to understand and implement!

I'm not a React expert, but when using Ionic and React, there is a src folder and a public folder, in src folder you have the app source code and in public folder you put static files.
Once you build your app, the compiled src files and the static files from public folder, both end in a dist folder and that's what you upload to the server.
Whatever you have in the public folder will be copied to the root of the dist folder, not in a public folder inside dist, so if you put the .well-known inside the public folder, when you deploy/upload your dist folder, it will be in domain.com/.well-known, not in domain.com/public/.well-known.
Not sure if react without ionic doesn't have that public folder for static files. But that's where you have to put the .well-known, not in src/public.


Your docs/examples don't reflect your greatness.

I just looked into this Friday/Monday because I wanted the utility of JMeter but we're a Ruby shop and . . . well . . . JMeter is a hard sell once people try to use it. So I found this wrapper and everything seemed to just work.
But I wanted to use the random order controller and wasn't sure if it was supported. Nothing in the docs. No example. A quick grep through the code and I realized it was there. I tried it and it worked exactly as expected.
You should really have better docs/examples. I'm incredibly happy with what you've put together. I want to chip in. Are you more interested in me giving you example/doc PRs or fixing some of the bugs in the Issues bucket?

I'm sorry I have taken so long to get back to you. PRs are always welcome. We're looking to revamp ruby-jmeter and support it more closely from Flood IO in general.
Regards,
Tim

Would have to agree with this. It's really surprising how many undocumented features ruby-jmeter has! One look through ruby-jmeter/lib/ruby-jmeter/dsl/ shows it all.

The DSL is automatically generated by code. Perhaps we could do the same for some documentation. PRs are welcome in this space.

@drewcoo @90kts I would be happy to participate in docs creation if you accept external PRs


Can't make regexp work

When I try to use regular expressions in the copybutton_prompt_text field (with copybutton_remove_prompts and copybutton_prompt_is_regex set to True), sphinx-copybutton does not remove prompts.
To reproduce the behavior:

Set conf.py as follows:

copybutton_prompt_text = r"\$\  |\#\ "
copybutton_prompt_is_regexp = True
copybutton_remove_prompts = True

Run sphinx-build

Expectations
I expect sphinx-copybutton to detect and omit from copying the user "$ " OR root "# " prompts (i.e., exclude both prompt strings from copying) .
Environment
A virtual environment (Dockerized) running:

Python version 2.7 or 3.7
Sphinx version 1.8.3 or 3.1.2
Operating System: OS X 10.15.5

Additional context
I am embarrassed to open this as a bug report, as my assumption is that this is either my ineptitude with regexp (though I have tried every permutation that I can imagine) or a weird setup issue. Is there a canonical environment in which regexps are functional?

Oh no regexes can be tricky. It looks like you have two spaces after dollar, have you tried using the specific white space regex: r"\$\s|\#\s"?

Thanks for your reply!
I tried:
copybutton_prompt_text = r"\$\s|\#\s"
On the built document, the Copy button copies the entire block, but does not omit the "$ " prompt.

FWIW, the JavaScript regex "or" pattern looks to involve parentheses: https://www.w3schools.com/jsref/jsref_regexp_xy.asp.
but I'm not having much luck permutating on that, either...

@choldgraf just remembered that I left @wabernatScality hanging a bit here lol. I'm a bit out of ideas, without perhaps going into the code and trying to add more test cases

@wabernatScality do you still have these issues? this is also something I don't know how to debug either, I am terrible with regexes :-/  it sounds like it might be a bit of time before we can figure out a solution, just FYI

We have not found a solution. I've rolled out sphinx-copybutton with regexp turned off, hoping our own talent might be sufficiently bent out of shape to fix it as a challenge. In the meantime, we make do with '$ ' as our default "cropped" prompt.

Sounds good - if anybody can figure out a fix for why this isn't working I am happy to review and cut a release quickly 👍

Any updates on this issue? I can also reproduce it with and without copybutton_prompt_is_regexp. I'm using Python==3.6.9 sphinx==4.0.2 sphinx_rtd_theme==0.5.2 sphinx-copybutton==0.4.0.

I am facing a similar issue (perhaps exactly the same). I was asked to setup a ~quite~very complex regexp, which validates at regexp101.com, to remove a number of prompts from the docs.
After quite a lot of debugging, my guess is that @wabernat was on the right track: ORs using ( ) are apparently not supported in this extension. I stripped down my prompt text to set up a counterexample.

copybutton_prompt_text = r"cluster#\s|single#\s" this works
copybutton_prompt_text = r"(cluster|single)#\s" this does not work, regardless of any escape used on parentheses (e.g, \(, \\(, \\\( etc.).

Both regexp validate at regexp101.com and match against the same set of examples.

The isse raised since we wanted to catch non only # as prompt ending character, but also $, therefore I added (cluster |single)(#|\$)\s as regexp.

To be honest, I have no idea how to fix this issue, since my regexp knowledge is for sure lower than @choldgraf 's  :sweat_smile:

Hello all, I am currently working on the same project as @wabernat was 3 years ago for the same company, and ran into the same problems, which led me to this issue !
We use a variety of prompts in the following formats:

#
$
[foo@bar]#
{{fooBar}}#

(each one has a trailing space)
I managed to get the regex to work by adding the following lines in our conf.py file:
copybutton_prompt_text = '\# |\$<EMAIL_ADDRESS>|\{\{.*\}\}\# '

copybutton_prompt_is_regexp = True

copybutton_remove_prompts = True

The documentation is a bit unclear and feels like we have to use enclose the regular expression in a raw string for it to work, but it seems that it is not the case.
Can anyone confirm or deny ?
Also, the documentation should display basic examples of regex to copy-paste as is to the conf.py of a project, at least for testing purposes.
Example:
The following configuration will treat the string "# " or "$ " as prompts which will not be copied.
copybutton_prompt_is_regexp = True

copybutton_remove_prompts = True

copybutton_prompt_text = '\# |\$ '

I can open a documentation PR if you agree with this proposal.
Thanks !

@Samy-Oubouaziz in the end I used indeed a similar approach to what you propose: to enumerate all possible prompts. However. as I mentioned, I had quite a number of different prompt (around12-14 IIRC, I left that project now so can't check), each with # and $, so it became really a complex enumeration.
My comment however was more to point out that this extension currently does not support complex regexp with ( ), to help spare time in case someone encounters the same problem.

Thank you @stefanodavid ! This might be a good time to close this issue @choldgraf, and maybe open a doc PR for better regex explanations for users who are not familiar with it, including:

basic regex examples
a list of characters that need to be escaped maybe?
an admonition regarding the limitations of regex in t his context

Thanks again !


Documentation for specifying genesis state

What was wrong?
https://github.com/ethereum/eth-tester/pull/123 did not contain an update to the README.md (or documentation in general) to document how the new API should be used.
How can it be fixed?
Write up documentation.

loosely related to #124


3 Dec: Introduction to NeSI

Peter Maxwell from NeSI will be giving an introduction to the high performance computing (HPC) facilities they provide (free to all otago staff and students), how to use them, and may talk briefly about parallel R on a HPC.

Opps Should be on my repo sorry


Electron/NativeScript adapters?

🤔

Yet NodeGUI is worth attention.
It's probably all a separate adapter.

Please, yes!


System Property not working

Thank you for the sample app.

It would be nice if you add how to run your application, I was able to run using "mvn spring-boot:run"

I created a folder and added to the classpath. In that folder I have put the same application.yml and ran this command "mvn spring-boot:run -Dspring.profiles.active=unit-test"  but it still picking up the "default" active profile from the source code application.yml. I also tried creating a application.properties instead of application.yml but it still didnt get picked up?

I was able to run both java -Dspring.profiles.active=unit-test -jar target/spring-boot-sample-yaml-config-1.0.0.jar and mvn spring-boot:run -Dspring.profiles.active=unit-test from the command line.  I just updated the Spring Boot version to 1.2.0, try it now and let me know if that works for you or not.


Breaking change in MeanAveragePrecision by removing average param

🐛 Bug

We're using the MeanAveragePrecision method in the Responsible AI Toolbox repo for calculating Object Detection metrics, and realized that a breaking update in torchmetrics seems to remove the average attribute.
What would now be a way to specify a 'macro' or 'micro' averaging method for calculating the Object Detection metrics, and is that soon to be addressed in a next release?
To Reproduce
Steps to reproduce the behavior...

Code sample
https://github.com/microsoft/responsible-ai-toolbox/blob/main/responsibleai_vision/responsibleai_vision/rai_vision_insights/rai_vision_insights.py#L1110

Expected behavior

Environment

TorchMetrics version (and how you installed TM, e.g. conda, pip, build from source): pip
Python & PyTorch Version (e.g., 1.0): PyTorch 1.13.1, python 3.7-3.10
Any other relevant information such as OS (e.g., Linux): Windows, Ubuntu, MacOS

Additional context

The average attribute has suddenly been removed from https://torchmetrics.readthedocs.io/en/stable/detection/mean_average_precision.html, though still exists for other image scenarios - https://torchmetrics.readthedocs.io/en/stable/classification/average_precision.html

Hi @Advitya17, thanks for raising this issue.
I am a bit confused because I am pretty sure that MeanAveragePrecision have never had a average argument, but I may be wrong.
What version of torchmetrics have you been using?

torchmetrics==1.0.1, we had specified it in our code quite a few months back and were able to use torchmetrics until the breaking change happened.

Then I do still not understand, because in v1.0.1 of torchmetrics MeanAveragePrecision did not have a average argument:
https://github.com/Lightning-AI/torchmetrics/blob/035e433ce416d82e415d16ba87f8c12cbb74fdef/src/torchmetrics/detection/mean_ap.py#L241-L250

Yes if it can be included in a future release, that'll be very helpful, thank you very much!

Then I do still not understand, because in v1.0.1 of torchmetrics MeanAveragePrecision did not have a average argument:

it was taken by the **kwargs so it has zero effect but it did not crash...


Completed French Translations (2nd time)

Just completed all missing French translations plus fixed some non-translated ones.

Sorry I created a new pull request I didn't knew how to open the other again... Closed one here #2554

Changelog Entry
Description
Translated every missing text entry into French as well as fixing ones.
Added

Filled all empty translations

Changed

Fixed some upper case issues :)
Less inconsistencies

Fixed

Replaced un-translated translations to French (at least 2 English ones)

LGTM, Thanks!


GMSAFIR pb  in preparing loads for writing

HELLO,
if i may ask some help for the warning and the error message
sometimes i am facing this error but i cant understand how to correct it.
i am having it after generating the mesh when i want to creeate the .IN file for safir
with many thanks.
Warning : Using tag == 0 in view is discouraged; view tags should be >= 1
Error   : Pb in preparing Loads for writing (Did you define Material for your F.E before meshing?):np.uint64(177) is not in list

Hi! I got the same error message. Did you find the way to solve it?

sorry for very late reply of mine.
Please upload here an example with files XXX.g4s and XXX.geo, but change the filenames before uploading : change to XXX.g4s.txt and XXX.geo.txt (use "Preview" before sending your message, to see if links are correct)


Create free-courses-tr.md

Hacktoberfest notes:

due to volume of submissions, we may not be able to review PRs that do not pass tests and do not have informative titles.
please read our contributing guidelines
be sure to check the output of Travis-CI for linter errors
if this is your first open source contribution, make sure it's not your last!

What does this PR do?
Add Resource(s)
For resources
Description
Some of the Turkish free courses added
Why is this valuable (or not)?
There is no documented free courses in Turkish yet.
How do we know it's really free?
Not a book, it's not free as in freedom but accessible; there is no statement about course's freedom requirements at CONTRIBUTING.md
For book lists, is it a book? For course lists, is it a course? etc.
It's a course.
Checklist:

[X] Not a duplicate
[X] Included author(s) if appropriate
[X] Lists are in alphabetical order
[X] Needed indications added (PDF, access notes, under construction)

Could you please all lists and categories in alphabetical order?
Also please ensure there are 2 empty lines above a new section.
You can get more guidance on the formatting and conventions of this repository by checking out the contribution guide.

Thank you, I've updated the PR.

could you also add a link to this file from README.md? Thanks!

@eshellman Added!

Thanks, and welcome to free-programming-books!


This is missing all the cool features from your screenshots :)

Fixed in develop branch.
It is shipped with binary MOAI for OSX (1.6 merged with Patrick's work + some our extensions).
https://github.com/Vavius/moai-dev/tree/cloudteam


Add string X509ThumbprintString property to CertificateProperties

Add a string X509ThumbprintString property to CertificateProperties that returns the hex representation of byte[] X509Thumbprint and hide the older member as its rare in managed code to need a byte[] representation of the thumbprint.

This feature is not relevant to the Go. In our SDK, we're sticking as close to the Key Vault API as possible.
If needed, it is easy for users to cast to a string by calling hex.EncodeToString().


missing export for automodActionExecution + ActiveDeveloper flag added

Codecov Report

Merging #2684 (061fd09) into main (df59106) will increase coverage by 0.38%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #2684      +/-   ##
==========================================
+ Coverage   49.73%   50.11%   +0.38%
==========================================
  Files         387      387
  Lines       10349    10428      +79
  Branches      471      470       -1
==========================================
+ Hits         5147     5226      +79
  Misses       5192     5192
  Partials       10       10

Flag
Coverage Δ

*Carryforward flag

integration
48.63% <100.00%> (-0.05%)
:arrow_down:
Carriedforward from ace5e26

unit
25.56% <100.00%> (+0.01%)
:arrow_up:

*This pull request uses carry forward flags. Click here to find out more.

Impacted Files
Coverage Δ

transformers/mod.ts
100.00% <100.00%> (ø)

types/shared.ts
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Thumbs.db prevents loading image directory in napari

Hello,
I have trouble loading some serial2p image directories in napari on a Windows 7 Machine because of a hidden Thumbs.db file in the image directory.
When I drag and drop the direcotry into napari I receive the following error:
ValueError: Could not find a backend to open 'path/to/images/Thumbs.db' with iomode 'ri'.
Any suggestions on how to get around this?
Cheers!

In this case it's not a BrainGlobe plugin being used to the load the image data, so there's not much we can do. Can you delete the file?

Initially I wasn't. Found a way to delete it, however.
Thank you!
In case anyone else has issues deleting them:
https://answers.microsoft.com/en-us/windows/forum/all/unable-to-delete-thumbsdb/476dbfa7-6cd8-43a7-b162-c9228edd3049


Getting 2 different CPU readings?

I'm running on a server with 32 cores, but I'm seeing "Docker CPU" and "Docker 1CPU"
This is also showing on each sensor for each container when running in "allinone" mode.
I'm not sure what the difference is, but they're displaying two different values.
PS - When running on unRAID and HomeAssistant Core is running as a container on unRAID, you need to add a new path, very simple to do, but may want to add it to your readme for users who are on unraid and not familair with exec/compose.

Here's an example of CPU and 1CPU -- forgot to include screenshot of that.

The difference between cpu and 1cpu is maybe not clear on the page, but it works as follows:
The "cpu" can show a value between 0 and 3200% (if you got 32 cores * 100)
The "1cpu" can only show 0-100%. So it divide the "cpu" by the number of cores
I will add the UnRAID example/screenshot to the Q&A soon.

Thanks for the info - I understand the difference now - makes sense :)
Thanks for making this - I was STILL using HADockermon for such a long time but this is just so much better and doesn't need another container to work, much better.
Thanks agian.


diffoscope: 275 -> 276

Changes: https://diffoscope.org/news/diffoscope-276-released/
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 335649 run on x86_64-linux 1

6 packages built:

diffoscope
diffoscope.dist
diffoscope.man
diffoscopeMinimal
diffoscopeMinimal.dist
diffoscopeMinimal.man


Screen is black when booting (Zen kernel). nvidia, xorg-server fails to build (due to libepoxy)

I'm using GKISS with zen-kernel. I built it without any graphics support except for my intel integrated graphics, because I plan on installing the proprietary nvidia driver later.
I put the kernel in the ESP and followed the KISS efibootmgr steps (zen kernel is compiled with efistub support). Boot entry shows up in my BIOS (it did not before when I placed the kernel outside of ESP, so clearly the BIOS is checking that it's valid). When I select it, the screen is black and never changes.
Here is my kernel .config:
zen-dotconfig.txt
Anyway I heard this can be due to the nvidia drivers being required, so, in the chroot, I tried to install nvidia, resulting in an xorg-server error, so then I tried to install xorg-server, resulting in kiss failing to build libepoxy:
Build log
-> libepoxy Building package (6/11)
-> libepoxy Extracting sources
-> libepoxy Starting build
The Meson build system
Version: 0.63.0
Source dir: /home/ld/.cache/kiss/proc/6625/build/libepoxy
Build dir: /home/ld/.cache/kiss/proc/6625/build/libepoxy/output
Build type: native build
Project name: libepoxy
Project version: 1.5.10
C compiler for the host machine: cc (gcc 12.1.0 "cc (GCC) 12.1.0")
C linker for the host machine: cc ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Has header "KHR/khrplatform.h" : YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wformat=2: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wbad-function-cast: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wdeclaration-after-statement: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Wuninitialized: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wmissing-format-attribute: YES
Compiler for C supports arguments -Wredundant-decls: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Werror=implicit: YES
Compiler for C supports arguments -Werror=nonnull: YES
Compiler for C supports arguments -Werror=init-self: YES
Compiler for C supports arguments -Werror=main: YES
Compiler for C supports arguments -Werror=missing-braces: YES
Compiler for C supports arguments -Werror=sequence-point: YES
Compiler for C supports arguments -Werror=return-type: YES
Compiler for C supports arguments -Werror=trigraphs: YES
Compiler for C supports arguments -Werror=array-bounds: YES
Compiler for C supports arguments -Werror=write-strings: YES
Compiler for C supports arguments -Werror=address: YES
Compiler for C supports arguments -Werror=int-to-pointer-cast: YES
Compiler for C supports arguments -Werror=pointer-to-int-cast: YES
Compiler for C supports arguments -fno-strict-aliasing: YES
Compiler for C supports arguments -Wno-int-conversion: YES
Library dl found: YES
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency gl found: NO (tried pkgconfig and system)
Run-time dependency egl found: YES 1.5
Run-time dependency x11 found: YES 1.8.1
Run-time dependency glesv2 found: YES 3.2
Run-time dependency glesv1_cm found: YES 1.0
Program src/gen_dispatch.py found: YES (/home/ld/.cache/kiss/proc/6625/build/libepoxy/src/gen_dispatch.py)
Configuring config.h using configuration
Compiler for C supports link arguments -Wl,-Bsymbolic-functions: YES
Compiler for C supports link arguments -Wl,-z,relro: YES
Library dl found: YES
Checking for function "dlvsym" with dependency -ldl: YES
Build targets in project: 26

libepoxy 1.5.10

  User defined options
    mandir    : /usr/share/man
    prefix    : /usr
    sysconfdir: /etc
    x11       : true

Found ninja-1.9 at /usr/bin/ninja
ninja: entering directory 'output'
[1/55] Generating src/glx_generated_dispatch.c with a custom command
[2/55] Generating src/egl_generated_dispatch.c with a custom command
[3/55] Generating src/gl_generated_dispatch.c with a custom command
[4/55] Generating include/epoxy/glx_generated.h with a custom command
[5/55] Generating include/epoxy/gl_generated.h with a custom command
[6/55] Generating include/epoxy/egl_generated.h with a custom command
[7/55] Compiling C object test/glx_gles2.p/dlwrap.c.o
[8/55] Compiling C object test/glx_gles2.p/glx_gles2.c.o
[9/55] Compiling C object test/glx_alias_prefer_same_name.p/dlwrap.c.o
[10/55] Compiling C object test/glx_alias_prefer_same_name.p/glx_alias_prefer_same_name.c.o
[11/55] Compiling C object test/glx_shared_znow.p/glx_static.c.o
[12/55] Compiling C object test/glx_has_extension_nocontext.p/glx_has_extension_nocontext.c.o
[13/55] Compiling C object test/glx_glxgetprocaddress_nocontext.p/glx_glxgetprocaddress_nocontext.c.o
[14/55] Compiling C object test/glx_public_api_core.p/glx_public_api_core.c.o
[15/55] Compiling C object test/glx_public_api.p/glx_public_api.c.o
[16/55] Compiling C object test/glx_beginend.p/glx_beginend.c.o
[17/55] Compiling C object test/libglx_common.a.p/glx_common.c.o
[18/55] Compiling C object test/egl_gl.p/egl_gl.c.o
[19/55] Compiling C object test/egl_gles2_without_glx.p/egl_without_glx.c.o
[20/55] Compiling C object src/libepoxy.so.0.0.0.p/meson-generated_.._gl_generated_dispatch.c.o
[21/55] Compiling C object test/egl_gles1_without_glx.p/egl_without_glx.c.o
[22/55] Compiling C object test/egl_epoxy_api.p/egl_epoxy_api.c.o
[23/55] Compiling C object test/egl_has_extension_nocontext.p/egl_has_extension_nocontext.c.o
[24/55] Compiling C object test/libegl_common.a.p/egl_common.c.o
[25/55] Compiling C object test/gl_version.p/gl_version.c.o
[26/55] Compiling C object 'test/khronos typedefs.p/khronos_typedefs_nonepoxy.c.o'
[27/55] Compiling C object 'test/khronos typedefs.p/khronos_typedefs.c.o'
[28/55] Compiling C object 'test/misc defines.p/miscdefines.c.o'
[29/55] Compiling C object 'test/header guards.p/headerguards.c.o'
[30/55] Compiling C object src/libepoxy.so.0.0.0.p/dispatch_glx.c.o
[31/55] Compiling C object src/libepoxy.so.0.0.0.p/dispatch_egl.c.o
[32/55] Compiling C object src/libepoxy.so.0.0.0.p/dispatch_common.c.o
[33/55] Compiling C object src/libepoxy.so.0.0.0.p/meson-generated_.._glx_generated_dispatch.c.o
[34/55] Linking static target test/libglx_common.a
[35/55] Linking static target test/libegl_common.a
[36/55] Compiling C object src/libepoxy.so.0.0.0.p/meson-generated_.._egl_generated_dispatch.c.o
[37/55] Linking target src/libepoxy.so.0.0.0
[38/55] Generating symbol file src/libepoxy.so.0.0.0.p/libepoxy.so.0.0.0.symbols
[39/55] Linking target test/glx_gles2
[40/55] Linking target test/glx_alias_prefer_same_name
[41/55] Linking target test/glx_shared_znow
[42/55] Linking target test/glx_has_extension_nocontext
[43/55] Linking target test/glx_glxgetprocaddress_nocontext
[44/55] Linking target test/glx_public_api_core
[45/55] Linking target test/glx_public_api
[46/55] Linking target test/glx_beginend
[47/55] Linking target test/egl_gl
[48/55] Linking target test/egl_gles2_without_glx
[49/55] Linking target test/egl_gles1_without_glx
[50/55] Linking target test/egl_epoxy_api
[51/55] Linking target test/egl_has_extension_nocontext
[52/55] Linking target test/gl_version
[53/55] Linking target 'test/khronos typedefs'
[54/55] Linking target 'test/misc defines'
[55/55] Linking target 'test/header guards'
ninja: job failed: cc  -o test/glx_beginend test/glx_beginend.p/glx_beginend.c.o -Wl,--as-needed -Wl,--no-undefined -march=native -pipe -Ofast '-Wl,-rpath,$ORIGIN/../src' -Wl,-rpath-link,/home/ld/.cache/kiss/proc/6625/build/libepoxy/output/src -Wl,--start-group test/libglx_common.a src/libepoxy.so.0.0.0 -ldl /usr/lib/libX11.so -Wl,--end-group
/usr/bin/ld: test/glx_beginend.p/glx_beginend.c.o: in function `test_without_epoxy':
/home/ld/.cache/kiss/proc/6625/build/libepoxy/output/../test/glx_beginend.c:69: undefined reference to `glBegin'
/usr/bin/ld: /home/ld/.cache/kiss/proc/6625/build/libepoxy/output/../test/glx_beginend.c:84: undefined reference to `glEnd'
collect2: error: ld returned 1 exit status
ninja: subcommand failed
-> libepoxy Build failed
-> libepoxy Log stored to /home/ld/.cache/kiss/logs/2022-07-14/libepoxy-2022-07-14-06:46-6625
Terminated

Here is my KISS_PATH:

/home/ld/.local/repo
/home/ld/.local/repos/grepo/nvidia
/home/ld/.local/repos/kiss-xorg/xorg
/home/ld/.local/repos/kiss-xorg/community
/home/ld/.local/repos/kiss-xorg/extra
/home/ld/.local/repos/community/community
/home/ld/.local/repos/grepo/core
/home/ld/.local/repos/grepo/extra

Links:

grepo is this
kiss-xorg
community
official KISS repo is not included

.profile:
export KISS_PATH="/home/ld/.local/repo"
export KISS_PATH="$KISS_PATH:/home/ld/.local/repos/grepo/nvidia"
export KISS_PATH="$KISS_PATH:/home/ld/.local/repos/kiss-xorg/xorg"
export KISS_PATH="$KISS_PATH:/home/ld/.local/repos/kiss-xorg/community"
export KISS_PATH="$KISS_PATH:/home/ld/.local/repos/kiss-xorg/extra"
export KISS_PATH="$KISS_PATH:/home/ld/.local/repos/community/community"
export KISS_PATH="$KISS_PATH:/home/ld/.local/repos/grepo/core"
export KISS_PATH="$KISS_PATH:/home/ld/.local/repos/grepo/extra"

export CFLAGS="-march=native -pipe -Ofast"
export CXXFLAGS="$CFLAGS"
export MAKEFLAGS="-j12"

export EDITOR=nano
export LANG=en_US.UTF-8

Here's some more system information:

efibootmgr -v
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0001,0000,0003
Boot0000* Windows Boot Manager	HD(1,GPT,86b6226f-0f08-4d1c-8067-c56b00c1d072,0x800,0x82000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000000000100000010000000040000007fff0400
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 20 08 00 00 00 00 00 6f 22 b6 86 08 0f 1c 4d 80 67 c5 6b 00 c1 d0 72 02 02 / 04 04 46 00 5c 00 45 00 46 00 49 00 5c 00 4d 00 49 00 43 00 52 00 4f 00 53 00 4f 00 46 00 54 00 5c 00 42 00 4f 00 4f 00 54 00 5c 00 42 00 4f 00 4f 00 54 00 4d 00 47 00 46 00 57 00 2e 00 45 00 46 00 49 00 00 00 / 7f ff 04 00
    data: 57 49 4e 44 4f 57 53 00 01 00 00 00 88 00 00 00 78 00 00 00 42 00 43 00 44 00 4f 00 42 00 4a 00 45 00 43 00 54 00 3d 00 7b 00 39 00 64 00 65 00 61 00 38 00 36 00 32 00 63 00 2d 00 35 00 63 00 64 00 64 00 2d 00 34 00 65 00 37 00 30 00 2d 00 61 00 63 00 63 00 31 00 2d 00 66 00 33 00 32 00 62 00 33 00 34 00 34 00 64 00 34 00 37 00 39 00 35 00 7d 00 00 00 00 00 01 00 00 00 10 00 00 00 04 00 00 00 7f ff 04 00
Boot0001* KISS	HD(1,GPT,86b6226f-0f08-4d1c-8067-c56b00c1d072,0x800,0x82000)/File(\VMLINUZ-5.18.11-ZEN)72006f006f0074003d00500041005200540055005500490044003d00620065006100630062006400320038002d0034006300610066002d0034006100650065002d0061006400640038002d00360061003800370035003100320064006600390038003200200072007700
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 20 08 00 00 00 00 00 6f 22 b6 86 08 0f 1c 4d 80 67 c5 6b 00 c1 d0 72 02 02 / 04 04 2e 00 5c 00 56 00 4d 00 4c 00 49 00 4e 00 55 00 5a 00 2d 00 35 00 2e 00 31 00 38 00 2e 00 31 00 31 00 2d 00 5a 00 45 00 4e 00 00 00 / 7f ff 04 00
    data: 72 00 6f 00 6f 00 74 00 3d 00 50 00 41 00 52 00 54 00 55 00 55 00 49 00 44 00 3d 00 62 00 65 00 61 00 63 00 62 00 64 00 32 00 38 00 2d 00 34 00 63 00 61 00 66 00 2d 00 34 00 61 00 65 00 65 00 2d 00 61 00 64 00 64 00 38 00 2d 00 36 00 61 00 38 00 37 00 35 00 31 00 32 00 64 00 66 00 39 00 38 00 32 00 20 00 72 00 77 00
Boot0003* UEFI:  USB, Partition 1	PciRoot(0x0)/Pci(0x14,0x0)/USB(18,0)/HD(1,GPT,2c7065ea-20a0-426e-8856-fa14e277cfe7,0x800,0x3b92cb)0000424f
      dp: 02 01 0c 00 d0 41 03 0a 00 00 00 00 / 01 01 06 00 00 14 / 03 05 06 00 12 00 / 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 cb 92 3b 00 00 00 00 00 ea 65 70 2c a0 20 6e 42 88 56 fa 14 e2 77 cf e7 02 02 / 7f ff 04 00
    data: 00 00 42 4f

/etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>

tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
/dev/nvme0n1p1 /boot vfat defaults 0 0

kernel command line is root=PARTUUID=beacbd28-4caf-4aee-add8-6a87512df982 rw, blkid is:
/dev/sda2: UUID="12354155-d7d3-44d4-9c78-879734a705d4" TYPE="ext4"
/dev/sda1: LABEL="ALPINE-STD" UUID="98DB-4887" TYPE="vfat"
/dev/nvme0n1p7: LABEL="RESTORE" UUID="2E644DE1644DAD01" TYPE="ntfs"
/dev/nvme0n1p6: LABEL="RECOVERY" UUID="AE742EB7742E8267" TYPE="ntfs"
/dev/nvme0n1p5: UUID="beacbd28-4caf-4aee-add8-6a87512df982" TYPE="ext4"
/dev/nvme0n1p4: LABEL="TRANSFER" UUID="E350-EFE0" TYPE="exfat"
/dev/nvme0n1p3: LABEL="OS" UUID="01D896A8C78B58E0" TYPE="ntfs"
/dev/nvme0n1p1: LABEL="SYSTEM" UUID="E4A8-6CBD" TYPE="vfat"
/dev/loop/0: TYPE="squashfs"
/dev/loop0: TYPE="squashfs"

ESP contains:
EFI
System Volume Information
System.map-5.18.11-zen
vmlinuz-5.18.11-zen

(this is a Windows 10 dual boot)

lspci outside chroot
00:00.0 Host bridge: Intel Corporation 10th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 02)
00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 02)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Comet Lake PCH Thermal Controller
00:14.0 USB controller: Intel Corporation Comet Lake USB 3.1 xHCI Host Controller
00:14.2 RAM memory: Intel Corporation Comet Lake PCH Shared SRAM
00:14.3 Network controller: Intel Corporation Comet Lake PCH CNVi WiFi
00:15.0 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH Serial IO I2C Controller #0
00:15.1 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH Serial IO I2C Controller #1
00:16.0 Communication controller: Intel Corporation Comet Lake HECI Controller
00:1b.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #17 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #9 (rev f0)
00:1d.6 PCI bridge: Intel Corporation Device 06b6 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Comet Lake LPC Controller
00:1f.4 SMBus: Intel Corporation Comet Lake PCH SMBus Controller
00:1f.5 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH SPI Controller
01:00.0 VGA compatible controller: NVIDIA Corporation TU106M [GeForce RTX 2060 Mobile] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU106 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU106 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU106 USB Type-C UCSI Controller (rev a1)
02:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
03:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
03:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
03:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
04:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 2C 2018] (rev 06)
3a:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 2C 2018] (rev 06)
3b:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN550 NVMe SSD (rev 01)
3c:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

Let me know if I left anything out.
This may very well be a kernel issue, I'm not 100% sure.

For the black screen, try this https://github.com/kiss-community/grepo/issues/26#issuecomment-979217678
The libepoxy error should be reported to the kiss-xorg repo. Might be related to mesa, not sure. After that's fixed all you have to do is build xorg-server and then build nvidia (Else it only enables wayland)

Ugh now I can't even build the kernel. The busybox utilities are so cursed, not only is patch constantly throwing errors, but now some find and tar errors are completely aborting the build.
I'm so annoyed rn

I forgot to install libglvnd, apparently.


Fixes javaslang/javaslang#188

Coverage remained the same at 100.0% when pulling 62305d3f2be036b7460ef9b023944a779d292d9d on danieldietrich:issue188 into 8fa75e000aeb9ed379ec5cde43362d9ec5429472 on javaslang:master.


LHN - Personal DM is not being created when signing up with a new Gmail account

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

Version Number: 9.0.77-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: Exp
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Device used: Windows 11 pro/chrome
App Component: Left Hand Navigation (LHN)
Action Performed:

Navigate to staging.new.expensify.com
Sign out if you're already signed in
Sign in with a new account
Search the account you have signed in with in the router

Expected Result:
There's a personal DM pinned in the LHN
Actual Result:
There's no personal DM pinned in the LHN and can not be found when searched using the router
Workaround:
Unknown
Platforms:

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/51abbe88-bda4-4fbe-96e8-4a203481d62c
View all open jobs on GitHub

I believe solving https://github.com/Expensify/App/issues/54322#issuecomment-2552908792 will solve the current issue as well.


Show notices inline

I'm not sure if this is part of the IRC spec, but most clients generally show notices in-line (ie like a message). At the moment, they're displayed in the network tab which isn't very intuitive.
Alternatively, notices could be displayed in a modal/popup similar to IRCcloud

:+1: to displaying in current channel (most clients make this a setting, but I get that this project is trying to avoid having too many preferences)
Strong :-1: on a modal/popup approach. A number of games and so on use notices to send various info to players and it would get annoying or even disruptive very quickly.

Noticed (ha!) tonight that if a query window is open with the user who sent the NOTICE, it goes there and generates the same type of notification it would if it had been a PRIVMSG.
That's probably not what it should do, at all, but perhaps that should be a separate issue?

+1

Came up while talking about /whois in another issue, but very relevant here as multiple/no connected clients haven't even been discussed yet.
If no client is attached, notices can go to the server window. If multiple clients are attached, is it impractical for each client to decide where to place the incoming notice depending on which window is active?

Is this settled in an upcoming release? Or is it "WONTFIX"?

I would like this issue to be reopen.
There are situations where in-line notices will be extremly helpful and in some situations critical, e.g. Uno game where the bot let you see your cards trough notices. Notices are also used to show information to users on channel join, e.g. #help channel to let them know what to do. Majority of people, especially kids, doesn't know or doesn't see the notices in server window.
I suggest either trying to find a way to display in-line notices on every active channel window OR display them in all channels at once.

So, I have a big issue with notices in general. If we look at the spec:

The NOTICE message is used similarly to PRIVMSG.  The difference between NOTICE and PRIVMSG is that automatic replies must never be sent in response to a NOTICE message.  This rule applies to servers too - they must not send any error reply back to the client on receipt of a notice.  The object of this rule is to avoid loops between a client automatically sending something in response to something it received.  This is typically used by automatons (clients with either an AI or other interactive program controlling their actions) which are always seen to be replying lest they end up in a loop with another automaton.

So I feel that clients that show it in the current channel (or every channel) are misusing it. Realistically, if we are changing how notices should be done, they should be done in a separate channel like PMs currently work. I have a feeling people won't want to do that.
Posting them in every channel just sounds horrible. Showing them in the active channel window? Maybe, but I still think we are misusing them.

Misusing, maybe. But it's still quite a few IRC games and channels showing information directly to their users trough notices. If they are ever going to be read and used how IRC games want them to, we need them to be in the appropriate channel.

I was thinking to show notices on the client in currently active channel. On the server they would be kept in network window.

I'm all in for the active channel option!

Sounds good, @xPaw. Notices don't need to persist in the active channel if The Lounge client is closed and reopened. Letting each client handle where to show them, but having the server keep them in a specific buffer, should work out.

Do they need to be dismissible (like with a × button or something like that) when duplicated in active channel?
Regarding all channels, if it's dismissible, then I guess it could make sense... or not...
It's a tough UX decision because there is no clear winner, and it's a thing that depends on the use case, and gets used for multiple use cases, including some that are abusing the function.
If there are multiple ideas, I suggest we go with the "smallest" one (for example current channel only), then give it a try, and releases later introduce something else if needed (dismissible? all channels? both? else?).
Either way, I don't think I like any solutions, but I understand the mentioned use cases. (And it's not something another option will solve lol.) I won't be blocking anything, just wanted to share I find none of these ideal but I have no alternatives either....

Showing notices in-line in active window on client sounds good!

Ok, @thelounge/maintainers, let's get a decision on how we want to fix this, so someone can come along and do it if they want.
Are we happy with just showing the notice in the current active window?


Initial PDK conversion attempt

The only failures are from Rubocop. I will be disabling Rubocop once PDK-998 is resolved, anyway.


percent_packets_lost_out should range from 0 to 100

Hello,
First of all, thanks for this excellent library.
Suggestion
Adjust percent_packets_lost_out to range from 0 to 100, for the sake of symmetry with percent_packets_lost_in.
Reason

It currently ranges from 0 to 1, meaning a fraction (at least in Google Chrome, which I have tested).
On the other hand, its counterpart percent_packets_lost_in ranges from 0 to 100, meaning an absolute percentage number.

Moreover

Both mos_out and mos_emodel_out are currently innacurate due to that [0,1] range.

Proposal
It seems that just multiplying fractionLost by 100 in extractor.js would do the job:
-    fractionLost = Number(bunch[PROPERTY.FRACTION_LOST]);
+    fractionLost = Number(100 * bunch[PROPERTY.FRACTION_LOST]);

I have tested that change myself and it seems to work.
I am available to send a PR with it if you agree, just let me know.
Thank you,
Rodrigo

Hi @rodrigodc, thanks for the report and the correction.
Yes, for sure, you can submit your PR.
Thanks in advance

Hi @oanguenot,
PR #6 submitted.
Thank you,
Rodrigo

Delivered in v5.0.3


Collapsing search results new page added to documentation

Description
New page added to documentation to address the functionality of Collapsing Search Results in OpenSearch
Issues Resolved
Part of https://github.com/opensearch-project/documentation-website/issues/7507
Version
all
Frontend features
n/a
Checklist

[x] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hi @hdhalter this is ready for review please.

@rishabhmaurya: Could you take a look at this one?

@leanneeliatra Thank you for writing this documentation. I completed the doc review. My edits are primarily copyedits for OpenSearch writing style and tone. Please see my suggestions and tag me when you're ready for me to move it to editorial :)

Thank you! Much appreciated. This is now ready for editorial @vagimeli


Document supported Kubernetes versions

/sig multicluster
Document which Kubernetes API server versions the cluster registry can be aggregated to in a supported manner.
From https://github.com/kubernetes/community/blob/master/contributors/design-proposals/multicluster/cluster-registry/project-design-and-plan.md#stable-targeting-mid-q2-18

/remove-lifecycle stale