Deduper changes

This changes the Deduper in the following two ways:

Added the store_mask argument to the deduplicate method, which now defaults to False. If True this will stream the mask to disk, as well as storing it in the mask attribute.
The deduplicate method now only accepts input which already have document IDs in them, and uses these IDs rather than merely enumerating the corpus. Thus, the method now requires corpus to be a) a Dataset with an id and text column, b) an IterableDataset with an id and text column, c) an iterable of dictionaries, each of which have an id and text entry, or d) an iterable of tuples (doc_id, text). These will all be converted into an iterable of tuples in the code.

Looks good - Would it make sense to move the corpus to the constructor (so the convertion logic etc is contained there)?

Looks good - Would it make sense to move the corpus to the constructor (so the convertion logic etc is contained there)?

This wouldn't really fit with the use case, unfortunately. @KennethEnevoldsen is currently using the deduper on separate datasets, one at a time, while preserving the internal state. So it needs to be able to process multiple datasets throughout its "lifetime".

@mollerhoj @KennethEnevoldsen Sorry about the many commits after I assigned you, I just realised that I needed to do way more optimisation to ensure that the deduper supports checkpointing while maintaining speed. See the updated description.


Can the simulator output audio info?

Dear Sir:
I found the image info from NESEnv. And also found the life/score etc at gym-super-mario-bros project, but only on SuperMarioBros, not other nes games.
Now can I get the audio output in my py program?

Hi, the audio DSP kernel is not implemented at the current moment with no immediate plans to do so. It is doable, but challenging; feel free to fork if you'd like to implement the audio kernel!


chore(main): release 0.7.0

:robot: I have created a release beep boop
0.7.0 (2024-10-10)
Features

exposed go context (c56c15c)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.7.0
:sunflower:


Separating the directline feature into a standalone service

Is your feature request related to a problem? Please describe.
Our client wants to run the Bot onprem and use their own custom web chat to communicate to the Bot.
Describe the solution you'd like
We would like the feature in Emulator, that opens a directline port, to be separated in a standalone service that is open source, just like the Bot Framework Emulator, with an example on how to start it and where the port it opened is stored.
Describe alternatives you've considered
The only alternative we found is the offline-directline service that has the limitation of being unable to pass attachments, last update was 3 years ago and there aren't any tutorials on how to get it up and running and use it with postman or REST calls in general.
Additional context
an example of what I am talking about.

an example on how we would like to use the port.

Thanks for the suggestion, we currently don't have plans to implement this feature. You could fork the emulator project and direct line clients for dotnet or JS and customize them to fit your needs.


Ignore namespace for deletion without err if any files are not marked for deletion

Codecov Report
Patch coverage has no change and project coverage change: -0.06 :warning:

Comparison is base (2501016) 37.36% compared to head (0e14bc9) 37.30%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #426      +/-   ##
==========================================
- Coverage   37.36%   37.30%   -0.06%
==========================================
  Files          49       49
  Lines        3129     3134       +5
==========================================
  Hits         1169     1169
- Misses       1832     1837       +5
  Partials      128      128

Impacted Files
Coverage Δ

pkg/environment/environmentApply.go
15.32% <0.00%> (-0.21%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Error posting to Instagram: Incompatible aspect ratio.

[youtube] Extracting URL: https://www.youtube.com/shorts/joGZTa9cSXA
[youtube] joGZTa9cSXA: Downloading webpage
[youtube] joGZTa9cSXA: Downloading ios player API JSON
[youtube] joGZTa9cSXA: Downloading player dee49cfa
[youtube] joGZTa9cSXA: Downloading m3u8 information
[info] joGZTa9cSXA: Downloading 1 format(s): 18
[download] Destination: videos\joGZTa9cSXA.mp4
[download] 100% of  874.24KiB in 00:00:01 at 739.22KiB/s
DEBUG post_to_instagram: Original video size: 360x360, aspect ratio: 1.0
Error posting to Instagram: Invalid video width.
[youtube] Extracting URL: https://www.youtube.com/shorts/tD30a4iR9eI
[youtube] tD30a4iR9eI: Downloading webpage
[youtube] tD30a4iR9eI: Downloading ios player API JSON
[youtube] tD30a4iR9eI: Downloading m3u8 information
[info] tD30a4iR9eI: Downloading 1 format(s): 22
[download] Destination: videos\tD30a4iR9eI.mp4
[download] 100% of    5.95MiB in 00:00:09 at 613.93KiB/s
DEBUG post_to_instagram: Original video size: 720x1280, aspect ratio: 0.5625
Error posting to Instagram: Incompatible aspect ratio.
[youtube] Extracting URL: https://www.youtube.com/shorts/m_XmGok23LQ
[youtube] m_XmGok23LQ: Downloading webpage
[youtube] m_XmGok23LQ: Downloading ios player API JSON
[youtube] m_XmGok23LQ: Downloading m3u8 information
[info] m_XmGok23LQ: Downloading 1 format(s): 22
[download] Destination: videos\m_XmGok23LQ.mp4
[download] 100% of    3.24MiB in 00:00:06 at 491.48KiB/s
DEBUG post_to_instagram: Original video size: 720x1280, aspect ratio: 0.5625
Error posting to Instagram: Incompatible aspect ratio.

Hi! The issue has been fixed.

[youtube] Extracting URL: https://www.youtube.com/shorts/M3jM4zya1BU
[youtube] M3jM4zya1BU: Downloading webpage
[youtube] M3jM4zya1BU: Downloading ios player API JSON
[youtube] M3jM4zya1BU: Downloading android player API JSON
[youtube] M3jM4zya1BU: Downloading m3u8 information
[info] M3jM4zya1BU: Downloading 1 format(s): 22
[download] Destination: videos\M3jM4zya1BU.mp4
[download] 100% of    7.76MiB in 00:00:05 at 1.31MiB/s
Error posting to Instagram: Duration is more than 15s.
[youtube] Extracting URL: https://www.youtube.com/shorts/FNMw-Cd0058
[youtube] FNMw-Cd0058: Downloading webpage
[youtube] FNMw-Cd0058: Downloading ios player API JSON
[youtube] FNMw-Cd0058: Downloading android player API JSON
[youtube] FNMw-Cd0058: Downloading m3u8 information
[info] FNMw-Cd0058: Downloading 1 format(s): 22
[download] Destination: videos\FNMw-Cd0058.mp4
[download] 100% of    1.65MiB in 00:00:01 at 971.39KiB/s
Error posting to Instagram: Duration is more than 15s.
[youtube] Extracting URL: https://www.youtube.com/shorts/Lq0G9_ioG7g
[youtube] Lq0G9_ioG7g: Downloading webpage
[youtube] Lq0G9_ioG7g: Downloading ios player API JSON
[youtube] Lq0G9_ioG7g: Downloading android player API JSON
[youtube] Lq0G9_ioG7g: Downloading m3u8 information
[info] Lq0G9_ioG7g: Downloading 1 format(s): 22
[download] Destination: videos\Lq0G9_ioG7g.mp4
[download] 100% of   10.52MiB in 00:00:07 at 1.39MiB/s
Error posting to Instagram: Duration is more than 15s.
[youtube] Extracting URL: https://www.youtube.com/shorts/I6K9iunFnP8
[youtube] I6K9iunFnP8: Downloading webpage
[youtube] I6K9iunFnP8: Downloading ios player API JSON
[youtube] I6K9iunFnP8: Downloading android player API JSON
[youtube] I6K9iunFnP8: Downloading m3u8 information
[info] I6K9iunFnP8: Downloading 1 format(s): 22
[download] Destination: videos\I6K9iunFnP8.mp4
[download] 100% of    7.58MiB in 00:00:05 at 1.38MiB/s
Error posting to Instagram: Duration is more than 15s.
[youtube] Extracting URL: https://www.youtube.com/shorts/whlR137meI8
[youtube] whlR137meI8: Downloading webpage
[youtube] whlR137meI8: Downloading ios player API JSON
[youtube] whlR137meI8: Downloading android player API JSON
[youtube] whlR137meI8: Downloading m3u8 information
[info] whlR137meI8: Downloading 1 format(s): 18
[download] videos\whlR137meI8.mp4 has already been downloaded
[download] 100% of  787.34KiB
Error parsing error response: Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\instagram_private_api\client.py", line 523, in _call_api
response = self.opener.open(req, timeout=self.timeout)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 523, in open
response = meth(req, response)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 632, in http_response
response = self.parent.error(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 561, in error
return self._call_chain(*args)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 494, in _call_chain
result = func(*args)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\urllib\request.py", line 641, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Software\Belajar Python\shorttoig\Shorts_To_Reels\main.py", line 128, in
main()
File "D:\Software\Belajar Python\shorttoig\Shorts_To_Reels\main.py", line 120, in main
post_to_instagram(api, output_path, caption)
File "D:\Software\Belajar Python\shorttoig\Shorts_To_Reels\main.py", line 94, in post_to_instagram
api.post_video(video_data, size=(width, height), duration=duration, thumbnail_data=thumbnail_data, caption=caption, to_reel=True)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\instagram_private_api\endpoints\upload.py", line 551, in post_video
res = self._call_api(endpoint, params=params, unsigned=True)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\instagram_private_api\client.py", line 527, in _call_api
ErrorHandler.process(e, error_response)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\instagram_private_api\errors.py", line 135, in process
raise ClientError(error_msg, http_error.code, error_response)
instagram_private_api.errors.ClientError: Not Found

Hi! Are you sure you entered the correct credentials for your instagram account?

Just added more debugging to the code, fixed a bit of an issue with an api. Check if it works now.


Create Main Menu

Menu created. Need to adjust colors and remove fourth menu item

Add billboard to menu

Billboard script added, tested and works.

Merged into the master.


EnumMap isn't generated if the number of enum values is less than container min size

If the container size is bigger then the number of enum values it will fail to generate the EnumMap.
This is a special case that should ignore the min container size.
Sample project:
https://github.com/esfomeado/monkey-enum-bug
Two tests are provided:
 void testWillAlwaysFail() - It will fail always since the container size is bigger than the number of enum values.
void testSometimesFail() - It will only fail sometimes since sometimes the container size is the same as the number of enum values.

@esfomeado
Thank you for reporting bug!
It would be fixed since 0.4.4
https://github.com/naver/fixture-monkey/pull/488

@seongahjo I've tested and it's working.
Thanks for the fix.


Tel or mailto links not working on WKWebview

Bug Report
Problem
http(s) links are working, not tel: or mailto: with WKwebview.
It's working with UIwebview
What does actually happen?
Nothing.
Message in Xcode : "Failed to load webpage with error: unsupported URL"
I found several discussion but I don't know how to implement them on Cordova.
https://stackoverflow.com/questions/33643326/catch-and-call-telephone-number-in-wkwebview
https://stackoverflow.com/questions/44835703/why-is-wkwebview-not-opening-a-telephone-link-in-ios-9
https://stackoverflow.com/questions/51460119/how-can-i-tap-a-phone-number-with-wkwebview
Thx in advance.
Jay

It seems to not be working on a simulator only. It is working on an actual device.

Thanks BradCB.
Not working from my side on the device too.

I could not get it to work in the simulator, wasn't seeing any errors in Xcode though. It seems to be working on a physical device though (iPhone 6).

Thanks BradCB.
Not working from my side on the device too, iPhone 11, iOS 13

Could you show your the code that is not working?

Any news about this?

I didn't find any solution yet...

@Vito96 :
I put these functions in my app.js and it's working now
`// URL link with InAppBrowser Plugin
$(document).on('click', 'a[href^=http], a[href^=https]', function(e){
        e.preventDefault();
        var $this = $(this);
        var target = $this.data('inAppBrowser') || '_blank';

        if(device.platform == "Android" && $this.attr('href').split('.').pop() == 'pdf') { // Fix PDF Android
            window.open('https://docs.google.com/viewer?url='+$this.attr('href'), target);
        } else {
            window.open($this.attr('href'), target, 'location=no,closebuttoncaption=< Fermer,toolbarposition=top,presentationstyle=fullscreen,transitionstyle=crossdissolve, usewkwebview=yes,toolbarcolor=#666db0,closebuttoncolor=#ffffff');
        }

    });

            //  MAILTO & TEL in InAppBrowser Plugin
    $(document).on('click', 'a[href^=mailto], a[href^=tel]', function(eb){

        eb.preventDefault();
        var $this = $(this);
        var target = $this.data('inAppBrowser') || '_system';

        if(device.platform == "Android" && $this.attr('href').split('.').pop() == 'pdf') { // Fix PDF Android
            window.open('https://docs.google.com/viewer?url='+$this.attr('href'), target);
        } else {
            window.open($this.attr('href'), target );
        }

    });`

You can just use the last version of InAppBrowser (4.1.0 for now), and open the external link* using "cordova.InAppBrowser.open" instead of "window.open". Also, include the "hidden=yes", like this (it fixed some problems in iOS):
cordova.InAppBrowser.open('https://www.google.com/', '_system', 'hidden=yes,location=yes');
*It also works with "mailto", "tel", "whatsapp"... for Android, you just have to allow the intent and give permissions in config.xml file, like this:
<access launch-external="yes" origin="tel:*" />
<access launch-external="yes" origin="mailto:*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />

Finally, if you want all page loads in your app to go through the InAppBrowser, you can simply hook "window.open" during initialization:
$ionicPlatform.ready(function () {
 if (ionic.Platform.isWebView()) {
   window.open = cordova.InAppBrowser.open;
 }
}

Adding this was sufficient for me to get tel: links working:
document.addEventListener("deviceready", function () {
    if (device.platform == 'iOS') {
        $(document).on('click', 'a[href^=mailto], a[href^=tel]', function (e) {
            e.preventDefault();
            var href = $(this).attr('href').replaceAll(' ', ''); // It doesn't like spaces in the phone number
            cordova.InAppBrowser.open(href, '_system');
        });
    }
}, false);

Install the latest inappbrowser plugin, and using the following code:
window.cordova.InAppBrowser.open('tel:xxxxxxx','_system');

window.cordova.InAppBrowser.open('tel:xxxxxxx','_system');

Hi @Netpolice i already implemented it but it's still not working , probably you have another solution that calling tel: in InAppBrowser

Any update?

Adding this was sufficient for me to get tel: links working:
document.addEventListener("deviceready", function () {
    if (device.platform == 'iOS') {
        $(document).on('click', 'a[href^=mailto], a[href^=tel]', function (e) {
            e.preventDefault();
            var href = $(this).attr('href').replaceAll(' ', ''); // It doesn't like spaces in the phone number
            cordova.InAppBrowser.open(href, '_system');
        });
    }
}, false);

encodeURIComponent($(this).attr('href'))

We are archiving this repository following Apache Cordova's Deprecation Policy. We will not continue to work on this repository. Therefore all issues and pull requests are being closed. Thanks for your contribution.


Don't allow expressions with v[w]; we don't support boolean maskig like numpy

Instead, use mask= keyword in the appropriate operation.
Also, for sanity, don't allow Vector, Matrix, or TransposedMatrix to be converted to numpy arrays.
Heads up: Some array creation semantics are changing in numpy 1.20.

I don't know of any other library defining __array__ or __array_struct__ to prevent from being converted to a numpy array, but this seems fine to me.  Merging.


Deprecate this SDK

This SDK exists to add push-notifications support to pusher-websocket-java. Since Channels push notifications are deprecated. We should deprecate this library, and encourage people to use pusher-websocket-java directly for Android apps.
Steps to deprecate:

Update the readme to mention use of this library is no longer the recommended approach
Remove it from https://pusher.com/docs/channels/channels_libraries/libraries
Remove reference to it in https://github.com/pusher/pusher-websocket-java/blob/master/README.md
Remove it from the dashboard

CC @pusher/mobile

Also need to add a notice to any tutorials using it on https://pusher.com/tutorials?tag=Android.


[RFC] Smarter package management

Feature description
As briefly discussed in #1252, there are several cases where Mason is simply dead and can't be used at all. My specific situation is that most of the pre-built binaries can't run on FreeBSD (of course), and Linux-emulation mode doesn't really help either. I need to constantly symlink the "correct" executables to Mason's bin directory to make things work, but that's laborious, and I really don't wanna do that anymore. imo we need a way to either bypass Mason completely or make it optional for OSs like NixOS and the BSDs.
Additional information
No response

The LSP servers, linters and formatters can actually be installed in system-wide on most systems, which means they are executable everywhere and maybe we just don't need mason at all?

The LSP servers, linters and formatters can actually be installed in system-wide on most systems, which means they are executable everywhere and maybe we just don't need mason at all?

Exactly! Initially, I was thinking of completely removing Mason, but without it, we'd lose the ability to automatically install those dependencies on a freshly installed system, which is kinda like the two sides of the same coin lol

Maybe ask user whether to install stuffs manually or by mason, store the choice and enable mason if that is true?

Yeah that's what I meant by "optional," but ideally, I'd like to find a way to automatically bypass Mason without any user interaction. In my case, I'd love Mason to be available on my Mac, but to be automatically disabled on my FreeBSD workstation. Especially in jails when I'm doing certain experimentation, I certainly don't wanna specify that option manually lmao

In my case, I'd love Mason to be available on my Mac, but to be automatically disabled on my FreeBSD workstation.

Maybe we can add an option as "platform" in our custom lazy.nvim loader?
If platform = {"XXX OS" = false} is not set, then it will default to install the plugin on whatever OS it's on.

Maybe we can add an option as "platform" in our custom lazy.nvim loader and utilized the enabled flag in lazy.nvim? If platform = {"XXX OS" = false} is not set, then it will default to install the plugin on whatever OS it's on. I personally would like to disable sniprun on windows since it could not be installed on windows lol

lol that's a great idea! Tho we'll need a way to automatically register those sources with lspconfig/none-ls/dap then.

After some consideration, I've decided to create a plugin that automates the control of those "bridging plugins" (like mason-null-ls.nvim). I'll share the link to the Reddit post here once it's completed lol


Update configs with new input paths

The input files for each of the ESM1.5 models have been reorganised. The pre-industrial and historical configurations need to be edited to use the new file locations.

Closed by #38 and #39


3D KinematicBody not affected by area gravity in Bullet Physics

Godot version:
aebdc4c2126789b915b0fb753f0594fec0f0226d
OS/device including version:
Windows 10 64bit
Issue description:
In the Godot physics engine I'm able to get the KinematicBody's direct state and get it's total gravity it's being affected by so I can make kinematic bodies respond to areas with gravity points and gravity in general
var state = PhysicsServer.body_get_direct_state(get_rid())
var gravity = state.get_total_gravity()

I thought I was able to do this before in the Bullet Physics engine but tested today and the gravity is just always Vector3( 0.0, 0.0, 0.0)
Steps to reproduce:

Create a KinematicBody with this script attached

extends KinematicBody

func _physics_process(delta):
	var state = PhysicsServer.body_get_direct_state(get_rid())
	print(state.get_total_gravity())

In project's settings set Physics > 3D > Physics Engine = Bullet
run the scene. It should print (0, 0, 0)

If you switch the 3D physics to GodotPhysics it should print (0, -9.8, 0)
Minimal reproduction project:
Kinematic3dGravityTest.zip

I ran into this on Linux as well and poked around the source to find the cause. Seems to be because the Bullet glue classifies it as a static body with no mass and Bullet doesn't compute gravity for rigid bodies with no mass. The way the Bullet built-in, and seemingly perpetually buggy, btKinematicCharacterController handled this was by re-implementing gravity during the preStep phase of the world simulation that took a gravity vector and had it influence the velocity vector before translation.
I tried replicating the functionality in a GDScript using the _physics_process phase, but ran into some edge cases that made realistic gravity somewhat difficult. Namely knowing when to reset your initial state so your instantaneous velocity is accurate, and how to get it to work with move_and_slide since move_and_slide scales with delta time for you. Those are probably able to be overcome with more work, but that's what I ran into in the few minutes of prototyping I spent on working around this issue.
Of course, adding a pseudo-gravity vector to the final velocity vector on every frame (assuming you tune the gravity vector so it feels right) could work for some cases.
Any input from a more regular dev on what the desired outcome is or how to approach solving this? I'd like to start contributing and figure this could be a good issue to cut my teeth on.

I completely forgot this issue, and I will look on this soon.
@Dar13 Also in both engines (Godot and Bullet physics) the kinematic body gravity is not handled by engine since the kinematic body is meant to be moved "Manually".
So it has no sense to handle its gravity inside the physics engine, and it's care by the developer handle it.

handled this was by re-implementing gravity

This is the correct way to handle it, if you don't want control it just use a rigidbody in character mode.
Instead @LeonardMeagher2 is talking about the fact that is not possible to take the gravity "that should affect the kinematic body" from its state object. It's not so difficult to fix it.
I'll keep you updated

So it has no sense to handle its gravity inside the physics engine, and it's care by the developer handle it.

Alright, that's what I kept drifting towards while writing that comment.

Instead @LeonardMeagher2 is talking about the fact that is not possible to take the gravity "that should affect the kinematic body" from its state object. It's not so difficult to fix it.

I know you said you'd look at it, but I looked into it anyways as an exercise to get familiar with the codebase. Came up with the attached patch and tested it with both the given project and with an Area with space override set to "Combine" and the gravity changed accordingly.
Patch:
diff --git a/modules/bullet/rigid_body_bullet.cpp b/modules/bullet/rigid_body_bullet.cpp
index 96a53f9f8..83c5f7b2d 100644
--- a/modules/bullet/rigid_body_bullet.cpp
+++ b/modules/bullet/rigid_body_bullet.cpp
@@ -832,7 +832,7 @@ void RigidBodyBullet::on_exit_area(AreaBullet *p_area) {

 void RigidBodyBullet::reload_space_override_modificator() {

-       if (!is_active())
+       if (!is_active() && mode != PhysicsServer::BODY_MODE_KINEMATIC)
                return;

        Vector3 newGravity(space->get_gravity_direction() * space->get_gravity_magnitude());

If this seems acceptable to you, I can make a PR tomorrow.


fix-issue-206

I solved the issue by removing the model-generated reply from the corresponding array when the user clicks the cancel button. However, this creates a situation where the user's questions may appear next to each other. I'm not sure if this is the best solution.

@Guocork Thanks for working on this issue.
I see a big problem with this approach: the cancel button is mostly used to interrupt the model streaming of the response, allowing to keep part of the generated output. It is true that the response should be deleted if the streaming has not started yet.
I have been thinking on this problem but in a separate pull request where we are integrating with another backend for agents.
Since there is no immediate plans to integrate all this PR, maybe you want to help to port some changes in the chat state management from this PR to this one?
If you're interested, please look at how in this PR there is a change in the Chat struct from having a bool is_streaming to state (which is an enum with a representation from the cancelled state among others).
https://github.com/moxin-org/moxin/pull/218/files#diff-cce49c6f311f98aee6e76e747d766858047b8a1711514e95ba9fc5344daa1eabL92-R120
Once the chat has this new state field, it would be possible to model the cancelled state, specially before the initial chunk of the response comes from the backend model.
Please let me know if you need more guidance or ideas.

@Guocork Thanks for working on this issue.
I see a big problem with this approach: the cancel button is mostly used to interrupt the model streaming of the response, allowing to keep part of the generated output. It is true that the response should be deleted if the streaming has not started yet.
I have been thinking on this problem but in a separate pull request where we are integrating with another backend for agents.
Since there is no immediate plans to integrate all this PR, maybe you want to help to port some changes in the chat state management from this PR to this one?
If you're interested, please look at how in this PR there is a change in the Chat struct from having a bool is_streaming to state (which is an enum with a representation from the cancelled state among others). https://github.com/moxin-org/moxin/pull/218/files#diff-cce49c6f311f98aee6e76e747d766858047b8a1711514e95ba9fc5344daa1eabL92-R120 Once the chat has this new state field, it would be possible to model the cancelled state, specially before the initial chunk of the response comes from the backend model.
Please let me know if you need more guidance or ideas.

OK，I got it. i will try to fix that.

I added a piece of logic, and it seems to have achieved the desired effect.


moved function create_meta_info to app/functions to ease future testing

@ryanlelek  followed your advice ;)

see #98 ...

Perfect! Merged
Not only will splitting those functions into files help with unit tests, it makes reviewing pull requests a lot easier and prevents merge conflicts


[BUG] GDCVault returns 500 Internal Server Error on subscriber-only content (with credentials)

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

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

Region
United States
Provide a description that is worded well enough to be understood
When accessing a GDCVault video listed with subscriber-only access, and valid credentials provided to the GDCVault extractor (via --username and --password), a 500 Internal Server Error is returned.

Known broken link: https://www.gdcvault.com/play/1027883/-Diablo-2-Resurrected-The

Known working link (note: GDCVault videos from 2020 or earlier do not require credentials): https://www.gdcvault.com/play/1026117/-Alexa-Give-Your-Game

Notably, the second link throws a warning but no error:
WARNING: [Kaltura] Login with password is not supported for this website. Use --cookies-from-browser or --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies

GDCVault has no existing issues tied to it specifically (open or closed). I sadly am not able to distribute my credentials for this site.
Provide verbose output that clearly demonstrates the problem

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

Complete Verbose Output
[debug] Command-line config: ['-vU', '-f', 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best', '-o', '%%(title)s.%%(ext)s', '--username', 'PRIVATE', '--password', 'PRIVATE', 'https://www.gdcvault.com/play/1027883/-Diablo-2-Resurrected-The']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.02.17 [a0a7c01] (pip)
[debug] Python 3.11.1 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1q  5 Jul 2022)
[debug] exe versions: ffmpeg 5.1.2-full_build-www.gyan.dev (setts), ffprobe 5.1.2-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1782 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2023.02.17, Current version: 2023.02.17
yt-dlp is up to date (2023.02.17)
[GDCVault] Extracting URL: https://www.gdcvault.com/play/1027883/-Diablo-2-Resurrected-The
[GDCVault] -Diablo-2-Resurrected-The: Downloading webpage
[GDCVault] -Diablo-2-Resurrected-The: Logging in
ERROR: [GDCVault] 1027883: Unable to download webpage: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\common.py", line 693, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\gdcvault.py", line 186, in _real_extract
    login_res = self._login(webpage_url, display_id)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\gdcvault.py", line 143, in _login
    self._download_webpage(request, display_id, 'Logging in')
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\common.py", line 1096, in _download_webpage
    return self.__download_webpage(url_or_request, video_id, note, errnote, None, fatal, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\common.py", line 1047, in download_content
    res = getattr(self, download_handle.__name__)(url_or_request, video_id, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\common.py", line 881, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\common.py", line 838, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\extractor\common.py", line 820, in _request_webpage
    return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\site-packages\yt_dlp\YoutubeDL.py", line 3726, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 525, in open
    response = meth(req, response)
               ^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 634, in http_response
    response = self.parent.error(
               ^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 557, in error
    result = self._call_chain(*args)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 496, in _call_chain
    result = func(*args)
             ^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 749, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 525, in open
    response = meth(req, response)
               ^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 634, in http_response
    response = self.parent.error(
               ^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 563, in error
    return self._call_chain(*args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 496, in _call_chain
    result = func(*args)
             ^^^^^^^^^^^
  File "C:\Python\Python-3.11\Lib\urllib\request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

WARNING: [Kaltura] Login with password is not supported for this website. Use --cookies-from-browser or --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies

Dev note: the extractor should probably be reworked to use _perform_login
@EliteMasterEric Have you tried passing cookies (as the warning suggested)? Or is cookie functionality broken too?
Also, I get a 500 error response from the site when I try to login to the site with a bad user/pass. Are you sure your password is being passed correctly? Try only passing your username in your command (-u "username"), and let yt-dlp then prompt you for the password. Inputting it this way will avoid any shell escaping issues

Manually entering the password does not work, using --cookies-from-browser firefox does correctly download the file.
So there is now a workaround, but a proper fix would be ideal.

If you are able to, you could try testing this patch:
diff --git a/yt_dlp/extractor/gdcvault.py b/yt_dlp/extractor/gdcvault.py
index 2878bbd88..4e7f120f8 100644
--- a/yt_dlp/extractor/gdcvault.py
+++ b/yt_dlp/extractor/gdcvault.py
@@ -1,11 +1,9 @@
-import re
-
 from .common import InfoExtractor
 from .kaltura import KalturaIE
 from ..utils import (
+    ExtractorError,
     HEADRequest,
     remove_start,
-    sanitized_Request,
     smuggle_url,
     urlencode_postdata,
 )
@@ -123,28 +121,22 @@ class GDCVaultIE(InfoExtractor):
         },
     ]

-    def _login(self, webpage_url, display_id):
-        username, password = self._get_login_info()
-        if username is None or password is None:
-            self.report_warning('It looks like ' + webpage_url + ' requires a login. Try specifying a username and password and try again.')
-            return None
-
-        mobj = re.match(r'(?P<root_url>https?://.*?/).*', webpage_url)
-        login_url = mobj.group('root_url') + 'api/login.php'
-        logout_url = mobj.group('root_url') + 'logout'
-
-        login_form = {
-            'email': username,
-            'password': password,
-        }
-
-        request = sanitized_Request(login_url, urlencode_postdata(login_form))
-        request.add_header('Content-Type', 'application/x-www-form-urlencoded')
-        self._download_webpage(request, display_id, 'Logging in')
-        start_page = self._download_webpage(webpage_url, display_id, 'Getting authenticated video page')
-        self._download_webpage(logout_url, display_id, 'Logging out')
-
-        return start_page
+    def _perform_login(self, username, password):
+        self._request_webpage(HEADRequest('https://www.gdcvault.com/login'), None, note='Setting up session')
+        login, urlh = self._download_webpage_handle(
+            'https://www.gdcvault.com/api/login.php', None, note='Logging in', data=urlencode_postdata({
+                'email': username,
+                'username': password,
+            }), headers={
+                'Content-Type': 'application/x-www-form-urlencoded',
+                'Origin': 'https://www.gdcvault.com',
+                'Referer': 'https://www.gdcvault.com/login',
+                'X-Requested-With': 'XMLHttpRequest',
+            }, expected_status=500)
+        if urlh.status == 500:
+            if 'Password is Incorrect' in login:
+                raise ExtractorError('Wrong username or password', expected=True)
+            raise ExtractorError('Error loggin in')

     def _real_extract(self, url):
         video_id, name = self._match_valid_url(url).groups()
@@ -177,21 +169,8 @@ def _real_extract(self, url):
             embed_url = smuggle_url(embed_url, {'source_url': url})
             ie_key = 'Kaltura'
         else:
-            PLAYER_REGEX = r'<iframe src="(?P<xml_root>.+?)/(?:gdc-)?player.*?\.html.*?".*?'
-
             xml_root = self._html_search_regex(
-                PLAYER_REGEX, start_page, 'xml root', default=None)
-            if xml_root is None:
-                # Probably need to authenticate
-                login_res = self._login(webpage_url, display_id)
-                if login_res is None:
-                    self.report_warning('Could not login.')
-                else:
-                    start_page = login_res
-                    # Grab the url from the authenticated page
-                    xml_root = self._html_search_regex(
-                        PLAYER_REGEX, start_page, 'xml root')
-
+                r'<iframe src="(?P<xml_root>.+?)/(?:gdc-)?player.*?\.html.*?".*?', start_page, 'xml root')
             xml_name = self._html_search_regex(
                 r'<iframe src=".*?\?xml(?:=|URL=xml/)(.+?\.xml).*?".*?',
                 start_page, 'xml filename', default=None)

I haven't tested it myself since I do not have an account. If the above patch does not work, I don't think there is any more that can be done unless someone is willing to share credentials

Hey I have an account currently, could you send me the .exe file generated with these changes to try if it fix the case?
Anyway, you could probably try this fix just trying to download any free video inside gdc vault, I do not think that it changes anything being logged as much as have access to more videos.
Thank you so much in advance!


Performance Impact if multiple collections used in Same partition

Hi Team,
We are having multiple Collections in a service, where one collection is maintaining the History information and other collection is used for application querying. Will the history Collection impact the performance of other collection, as our History collection is having so many records? Do we have any disadvantages for having such combination
Thanks Prabhuji.

There is no disadvantage with one huge dictionary, but it depends on your access patterns and your resource utilization. Are you running tight on your resources - memory, CPU, network and disk queue length?  I recommend tracking the resources above for you environment and you should be okay. Along with the resources, I would also suggest tracking GC counters. If you have any particular use case that you are concerned about- let us know, we are happy to help.
Thanks
Preetha

Thanks for the update Preetha, our history tables are not been used frequently.
And we are having plan to archive tables periodically.


SCPlayer shows black screen when changing an AVPlayerItem

When I'm changing an AVPlayerItem item with setItem: method, the renderer will turn black for a second. I have shouldSuppressPlayerRendering set to NO and CIRenderer only does calculation of features on the image and does not render it.

+1 https://github.com/rFlex/SCRecorder/issues/238


issues linked to multiple inheritance.

Dear Pymodaq team, dear Sebastien,
Last week, I wanted to implement the pymodaq-plugins-andor to drive an Andor system (Spectro Shamrock and CCD Newton).
So I cloned and installed the plugin available on Github.
After correcting the links to the dlls, I was able to start testing:

the Shamrock drive plugin alone works
the CCD-only plugin works
In order to benefit from the calibration features provided by the dll, I wanted to test and use the plugin that inherits from the 2 instruments, i.e. daq_1Dviewer_ShamrockCCD.
I couldn't make it work.

The first error is described by the following message:

_File "c:\repo\pymodaq_plugins_andor\src\pymodaq_plugins_andor\daq_viewer_plugins\plugins_1D\daq_1Dviewer_ShamrockCCD.py", >line 42, in init
    DAQ_Move_Shamrock.init(self, parent, params_state)
File "c:\repo\pymodaq_plugins_andor\src\pymodaq_plugins_andor\daq_move_plugins\daq_move_Shamrock.py", line 41, in init
    super().init(parent, params_state)  # initialize base class with common attributes and methods
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\repo\PyMoDAQ\src\pymodaq\control_modules\move_utility_classes.py", line 225, in init
    self._title = parent.title
                  ^^^^^^^^^^^^
AttributeError: 'DAQ_Detector' object has no attribute 'title'
2023-11-10 15:35:11,302 - pymodaq.pymodaq.daq_viewer.Det 00 - INFO - detector initialized: False
2023-11-10 15:36:11,537 - pymodaq.dashboard - INFO - Preset file: C:\ProgramData.pymodaq\preset_configs\CWPL.xml has been >loaded_

This problem is solved by adding

self.title=title

to the DAQ_Detector object (added on line 1177 of daq_viewer.py).
But other errors appear, and they look more tricky to fix : we come across an error originating on line 228 of move_utility_classes:

self._current_value = DatatActuator(self._title, data=np.zeros(...))
The error given as a result is :
Data should be an non-empty list of non-empty numpy array.

Debugging under pycharm seems complex and we've decided to publish this issue. Could it be related to the switch to pymodaq-v4 ?
Thank you for your help,
Pierre Valvin - L2C Montpellier

I'm on it

hello,
I've cleaned the problems and it shouldbe working now.
I tested:

AndorCCD and AndorSCMOS 2D plugins
Shamrock Move plugin
ShamrockCCD 1D pluign
ShamrockCCDComposition new 1D plugin

solved by PR #5 and published 1.1.0 release

Thank you Sebastien. Great ! We will test it asap and let you know.

Hi Sebastien, We have just checked the new plugin and it works perfeclty ! Thank you so much for your work,
Best,
Pierre


Build acceptance test for pricing.search

In order to effectively use the no missing translations test, we need to make sure that every page is visited during acceptance tests.
This issue tracks the missing pricing.search acceptance test
for ember new commers the value some.route is the route that's missing you can find them under router.js

I can work on this.

@remotevision it's yours. Thanks for contributing!

Since there is no update on this, can I work on this issue? @jkleinsc Can you give me suggestion how to test the "search" functions?

@baoqchau sure feel free to work on this.  As far as testing, you need to navigate to the module you are testing as the search is context sensitive to which module you are currently on.  So to testing pricing, you need to navigate to /pricing and then put a value in the search text box at the top of the navigation pane and then click on the magnifying glass to execute the search.  Does that make sense?

@jkleinsc should Elasticsearch be installed & running for Search (in general & for tests)?

@emadehsan there is a default search that runs when Elasticsearch isn't installed and that is used for testing.

For some reason default search is not working on my machine. One searching for a patient for example, it gives Uncaught TypeError: Cannot read property 'constructor' of undefined error

@emadehsan is that with the latest from GitHub?  If you have the latest, you will need to also run npm install

@emadehsan is that with the latest from GitHub? If you have the latest, you will need to also run npm install

@jkleinsc I have the latest clone of the repo but still Search doesn't work with CouchDB 2. When I tested with CouchDB 1.6, the search is working fine.
Can you confirm this?

@emadehsan I haven't tested it in CouchDB 2 so it is possible it doesn't work right now.  I think in general for our upcoming 1.0 release we need to back away from CouchDB 2 as there are other issues with using it right now.

Note that the actual search function does not seem to work....


webhooks/gci: Support claim, comment, submit, approve event types.

@timabbott: Done! :)

Merged, after some small changes in how the docs explain what this integration's story is:
@@ -9,9 +9,8 @@ you can now get Task notifications in Zulip!
 To set up the webhook, send the URL you constructed above to
<EMAIL_ADDRESS>to be configured.

-Note that because the GCI outgoing webhook API is very new, this
-integration only supports the "abandon" event type.  We plan to expand
-it further as the other event types are documented.
+Note that the GCI outgoing webhook API itself is experimental, so this
+integration may suddenly require changes to continue working.

 {!congrats.md!}

Thanks @eeshangarg!


enable support for contemporary miniupnpc library.

I've noticed that ppcoin will not compile on modern Linux distributions and latest 10.11 OS X. This patch will fix it by adding support for modern libminiupnpc which is needed for upnp.

Hi Peerchemist,
Sunny like to have them as a backported commit.
I'll do this with the unit test pull request, so it should be in the next release.

fixed in https://github.com/ppcoin/ppcoin/pull/112

Ok, thx.


mime type for html files

I am trying to push a component with some html files in it.
The mime type gets pushed to the library as application/octect-stream.
Can we add a mime type of html files as well.
I see the mime types defined in the below file,
https://github.com/opentable/oc/blob/master/src/utils/get-mime-type.js

sure @NapoleanReigns - would you like to make a pull request, or want us to do it?

@matteofigus i can float a pull request.


Implement block generator from JSON config file

And I think we can add one more thing here: application in flake.nix just like it's done for assigner. Then you can build and run block generator with Nix using
nix run .#block_gen -- <args>


Dedicated Server Support

Currently the game assumes there's at least 1 player. This means it doesn't work on dedis.
Add a "waiting for players" state that doesn't do anything until at least 1p has joined

I'm probably not going to add this until the game is more finished. I don't want people running out of date dedis.


UML class diagram doesn't "see" classes in namespaces

I'm trying to get a class diagram of my project, which is still structured as a Global namespace (I know, I should move to external modules, but I have a lot of preexisting code that it is still not ready! :smile: ) ,
My code looks like this:
namespace DDDTools.Repository {

[...]

    export abstract class BaseRepositoryAsync<T extends BaseAggregateRoot<T, TKey>, TKey extends IKeyValueObject<TKey>>
        implements IRepositoryAsync<T, TKey> {

[...]

but when running UML class diagram from alm, I sadly get "No classes in file"... Am I missing something ?
P.S.: Thank you for alm, it is already a great tool !!!

I was just lazy and ignored this. I'll fix it asap 🌹

Released with 0.0.67 :rose:


Multiturn extraction Error

Hi,
I try to make my own Document to use with the multiturn extraction and I could not figure out, why it would not recognize my different Levels of structure. Here stands it has to have different font size so the algorithm can detect and differentiate the levels.
BUT it must also have the first letter capitalized! Without it does not detect prompts.
Please add this to the requirements for time-saving purposes.
Have a great day.

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

ID: 38f6b983-0c19-6439-78df-ea7bdab3f94e
Version Independent ID: 15dc8197-fed8-a94f-4143-2799d5e6a002
Content: Multi-turn conversations - QnA Maker - Azure Cognitive Services
Content Source: articles/cognitive-services/QnAMaker/How-To/multiturn-conversation.md
Service: cognitive-services
Sub-service: qna-maker
GitHub Login: @diberry
Microsoft Alias: diberry

@MaxMueller0815 Thanks for the feedback! We are currently investigating and will update you shortly.

This will be updated in the next 24 hours. #please-close


model and parent component are using the same child component ,the modal will be error

this is parent component html

this is model's html

I wrote an ionicpage with modal,and using the component 'leafletlayerlist' both of the parentp page and modal. but when I open then modal,it will be error!
this is error

Hello! While we appreciate you opening an issue with us I am going to close this issue and ask that you open a new one that has the issue template filled out, please.
Also please provide a sample application demonstrating the issue you are having and share it via GitHub or StackBlitz. This will be especially important in your case as this seems like a somewhat complex scenario and I want to make sure we are properly addressing your actual issue.
Thanks for using Ionic!


Could not finish creating my wallet account

My wallet account doesn't seem to exist.
I just can not access and when I try to recover (by the link I got by email), it says "We found 0 accounts secured by this link" as the screenshot:

I think I had a problem when I was finisthing to create my wallet and now I am stucked.
Is that a way to finish creating my wallet?
Thank you very much
Hoana

its not relevant to Astro UI, you should post your question in Wallet repo


Add (built-in) multi-target support

Hi!
Thank you for providing this useful AutoML package.
In several of the main tree models (e.g. XGBoost 2.0, CatBoost) the regressors support fitting against multiple targets (see here and here). With recent advances with multi_output_tree, these multi-output regression/classification models tend to be pretty useful.
Would it be possible to modify the AutoML class to support passing a 2-d "y" targets array-like input to .fit() for regression tasks ?
I think the implementation would require:

modifying asserts / code checks to accept a 2-d multi-targets
if multi-output input is detected: assert that the model list is supported (e.g. XGBoost & CatBoost work, whereas LightGBM does not yet have built-in support for it outside of wrapping with sklearn MultiOutput Regressor). Then modify default parameters to accomodate multi-target as needed, e.g. for CatBoost regression the default objective needs to be "MultiRMSE" instead of "RMSE". These are minor changes to default parametrization, if any.
ensure splitters split y, if 2D, correctly and pass as-is to the underlying model(s)
for cross-validate scores: define a default policy of e.g. averaging scores per target to be used as final tuning validation score

Doing this abstracts away implementation details of single vs multi-output for users and allows FLAML to "just work" for either
Thanks for considering,
Azmy

I agree this would be really nice to have (multilevel classification too)!


batch service

2 in 1 for better flexibility

Connected this issue with #928. @acud , lmk if this is good (or not)


Fix some valid GCC warnings

One is a missing return, the other is size_t for an int parameter in printf.

Thanks.


Cucumber Features are not uploaded on Jira tickets

In continuation to our previous issue, I realized that the newly created tickets, as in issue 83 described, have no cucumber steps, although I have set:
cucumber: {
      featureFileExtension: '.feature',
      uploadFeatures: true,
    },

Thanks for reporting this issue, I will investigate and get back to you as soon as possible.

Here is a scenario outline example which creates 2 jira tickets:
  @TC-2929 @TC-3166 @happypath
  Scenario Outline: Neuen Benutzer erstellen
    When user fills username with "<user>"
    And user fills password with "<user>"
    And user clicks on login
    And user checks if language is set to German
    When fills in the mandatory fields to create a new user
      | userid        | expirationdate |
      | <userexample> | <dateexample>  |
    When choosing the search result "<prefix>"
    And the group button "<role>" is clicked
    Then the button "Erstellen" is enabled
    When an email is filled "<email>"
    And the button "Erstellen" is clicked
    Then a toast message is shown "Benutzer erfolgreich erstellt."
    And user sees <number> "Einträge" on <pagenumber> pages
    When user clicks on search field "#userId" of "User-ID"
    And user searches on "#userId" for "<userexample>"
    Then the filtered "<userlowercase>" is shown

    Examples:
      | user    | userexample | userlowercase | number | pagenumber | dateexample | prefix | email          | role                |
      | user1 | XYZ123      | xyz123        | 52     | 6          | 31.08.2030  | AA     |<EMAIL_ADDRESS>| Systemadministrator |
      | user2 | VIZ123      | viz123        | 46     | 5          | 18.06.2030  | AV     |<EMAIL_ADDRESS>| Intern              |

Happy to hear that!


install and get infinite loop by composer

I'm also trying many computers with symfony 4.4 and 5.4 and sentry-symfony:3.5 and sentry-symfony:4.5 it goes into infinite loop
Example
composer create-project symfony/website-skeleton:"^5.4" test_project
cd test_project
rm composer.lock
composer require sentry/sentry-symfony:^3.5
and I get this infinite loop
OUTPUT :
Package sensio/framework-extra-bundle is abandoned, you should avoid using it. Use Symfony instead.
Generating optimized autoload files
120 packages you are using are looking for funding.
Use the composer fund command to find out more!
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Restricting packages listed in "symfony/symfony" to "5.4.*"
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove

The issue depends on php-http/discovery 1.15 and the fact that it now brings a Composer plugin, see:

https://github.com/php-http/discovery/issues/213
https://github.com/getsentry/sentry-php/pull/1464

You can work around this by pinning discovery below 1.15, or by allowin/disallowing it explicitly as a plugin in Composer, using  composer config --no-plugins allow-plugins.php-http/discovery [true|false] as suggested in https://github.com/php-http/discovery/issues/213#issuecomment-1424302584.

I updated my composer.json file and the problem was fixed thank you @Jean85
"php-http/discovery" : "1.14.3", <- add this line
"sentry/sentry-symfony": "^3.5",

For now, we can't really do much on our end besides locking the version to before 1.15, which also has its downsides.


Any plans to release v5?

The previews you posted are amazing, and a lot of people need/want to use it.
Do you have any idea when they will be released?
Thanks a lot.

it's probably dead tbh

Very sad. I manage somewhat with stable-diffusion but I would really like to try this out...

yes i have been looking for a manga colorizer for a while, with all the ai it seems like there would be one

I mean, stable diffusion will work as a colorizer.
Use a drawing/manga/anime/watercolor/etc model, use a controlnet to do lineart coloring (see tutorials on the internet), get the final image, and merge it with the original with a multiply operation, and you'll have a pretty ok coloring.

there was a animated music video and i thought it would be fun to try and colorize it. also thanks for showing me it is still possible

https://discord.com/invite/hZRX9KDq
Theres this discord ai manga color they different apps or style2paints and inkhue dunno i forgot

thanks

https://discord.com/invite/hZRX9KDq Theres this discord ai manga color they different apps or style2paints and inkhue dunno i forgot they use like 2 apps

thanks


Use global:: namespace qualifier when referring to System namespace

Yo 👋🏻
Got a compilation in a file when hot-reloaded which was in place where System is also a local namespace, so compiler couldn't resolve generated reference to System.Collections at
private static System.Collections.Generic.Dictionary<string, System.Func<object>> __Patched_NewFieldNameToInitialValueFn = new System.Collections.Generic.Dictionary<string, System.Func<object>>
{
};

This fix qualifies these 3 references to System with global:: to properly resolve.
References
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/namespace-alias-qualifier

Hi. I might be able to put together an example sometime in the near future.
The problem isn't referencing System per se, the problem is having your own namespace named System (which also then doesn't include the namespace Collections). So even writing using System.Collections; yourself would cause an error.

Right, so here's an example C# project that contains a file that wouldn't hot reload properly, as you can see here it even fails to compile without the global:: alias. I think you need a Common Namespace/Sub Namespace/Some File To Hot-reload and then to make it break also Common Namespace/System/Some Class. I don't think you even have to use Some Class from the code that breaks, only that it exists. I guess the namespace resolver walks upwards looking for a match, given that it now think that anything named System is a shorthand for TestProject.Example.System and not the .NET root System.

Let me know if you really want a Unity project and I guess I can get around to it.. 🙃

NB adding using System.Collections; to the file is perfectly fine and doesn't cause an issue, only that Rider (in my case) will be like "hey why are you including System.Collections when you're not even using it?"

alright I see now, thanks - it's good addition


chore: improve vscode extension debug dx

Summary
This PR introduces a VS Code configuration that aims to improve the development experience of the Biome extension.

[x] Adds a debug launch configuration
[x] Adds a watch task that the debug launch depends on

https://github.com/biomejs/biome/assets/649677/302c8639-291c-49c8-a372-57ca4ef4a5ff

Do you plan to update the documentation of the extension?

Yes, I do.


feat(web-server): Allow Range headers in web server.

Adds the ability to use Range headers in the web server (#2140).

Thanks, could you also add a note to the documentation so users know this exists and works please?

I couldn't find an obvious place to add to the documentation, so I added a section in the Files file.
Also, re-reading the spec, my handling of multiple ranges was incorrect.  So I removed support for multiple ranges since it would be more complicated to add it.

Thanks :octocat:


0.13.0开始无法启动vue3项目

Describe the bug
到0.12.2都可以正常使用，从0.13.0开始，启动项目后会报异常

isFunction 没能正常导入，提示为undefined

is Function是从@vue/shared中导入的，其他函数也未能导入

降回0.12.2后可以正常使用
Reproduction
无
System Info
"@vue/runtime-core": "^3.2.47",
"@vue/shared": "^3.2.47",
"@vueuse/core": "^9.12.0",
"@vueuse/shared": "^9.12.0",
"@zxcvbn-ts/core": "^2.2.1",
"ant-design-vue": "^3.2.15",
"@vitejs/plugin-legacy": "^4.0.1",
"@vitejs/plugin-vue": "^4.0.0",
"@vitejs/plugin-vue-jsx": "^3.0.0",
"@vue/compiler-sfc": "^3.2.47",
"vite": "^4.1.1",
"vue-tsc": "^1.0.24",

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

解决了吗？我也遇到同样情况了

我启动是 ok 的，请问可以提供可复现的 git 仓库吗？

We temporarily close this due to the lack of enough information.
Please provide a minimal reproduction to reopen the issue.
Thanks.

Why reproduction is required

git 源码: https://gitee.com/cao_zheng_zhe/v3-demo.git

same problem


deb.package shows License: Unknown, updates: Unknown

#3239
When opening our .deb package in the software center I see that license and updates show unknown. This does not look user friendly, could we improve it somehow?

Looks like license might be pulled from the debian/copyright file:

https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
https://www.debian.org/doc/manuals/maint-guide/dreq.en.html

Updates may be pulled from debian/changelog, not sure we would want to maintain this file though.

Ubuntu Software Center has an issue where it displays only those in official repos, not based on the DEBIAN/copyright file:

What is currently in Karmic Beta is not very good nor useful.
it just says
"License: Open Source"
For everything in main and universe
and "unknown" for things in multiverse
"proprietary" for things in restricted
instead of "Open Source" software-center needs to use the copyright information from the packages
see http://dep.debian.net/deps/dep5/

https://bugs.launchpad.net/ubuntu/+source/software-center/+bug/435183/comments/5
This issue can be closed when the DEBIAN/copyright file serves the correct license for both official and OSS builds.

Actually considering that this license does not seem to be exposed anywhere, just available by extracting the deb, I won't go ahead with this.


DNS through Pages

Summary
Replaces $ in code blocks and moves to output where appropriate

Relates to #16210


Consider id property of schemas during resolution

We should support altering the resolution scope if an id property is encountered during resolution , see http://json-schema.org/latest/json-schema-core.html#anchor27

tv4 for example offers the tv4.normSchema(schema) method. However there are limitations to nested ids, as they are not simply concatenated but resolved according to rfc3986.


Problem when using external clock source

Usually I clock my precision devices from external 8MHz crystal and it fails to work here.
There is my setup:
            // Setup clock from 8 MHz external crystal and 48 MHz PLL
            let mut rcc = p.RCC
                .configure()
                .hse(8.mhz())
                .sysclk(48.mhz())
                .freeze(&mut p.FLASH);

There infinite busy-loop occurs on PLL ready flag awaiting.
To exclude hardware problems I tried to load code from other project in C with similar setup and it works as expected.
It seems PLL multiplier calculation is wrong because in case of using HSE as a clock source according to datasheet the input frequency does not divided by two alike a case when HSI is used.
I may mistake but that my debugger says:
// before enable_pll()
(gdb) svd RCC CR
Fields in RCC CR:
        HSION:     1  Internal High Speed clock enable
        HSIRDY:    1  Internal High Speed clock ready flag
        HSITRIM:  16  Internal High Speed clock trimming
        HSICAL:   93  Internal High Speed clock Calibration
        HSEON:     1  External High Speed clock enable
        HSERDY:    1  External High Speed clock ready flag
        HSEBYP:    0  External High Speed clock Bypass
        CSSON:     1  Clock Security System enable
        PLLON:     0  PLL enable
        PLLRDY:    0  PLL clock ready flag
(gdb) s
stm32f0xx_hal::rcc::inner::enable_pll (rcc=<optimized out>, c_src=0x20000fe0, ppre_bits=<optimized out>,
    hpre_bits=<optimized out>, pllmul_bits=<optimized out>)
// after enable_pll()
(gdb) svd RCC CR
Fields in RCC CR:
        HSION:     1  Internal High Speed clock enable
        HSIRDY:    1  Internal High Speed clock ready flag
        HSITRIM:  16  Internal High Speed clock trimming
        HSICAL:   93  Internal High Speed clock Calibration
        HSEON:     0  External High Speed clock enable
        HSERDY:    0  External High Speed clock ready flag
        HSEBYP:    0  External High Speed clock Bypass
        CSSON:     0  Clock Security System enable
        PLLON:     1  PLL enable
        PLLRDY:    0  PLL clock ready flag
(gdb) svd RCC CFGR
Fields in RCC CFGR:
        SW:         0  System clock Switch
        SWS:        0  System Clock Switch Status
        HPRE:       0  AHB prescaler
        PPRE:       0  APB Low speed prescaler (APB1)
        ADCPRE:     0  ADC prescaler
        PLLSRC:     2  PLL input clock source
        PLLXTPRE:   0  HSE divider for PLL entry
        PLLMUL:    10  PLL Multiplication Factor
        MCO:        0  Microcontroller clock output
        MCOPRE:     0  Microcontroller Clock Output Prescaler
        PLLNODIV:   0  PLL clock not divided for MCO

Unexpectedly HSE turned off and the PLLMUL is 10 (x12 multiplier) when 4 (x6) is expected.

I tried to set correct PLLMUL but it doesn't help.
Strange, I have no problems with project in C where I setup clock in a next way:
  RCC_CR |= (RCC_CR_HSEON | RCC_CR_CSSON);
  for (; !((RCC_CR & (RCC_CR_HSERDY))); );
  RCC_CFGR = (RCC_CFGR & ~(RCC_CFGR_SW | RCC_CFGR_HPRE | RCC_CFGR_PPRE | RCC_CFGR_PLLMUL | RCC_CFGR_PLLSRC))
    | (RCC_CFGR_SW_HSE | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_PPRE_DIV1 | RCC_CFGR_PLLMUL_MUL6 | RCC_CFGR_PLLSRC_HSE);
  FLASH_ACR |= (FLASH_ACR_LATENCY_1WS);
  RCC_CR |= (RCC_CR_PLLON);
  for (; !((RCC_CR & (RCC_CR_PLLRDY))); );
  RCC_CFGR = (RCC_CFGR & ~(RCC_CFGR_SW))
    | (RCC_CFGR_SW_PLL);


Type Mapping ignored for input types with nesting

I've found that if you have input types specified in the typeMapping configuration, but there's still generated types that need to reference the non-generated types then the codegen will generate the types that should not have been created and use the generated version as the reference in other files. This sounds very confusing so let me show some examples:
build.gradle.kts:
tasks.withType<com.netflix.graphql.dgs.codegen.gradle.GenerateJavaTask> {
 // other configuration here

  typeMapping = mutableMapOf(
        // scalar mappings
        "Decimal" to "java.math.BigDecimal",
        "Duration" to "kotlin.time.Duration",
        "UUID" to "java.util.UUID",
        "JSON" to "com.fasterxml.jackson.databind.JsonNode",

        // manually coded input objects
        "AddtRuleInput" to "com.mystuff.graphql.dataclasses.AddRuleInput",
        "UpdateRuleInput" to "com.mystuff.graphql.dataclasses.UpdatetRuleInput"
  )
}

GraphQL Input Types
input AddRuleInput {
    name: String!
    adjustmentType: AdjustmentType!
    adjustmentAmount: Decimal!
    ruleTypes: [RuleType!]!
    startDate: DateTime!
    endDate: DateTime
    alwaysApplied: Boolean
    entityType: EntityType
    ruleDefinition: String
}

input UpdateRuleInput {
    id: UUID!
    name: String!
    adjustmentType: AdjustmentType!
    adjustmentAmount: Decimal!
    ruleTypes: [RuleType!]!
    startDate: DateTime!
    endDate: DateTime
    alwaysApplied: Boolean
    entityType: EntityType
    ruleDefinition: String
}

input AdjustmentInput {
    companyId: UUID!
    subscriptionId: UUID!
    startDate: DateTime!
    endDate: DateTime
    adjustmentRuleId: UUID
    customAdjustmentRule: AddRuleInput
}

From this schema & configuration the codegen is still creating types for UpdateRuleInput & AddRuleInput. And within the generated AdjustmentInput it will reference the generated type instead of the type it should have been mapped to that already exists in the codebase.

Nevermind, I found a typo. Surprised there was no errors though.


[bug] Wrong implementation of operator+= with negative numbers

When the operator+= is used with a signed integer it returns a wrong result when a negative amount is added as follows:
// g++ test.cpp uint128_t/uint128_t.cpp -g -o test -std=c++11
#include <iostream>
#include "uint128_t/uint128_t.h"

int main(int argc, char *argv[])
{
	int i = -1;
	uint128_t u128 = 10;
	uint64_t u64 = 10;

	u128 += i;
	u64 += i;
	std::cout << "u128=" << u128.str() << " u64=" << u64 << " TEST RESULT=" << (u128 == u64 ? "OK" : "FAIL") << std::endl;

	u128 = 10;
	u64 = 10;
	i = 1;
	u128 += i;
	u64 += i;
	std::cout << "u128=" << u128.str() << " u64=" << u64 << " TEST RESULT=" << (u128 == u64 ?  "OK" : "FAIL") << std::endl;

	return 0;
}

output:
u128=18446744073709551625 u64=9 TEST RESULT=FAIL
u128=11 u64=11 TEST RESULT=OK

It returns<PHONE_NUMBER>3709551625 instead of 9.

Hi. This is a known feature (?) of uint128_t.
From the README:

Be careful when initializing a uint128_t value. -1 does not create the value 2^128 - 1. Rather, it uses the built-in max unsigned value (probably 2^64 - 1).

This is not about when I initialise a uint128_t. This is when I add a negative number to an existing uint128_t variable. In this situation it returns a wrong value. This is very dangerous bug.

Why are you using negative integers when using a uintX_t type?

Why not? I need to add and subtract signed numbers to numbers uint128_t there is no difference between 145-140 and 145 + (- 140) but two different results returns. This does not happen with uint64_t, uint32_t, etc then I think this is dangerous.
The same occurs when I use a negative number with all add and subtract operators operator-= operator- operator+ operator-=
A possible solution
template <typename T, typename = typename std::enable_if<std::is_integral<T>::value, T>::type >
uint128_t operator+(const T & rhs) const{
	if(rhs>0)
		return uint128_t(UPPER + ((LOWER + (uint64_t) rhs) < LOWER), LOWER + (uint64_t) rhs);
	else
		return uint128_t((uint64_t) (UPPER + ((LOWER + rhs) > LOWER)), (uint64_t) (LOWER + rhs));
}

template <typename T, typename = typename std::enable_if<std::is_integral<T>::value, T>::type >
uint128_t & operator+=(const T & rhs){
	if(UPPER!=0)
		UPPER = UPPER + ((LOWER + rhs) < LOWER);
	LOWER = LOWER + rhs;
	return *this;
}

template <typename T, typename = typename std::enable_if<std::is_integral<T>::value, T>::type >
uint128_t operator-(const T & rhs) const{
	if(rhs>0)
		return uint128_t((uint64_t) (UPPER - ((LOWER - rhs) > LOWER)), (uint64_t) (LOWER - rhs));
	else
		return uint128_t(UPPER - ((LOWER - (int64_t) rhs) < LOWER), LOWER - (int64_t) rhs);
}

template <typename T, typename = typename std::enable_if<std::is_integral<T>::value, T>::type >
uint128_t & operator-=(const T & rhs){
	if(UPPER!=0)
		UPPER = UPPER - ((LOWER - rhs) < LOWER);
	LOWER = LOWER - rhs;
	return *this;
}

I’m testing these changes, it seems to work ok. https://github.com/nilhcraiv/uint128_t/commit/79dde46ee407b80a4a891d1dc4ffc6aee1f96bee

Simpler fix with https://github.com/calccrypto/uint128_t/commit/92922b08312c39e5c65d7a82f3a5d9eb2b375229

Simpler fix with https://github.com/calccrypto/uint128_t/commit/ca53febb5f0b5eb954f2c27249b2024510c2a6d2

@calccrypto I think you should add
if (std::is_signed<T>::value) {
                if (rhs < 0) {
                    UPPER = -1;
                }
            }

in operator=(const T & rhs) too.


Elf loader sample app doesn't build

tested with master
make[3]: Entering directory '/root/nuttx/apps/examples/elf'
make[4]: Entering directory '/root/nuttx/apps/examples/elf/tests'
make[5]: Entering directory '/root/nuttx/apps/examples/elf/tests/errno'
LD: errno.o
arm-none-eabi-ld: warning: cannot find entry symbol _start; defaulting to 00008000
errno.o: In function main': errno.c:(.text+0x2c): undefined reference to fwrite'
errno.c:(.text+0x48): undefined reference to fwrite' errno.c:(.text+0x54): undefined reference to fopen'
errno.c:(.text+0x80): undefined reference to fprintf' errno.c:(.text+0x88): undefined reference to exit'
errno.c:(.text+0x98): undefined reference to __errno' errno.c:(.text+0xb0): undefined reference to fprintf'
errno.c:(.text+0xc8): undefined reference to `_impure_ptr'
make[5]: *** [Makefile:70: errno] Error 1

@kernelgurumeditation which configuration are you trying this with? There are some examples such as spresense:elf that I can confirm build.  You can find that config here boards/arm/cxd56xx/spresense/configs/elf/defconfig

hi @btashton ,
thanks for the reply,
I'm trying with nucleo-h743zi/nsh and enabling the Elf support and the Elf loader sample App... should it not work?
I had a look at the spresense/configs/elf/defconfig file, and there is no option difference that would explain the failure...
Is this an issue with the link scripts?
Thanks

That is helpful, I have that board, I will try to do a functional test this evening.

There are changes needed to the nucleo-h743zi/scripts/Make.defs file as
well.
See diff stm32h7/nucleo-h743zi/scripts/Make.defs
cxd56xx/spresense/scripts/Make.defs
Here are some necessary additions:
72a79,103

Loadable module definitions
CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
LDMODULEFLAGS = -r -e module_initialize
ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
   LDMODULEFLAGS += -T "${shell cygpath -w
$(TOPDIR)/libs/libc/modlib/gnu-elf.ld}"
else
   LDMODULEFLAGS += -T $(TOPDIR)/libs/libc/modlib/gnu-elf.ld
endif
ELF module definitions
CELFFLAGS = $(CFLAGS)
CXXELFFLAGS = $(CXXFLAGS)
LDELFFLAGS = -r -e main
ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
   LDELFFLAGS += -T "${shell cygpath -w
$(BOARD_DIR)$(DELIM)scripts$(DELIM)gnu-elf.ld}"
else
   LDELFFLAGS += -T $(BOARD_DIR)$(DELIM)scripts$(DELIM)gnu-elf.ld
endif

The latter ELF definitions are certainly necessary.
On 11/19/2020 12:00 PM, Nuno Felicio wrote:

hi @btashton https://github.com/btashton ,
thanks for the reply,
I'm trying with nucleo-h743zi/nsh and enabling the Elf support and the
Elf loader sample App... should it not work?
I had a look at the spresense/configs/elf/defconfig file, and there is
no option difference that would explain the failure...
Is this an issue with the link scripts?
Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-nuttx-apps/issues/481#issuecomment-730541897,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABFUG6TU4YE5FVH22Z3FPKLSQVMKXANCNFSM4TXY3IMA.

But, it's the wrong direction to duplicate the common setting to individual Make.defs. I have saw many people complain some advanced features don't work(e.g. elf, c++...), just because Make.defs doesn't have the necessary options. We need fix the problem for all board, otherwise people will complain again and again.

Well,  talking as the new Guy..... my main issue is not knowing what is
expected to work.
This is an RTOS, not windows, typically the ppl who search/work on this is
not expecting all to work... but we would like to know, what is expected to
work...
What is very interesting for me regarding NuttX is being a Posixish system
and having a   shell makes it very comfortable for a Unix guy like me, and
it's really amazing what this little OS can do :)
PS: I tried to replicate the Make.defs settings and it didn't fix it...
On Fri, Nov 20, 2020 at 2:43 AM Xiang Xiao<EMAIL_ADDRESS>wrote:

But, it's the wrong direction to duplicate the common setting to
individual Make.defs. I have saw many people complain some advanced
features don't work(e.g. elf, c++...), just because Make.defs doesn't have
the necessary options. We need fix the problem for all board, otherwise
people will complain again and again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-nuttx-apps/issues/481#issuecomment-730809390,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEXNEXI2BMNFF4K72T2AIGLSQXJVPANCNFSM4TXY3IMA
.

@xiaoxiang781216 I agree that we should move more of this code into a single place, but for now I added a fully functional configuration for his board.  This is also helpful for me because I do not have the other boards that use this configuration so I can better test this in the future.
I also want to work on getting these features added into the new documentation as well.

@btashton, thanks for fixing it.
PS: I fixed the USB HOST OTG port for this board, if you want the fix I can send it.

Sure I'm happy to review it. I really want to pull some of the common board logic out so we don't have to keep copy pasting it for every variant, but that will take some time.

Ok,
it's at    https://github.com/apache/incubator-nuttx/pull/2353
Not pretty but works, and can be useful to someone :)


fix(store/odsq4): fix order of opened flag stored

Opened bool was stored before actual value of q4 was updated, which made it possible for concurrent reader to read nil value before it was updated.
Alternatively code can be refactored to use RWMutex instead of Mutex+atomic.Bool, which can improve readability of logic.

Sounds like sync.Once to me. However it's up to you.

@cristaloleg, see this https://github.com/golang/go/issues/41690

@cristaloleg, this does not work for this case we need, unfortunately. We need to know if the once actually happened, while the OnceValue only gives a memoized value, which might be zero or not on its own

Codecov Report
Attention: Patch coverage is 60.00000% with 2 lines in your changes missing coverage. Please review.

Please upload report for BASE (shwap@15ebe17). Learn more about missing BASE report.

Files with missing lines
Patch %
Lines

store/file/ods_q4.go
60.00%
0 Missing and 2 partials :warning:

Additional details and impacted files
@@           Coverage Diff            @@
##             shwap    #3735   +/-   ##
========================================
  Coverage         ?   46.68%
========================================
  Files            ?      314
  Lines            ?    17820
  Branches         ?        0
========================================
  Hits             ?     8319
  Misses           ?     8490
  Partials         ?     1011

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Find occurances of problematic language in this repository

Acceptance criteria: issues created to remove/update source codes and documentation to avoid problematic language

No issues like this detected -> closing this one!