How can I close the Select from code ?

Description
How can I close the Select from code ?
CodeSandbox/Snack link
No response
Steps to reproduce

Go to '...'
Click on '...'
Scroll down to '...'
See error

gluestack-ui Version
3.3.1
Platform

[ ] Expo
[X] React Native CLI
[ ] Next
[ ] Web
[ ] Android
[ ] iOS

Other Platform
No response
Additional Information
How can I close the Select from code ?

@ArjunKarki You can pass isOpen props to SelectPortal component to programmatically open/close select on native devices.

@surajahmed Thanks  but after I add that props, when I select the options ,it didn't close, and I can not set isOpen to false in onValueChange props.

Hey @ArjunKarki, you can find controlled select snack here.


Poor typing experience in Blazor Server app when manually binding to oninput event and using Azure SignalR Services

Repro steps:

Create a new Blazor Server app
Add the following code in index.razor:

@page "/"

Hello, world!

Welcome to your new app.

<input value="@message" @oninput="OnInput" />

@message

@code {
    string message;

    void OnInput(ChangeEventArgs e) {
        message = (string)e.Value;
    }
}

Run it and try mashing on the board when typing in the textbox. Works fine.

Publish to Azure App Service with the Azure SignalR Service
Browse to the published app and mash on the keyboard again. Poor typing experience.

Publish to Azure App Service without the Azure SignalR Service, but with WebSockets enabled. Works fine.

Switching the code to use @bind works around the issue.

@page "/"

Hello, world!

Welcome to your new app.

<input @bind="message" @bind:event="oninput" />

@message

@code {
    string message;

    void OnInput(ChangeEventArgs e) {
        message = (string)e.Value;
    }

}

But in my case I need access to the oninput event callback to run additional logic.

We can't bend the laws of physics. The issue here is the latency between the event arriving to the server and the data being applied on the client. Blazor server-side is not very well suited to use high frequency events, so the recommendation here is to debounce the event.
For example to trigger oninput on the client only after 100 milliseconds of the last event. I think that achieves what most people want. The event being fired without loosing focus from the control and without the jittering that you are observing.
I'm not sure what magic incantation we are using to fix it or "correct it" inside "bind".
@SteveSandersonMS Is my assesment correct? Do we have a sample for debouncing?

Yes, @javiercn's assessment is correct. Dan implemented debouncing using a timer in his Weather app, and I also suggested there in a PR how it can be done with a CancellationTokenSource.
As for the issue posted here, this is a known limitation of reality and server-side Blazor that we've discussed and designed around in the past, e.g., #8204, https://github.com/aspnet/AspNetCore/pull/11438. The essence of the issue is a merge conflict: the server says the textbox is changing from A1 to A2, and the client says the current value is B. So who wins, A2 or B? Without more information, the best you can do is a "last write wins" strategy, which is what we do. This means we pick A2, since if we didn't, it would be impossible to write to the data from the server.
The reason that @bind can do better is that you're explicitly telling the framework about the two-way binding, so it can track internally how an incoming event matches up with some rendered output. It can then reason that, if the new rendered output is the same as what the client would already have in the DOM, then there's no reason to include this in the resulting diff, so we can prefer the client's value B. Whereas if the render output doesn't match, the server's value can overwrite the client's, so you can still mutate the data from the server.
As for improving this further, I've tried to think of ways we could extend the syntax for render output so you can manually associate it with a given incoming event. But I don't see any scenario for it outside two-way binding, and we already have a better syntax for that. Plus it's not an issue at all in client-side Blazor, so it's good to avoid having an entire syntax for things that only make sense in server-side Blazor.

But in my case I need access to the oninput event callback to run additional logic.

I think this is the real place where we can improve things. In your Weather app scenario, you do in fact have another option, which is to run logic inside a setter, as per my PR. However it would be better still if we didn't have the limitation of one-event-handler-per-event-type-per-element, and instead allowed you to combine @bind:event="onsomething" with @onsomething=....

We can't bend the laws of physics.

@javiercn as @danroth27 pointed out,  the issue doesn't happen if you don't use the Azure's SignalR service,  With websockets only it works fine.  So it's not related to a space/time fabric limitation =P

That's not true I'm afraid. It happens regardless, as it's due to the latency, not due to the transport.

I think this is the real place where we can improve things. In your Weather app scenario, you do in fact have another option, which is to run logic inside a setter, as per my PR. However it would be better still if we didn't have the limitation of one-event-handler-per-event-type-per-element, and instead allowed you to combine @bind:event="onsomething" with @onsomething=....

Yeah, I face palmed a bit when I saw your PR for not thinking of using the property setter solution, but it is a bit off the beaten track. Are we tracking the proposed improvement to allow multiple event handlers per event type somewhere else?


Web3Modal v4 reports (Wagmi v2 and others)

Link to minimal reproducible example
N/A
Summary

[ ] Wagmi1 package is not working with the default configuration. https://github.com/WalletConnect/web3modal/issues/1793
[ ] Wagmi v2: Connectors need to be updated (watchConnectors)  P0 https://github.com/WalletConnect/web3modal/issues/1795
[ ] Wagmi v2: server/client error P0 https://github.com/WalletConnect/web3modal/issues/1796
[ ] Allow to connect with different chains with extension wallets P0 https://github.com/WalletConnect/web3modal/issues/1782
[ ] Remove chains param in createWeb3Modal function https://github.com/WalletConnect/web3modal/issues/1794

List of related npm package versions
N/A

Wagmi1 package is not working with the default configuration. https://github.com/WalletConnect/web3modal/issues/1793
=> https://github.com/WalletConnect/web3modal/pull/1798

Wagmi v2: Connectors need to be updated (watchConnectors) P0
https://github.com/WalletConnect/web3modal/issues/1795
=> https://github.com/WalletConnect/web3modal/pull/1800

Remove chains param in createWeb3Modal function https://github.com/WalletConnect/web3modal/issues/1794
=> https://github.com/WalletConnect/web3modal/pull/1801


cypress-tags command is not running after migrated to cypress 10.3.1

Current behavior
I am unable to run cypress-tags command via cli after migrating from cypress 9.5 to cypress10.3.1
i run the following command "./node_modules/.bin/cypress-tags run --browser chrome --headless --env TAGS=@test" and getting below error
./node_modules/.bin/cypress-tags: not found
Desired behavior
Expecting to run cypress-tags command in 10.3.1 as same as 9.5
Test code to reproduce

Versions

Cypress version: 10.3.1
Preprocessor version:11.5.1"
Node version: v16.13.1

Checklist

[ ] I've read the FAQ.
[ ] I've read Instructions for logging issues.
[ ] I'm not using<EMAIL_ADDRESS>(package name has changed and it is no longer the most recent version, see #689).

from https://github.com/badeball/cypress-cucumber-preprocessor/issues/689:

The cypress-tags has been removed and made redundant. Specs containing no matching scenarios are automatically filtered, provided that filterSpecs is set to true.

@badeball would it be possible to provide an example of where to set filterSpecs? I'm also having this issue but it's not obvious where the configuration change should be made. Thanks.

https://github.com/badeball/cypress-cucumber-preprocessor/blob/master/docs/configuration.md


T14. Pause Screen

https://github.com/harshonyou/How-Hard-Can-It-Be/pull/21

https://github.com/harshonyou/How-Hard-Can-It-Be/pull/21/commits/cd87cba6e74c3e8305b168d6813543ff65ca0712

https://github.com/harshonyou/How-Hard-Can-It-Be/pull/21/commits/82912efb2022bf0c43fe231f7e6eedb214cb88e3


Prerendering with +server.js blocks cURL requests

Describe the bug
When attempting to cURL a preview build of SvelteKit that uses prerender within a +server.js file a 405 Method not allowed is returned. However when providing an extra "Accept" header 200 OK is returned, and when using +page.server.js instead a 200 OK is returned.
Example repository linked below.
Reproduction
https://github.com/dextermb/svelte-kit-prerender-405-server-js
Logs
No response
System Info
npx envinfo --system --binaries --browsers --npmPackages "{svelte,@sveltejs/*,vite}"
Need to install the following packages:
<EMAIL_ADDRESS>Ok to proceed? (y) y

  System:
    OS: macOS 13.4
    CPU: (12) arm64 Apple M2 Max
    Memory: 79.95 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.15.0 - ~/.nvm/versions/node/v18.15.0/bin/node
    npm: 9.5.0 - ~/.nvm/versions/node/v18.15.0/bin/npm
  Browsers:
    Chrome: 113.0.5672.126
    Firefox: 110.0.1
    Safari: 16.5

Severity
annoyance
Additional Information
No response

Ahhh, okay, yeah -- I don't believe this is a bug. There are two things at play here:

You can't prerender +server files with mutative methods (POST, for example) -- this doesn't apply here, but does apply to the above PR

@gtm-nayan In light of this, I'm not sure if your PR is necessary -- it certainly shouldn't be for prerendering, though if it fixes some undiscovered bug for runtime code, we might still want to merge it

You can't prerender a route with both a +server file and a +page file. This is because content negotiation is impossible for prerendered files -- there's no server logic to disambiguate a request to /foo using the Accept header

I think you're seeing mixed success here right now because the preview server is still performing this content negotiation for you when it shouldn't be?

This PR will throw an error when you try to do this: https://github.com/sveltejs/kit/pull/9994/files

Closed via #11256, having conflicting route definitions / both a +page.js and +server.js when prerendering is an error in SvelteKit 2.0


Improve performance of xarray.corr() on big datasets

Is your feature request related to a problem? Please describe.
I calculated correlation coefficients based on datasets with sizes between 90-180 GB using xarray and Dask distributed and experienced very low performance for the xarray.corr() function. By observing the Dask dashboard it seemed that during the calculation the whole datasets are loaded from disk several times which, given the size of my datasets, became for some of the calculations a major "performance bottleneck".
Describe the solution you'd like
The problem became so annoying that I implemented my own function to calculate the correlation coefficient (thanks @willirath!), which is considerably more performant (especially for the big datasets!), because it only touches the full data once. I have uploaded a Jupyter notebook that shows the equivalence of the xarray.corr() function and my implementation (using an "unaligned data with nan values"-example, which is what xarray.corr() covers) and an example based on Dask arrays, which demonstrates the performance problems that I have stated above, and also that the xarray.corr() function is not fully lazy. (Which I assume is actually not very desirable?)
At the moment, I think, in terms of improving big data performance, a considerable improvement could be achieved by removing the if not valid_values.all() clause here, because that seems to determine that a call of xarray.corr() is not fully lazy and causes the first (of several?) full touches of the datasets? I haven't checked what's going on afterwards, but maybe that is already a useful starting point? :thinking:

Yes if not valid_values.all() is not lazy. That's the same problem as #4541 and therefore  #4559 can be an inspiration how to tackle this. It would be good to test if the check also makes this slower for numpy arrays? Then it could also be removed entirely. That would be counter-intuitive for me, but it seems to be faster for dask arrays...
Other improvements

I am not sure if /= avoids a copy but if so, that's also a possibility to make it faster.
We could add a short-cut for skipna=False (would require adding this option) or dtypes that cannot have NA values as follows:

if skipna:
    # 2. Ignore the nans
    valid_values = da_a.notnull() & da_b.notnull()

    if not valid_values.all():
        da_a = da_a.where(valid_values)
        da_b = da_b.where(valid_values)

    valid_count = valid_values.sum(dim) - ddof
else:
    # shortcut for skipna=False
    # da_a and da_b are aligned, so the have the same dims and shape
    axis = da_a.get_axis_num(dim)
    valid_count = np.take(da_a.shape, axis).prod() - ddof

Yes if not valid_values.all() is not lazy. That's the same problem as #4541 and therefore  #4559 can be an inspiration how to tackle this. It would be good to test if the check also makes this slower for numpy arrays? Then it could also be removed entirely. That would be counter-intuitive for me, but it seems to be faster for dask arrays...
Other improvements

I am not sure if /= avoids a copy but if so, that's also a possibility to make it faster.
We could add a short-cut for skipna=False (would require adding this option) or dtypes that cannot have NA values as follows:

if skipna:
    # 2. Ignore the nans
    valid_values = da_a.notnull() & da_b.notnull()

    if not valid_values.all():
        da_a = da_a.where(valid_values)
        da_b = da_b.where(valid_values)

    valid_count = valid_values.sum(dim) - ddof
else:
    # shortcut for skipna=False
    # da_a and da_b are aligned, so the have the same dims and shape
    axis = da_a.get_axis_num(dim)
    valid_count = np.take(da_a.shape, axis).prod() - ddof

We implemented xr.corr as xr.pearson_r in https://xskillscore.readthedocs.io/en/stable/api/xskillscore.pearson_r.html#xskillscore.pearson_r
and it’s ~30% faster than xr.corr see #4768

We implemented xr.corr as xr.pearson_r in https://xskillscore.readthedocs.io/en/stable/api/xskillscore.pearson_r.html#xskillscore.pearson_r
and it’s ~30% faster than xr.corr see #4768

Your function from the notebook could also easily implement the builtin weighted function

Your function from the notebook could also easily implement the builtin weighted function

@aaronspring I had a quick look at your version - do you have an idea why it is is faster? Does yours also work for dask arrays?

In a, b = xr.broadcast(a, b, exclude=dim) why can you exclude dim?
I think you could also use a, b = xr.align(a, b, exclude=dim) (broadcast has join="outer" which fills it with NA which then get ignored)
Does your version work if the weights contain NA?

@aaronspring I had a quick look at your version - do you have an idea why it is is faster? Does yours also work for dask arrays?

In a, b = xr.broadcast(a, b, exclude=dim) why can you exclude dim?
I think you could also use a, b = xr.align(a, b, exclude=dim) (broadcast has join="outer" which fills it with NA which then get ignored)
Does your version work if the weights contain NA?

Another possibility is to replace
https://github.com/pydata/xarray/blob/cc53a77ff0c8aaf8686f0b0bd7f75985b74e2054/xarray/core/computation.py#L1327
with xr.dot. However, to do so, you need to replace NA with 0 (and I am not sure if that's worth it). Also the min_count needs to be addressed (but that should not be too difficult).

Another possibility is to replace
https://github.com/pydata/xarray/blob/cc53a77ff0c8aaf8686f0b0bd7f75985b74e2054/xarray/core/computation.py#L1327
with xr.dot. However, to do so, you need to replace NA with 0 (and I am not sure if that's worth it). Also the min_count needs to be addressed (but that should not be too difficult).

Thanks for the suggestion with xr.align.
my speculation is that xs.pearson_r is a bit faster because we first write the whole function in numpy and then pass it through xr.apply_ufunc. I think therefore it only works for xr but not dask.da

Thanks for the suggestion with xr.align.
my speculation is that xs.pearson_r is a bit faster because we first write the whole function in numpy and then pass it through xr.apply_ufunc. I think therefore it only works for xr but not dask.da

I'd also add that https://github.com/pydata/xarray/blob/master/xarray/core/computation.py#L1320_L1330 which is essentially
((x - x.mean()) * (y - y.mean())).mean()

is inferior to
(x * y).mean() - x.mean() * y.mean()

because it leads to Dask holding all chunks of x in memory (see, e.g., https://github.com/dask/dask/issues/6674 for details).

I'd also add that https://github.com/pydata/xarray/blob/master/xarray/core/computation.py#L1320_L1330 which is essentially
((x - x.mean()) * (y - y.mean())).mean()

is inferior to
(x * y).mean() - x.mean() * y.mean()

because it leads to Dask holding all chunks of x in memory (see, e.g., https://github.com/dask/dask/issues/6674 for details).

@kathoef we'd be happy to merge a PR with some of the suggestions proposed here.

@kathoef we'd be happy to merge a PR with some of the suggestions proposed here.

Reopening for the suggestions in https://github.com/pydata/xarray/issues/4804#issuecomment-760114285
cc @AndrewWilliams3142 if you're looking for a small followup PR with potentially large impact :)


kakoune: update the formula to the upstream version

@lenormf looks like this repo is just for archiving and compatibility purposes. I bet you would have more result with the main repo.

There's no kakoune in the main repository because we don't have any versioning.

We don't accept updates in Homebrew/boneyard.


"describe" editor grabs focus after switching applications

I'm on Mac:

Use the "describe" command for a deployment that opens the custom editor with the result.
Place focus in the integrated terminal.
Alt-Tab to other application.
Alt-Tab back.
Observe that the focus has changed away from the integrated terminal to the custom editor.

Hmm, I'll take a look.  This may be a VS Code issue - I'm not sure that we do anything to force focus to the webview - but if it is then I can at least bounce it up to them.  Thanks!

Gave a look at this and i don't think we can do much here as it's probably a VSCode issue.
This situation can be reproduced with all WebViews and everything works great with normal text-editors.
By looking at the HTML, this is what happen with a classic text-editor (when focusing the editor)

and this is what's like with a webview

My guess is that the focus doesn't go back from the terminal to the custom editor but there is nothing focused because the webview doesn't handle the focus at all.
The WebviewPanel declares to have the property active which should give information about the focus but it's like there is no way to listens to its changes and even if it was possible we should also listens to the terminal focus changes and then force the focus on one or the other ...  i don't think it's worth for such an issue imho. Better to ask the VSCode team if there is a solution.


Update Craft Library instance with current one

[X] bug
[ ] feature request
[ ] enhancement

Expected behavior
The Clarity Craft Library version should be 0.10.0
Actual behavior
The version is actually 0.9.9
Reproduction of behavior

Environment details

Angular version: 2.0.X

Clarity version:

OS and version:

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Correct 0.10.0 Library
Clarity-0.10.0.library.zip

The issue is still persisting. We still have the 0.9.9 version on the site. Working with InVision to fix this versioning issue. Will post the correct zip when it can get created.


customize defaultModalWidget and remove QR slider

Hi @3ph , I'm using the library in a project for work, I've been working on this task for days now and I need to personalize the entire modal. However, there are two things I haven't been able to change and I need to.

I need to modify the border radius of the modal.
I'm not using the QR code functionality and I need to remove the slider but the farthest I could go was to delete the texts inside it as you see in the image.

My question is: Is there a way to modify the defaultModalWidget further, maybe adding that option (border radius) in the copy with?. And also, is there currently a way to remove the QR slider o is it possible to add an option to do so if that part of the modal is not needed?
I understand the library is called QR modal, but if you only need the connection without the QR code, it'd be great if you could hide/remove that element.
Any solution for this?. Thanks

I know this may not be the best place to post a question but I found nowhere else to do it. Thanks in advance.

Hi @karenpoveda29 - I've just released version 0.2.0 which allows you to customize the whole selector widget. You can now do for example:
 modalBuilder: (context, uri, callback, defaultModalWidget) {
   return defaultModalWidget.copyWith(
     cardShape: RoundedRectangleBorder(
     borderRadius: BorderRadius.circular(16),
    ),
    selectorBuilder: (context, defaultSelectorWidget) => Container(),
  );
}

I've also added cardShape parameter where you can adjust the border radius (see the example above).
Anything else you need?

@3ph Tom, you're the best! Thank you for replying so soon and being so helpful. It's amazing the work that you do.
There is something else I wanted to ask, don't know if it's possible, though. You see, the original design I have to implement is the one I show in the picture. I understand that having the list is just a workaround to iOS restrictions and that for the user it's better to just have one button and that's it. That's why we added the search bar, so they could find the wallet easily. But I was asked to implement the same design (list) in android o.O

Since I pretty much created a whole different widget for the defaultWalletListWidget, I thought that I could use the same widget instead of the button (for android) but the walletButtonBuilder only receives the URI, so that didn't work. We want to display the wallets the user has on the phone and the ones that don't so they can download them.
I guess my question is: As it is right now, is there a way to have the same implementation for iOS (list of wallets) and for android? Is that even possible?
Again, thanks in advance.

Hi @karenpoveda29 - I can try to add some kind of platform override. Let me think about it :).

hi @3ph, that would be amazing, thank for even taking the time. I really appreciate it.

@karenpoveda29 I've pushed a new version which added platformOverrides parameter. You can now define which type (button, mobile list or desktop list) to be used on any of the 3 platforms. Corresponding builders will then be used. Please see README and code for an example.

Hi @3ph , thank you so much, I was really excited to see the new addition. However, I implemented it but didn't work. Some wallets won't open, other go to the wallet but don't show the connect message, and some also work. When the wallets are loading in the modal, the following messages appear in the console.

I searched the error and some of the answers suggested adding the wallets package name to the AndroidManifest.xml file, so I did. I previously had rainbow and metamask and added the last three, but that didn't help, the wallets weren't remove from the error message nor they opened either.

In terms of the code. I added this
platformOverrides: const ModalWalletPlatformOverrides(
              android: ModalWalletType.listMobile,
            ),

and removed the walletButtonBuilder. I don't know if I'm missing something else in the implementation. I would appreciate any light on this.

Hi @karenpoveda29 - you will have to use your own onWalletTap handler in the ModalWalletListBuilder. The default one likely won't work as it's never meant to work like this in Android (thus the disclaimer in the README).
If you want to use the deep links you will have to add <queries> for each schema you want to handle (have a look at the https://pub.dev/packages/url_launcher example). This is hardcoded in the manifest file so not flexible at all.
Universal links (app links) might work better but you might have to skip canLaunchUrl as it might return a false result. And it might still not work if the wallet app doesn't register the intent to handle these links. That's why there is a consensus to use wc: schema on Android and whichever wallet app can handle it would show on the system dialog.
You might want to focus on a small subset of wallets and handle these individually. In any case, it would mean a lot of research and testing...

Hi @3ph , thanks for your reply. We had to discard the idea of using the same modal for Android (at least for now) for the things you mentioned above. We had to move on with the functionality so maybe will work on this idea later. I wanted to thank you for your willingness to help and all your work. I have a couple more questions I'd like to ask if it's ok about the library but is there a place I can DM you so we don't keep this issue open unnecessarily?

You can contact me through the contact form on tomfriml.com. Thanks!


fix: set border explicitly for each side

Before border settings width and color was explicitly set for each side (eg. borderLeftWidth: 1) and then borderStyle: solid for all sides. Now we set borderLeft/Right/Top/Bottom with width, style and color. if there is no border it is just "none"

:tada: This PR is included in version 2.5.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Hand tracking on the menu scene

This is an ugly PR to implements everything I know about hand-tracking on the godot-xr-tools models, implemented in a single Function_Handtracking scene.  I have hacked the feature into the main_menu_level scene for now to save making a new demo.  It could probably go into the poke demo if I implemented the poke feature onto the hand.
The code works by setting up OpenXRPose and OpenXRSkeleton nodes for each hand and then [in the _physics_process] copying out the joint_transform arrays of the 26 joint positions of each hand which are all relative to the ARVROrigin.  This is nothing more than reverse-engineering the OpenXRSkeleton code to recover the transforms provided by the OpenXR interface.
These joint positions are then transformed to fit the skeleton of the fullglove_low hand model, which was created in Blender.  One of the main problems that prevents us from ever using OpenXRSkeleton directly is that Blender aligns bones along the Y axis, while OpenXR aligns them along -Z.
There's always going to be a lot of calculations to do here to get the any model to conform the the hand tracking because nobody produces models which match the OpenXR specification.  However, given that VRChat has made a reasonable go of mapping hand tracking to almost any avatar form, we ought to aim for a general solution as well to make it easy for people to do their thing.

I want to hold off with support in XR tools around this.
First, your solution will only work on the Quest, it will fail on other platforms. You're using several Quest only features such as relying on controllers 3+4.
Second, there are other cross platform issues in OpenXR that need to be dealt with for this logic to be consistent and usable, some of which require features only added in Godot 4 or that will only be addressed in Godot 4 (like skeleton retargeting).
Third, it is likely there will be improved non-vendor specific extensions added to OpenXR in the near future that improve this situation and allow us to create a true closs platform implementation of this feature.
This is why in XR tools we've opted to only support our own hand system that works on trigger and grip input as those are guaranteed to work cross platform.
Sadly the current state of OpenXR is that any solution involving hand tracking require platform specific implementations.
That all said, it is good to have something working for those people who want things right now, but I just don't believe they belong in the toolkit if in the near future we're going to radically change the implementation as OpenXR matures on this point.

You must be referring to these two articles, which I hadn't seen.
https://godotengine.org/article/animation-retargeting-in-godot-4-0/
https://godotengine.org/article/animation-data-redesign-40/
I'm archiving this PR so it's not a distraction.  Hopefully it can still be discovered by anyone who unadvisedly tries to get hand-tracking to work in the current framework before the a new framework replaces it.

Thanks @goatchurchprime , discoverability of specific features is definitely something we need to figure out. Just because we deem something not suitable to be included in the core project (yet), doesn't mean it isn't worthy software that has its uses.
For me digitals avatar project is another great example of this. Its not generic enough for a generic toolkit, but it's an amazing implementation that deserves attention and for people to find and use it.


Unify metadata

As mentioned in #191

https://forum.snapcraft.io/t/using-external-metadata/4642
https://snapcraft.io/docs/desktop-menu-icon-support

The snap file now takes some metadata from the appstream file, but still requires a separate desktop file since I couldn't get it to do the renaming "magic" on the icon path.


Cannot get member parameters on parameter help properly

Moved from microsoft/vscode#2807
From @tugberkugurlu
Not sure why, here is the screenshot.

On Windows 8.1

ASP.NET 5 application is on 1.0.0-rc1-update1

GitHubClient class I am using here is available on Octokit v0.16.0

VS Code about:

I hit this over the weekend too.  (With Octokit no less :))

Dupe of #13 as well


Nothing scanned when enabling Nimble extended advertising flasg  (IDFGH-9004)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.0
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32S3-DevkitM1
Power Supply used.
USB
What is the expected behavior?
I have flashed example nimble/blecent.
When I flash using default settings, I receive multiple BLE_GAP_EVENT_DISC events (I have dozens of BLE devices around me)
But when I set the build variable CONFIG_BT_NIMBLE_EXT_ADV to manage extended advertising (CONFIG_BT_NIMBLE_EXT_ADV=y), I receive NO BLE_GAP_EVENT_DISC events.
Shouldn't I still scan all the devices ?
What is the actual behavior?
I should still be able to scan all BLE devices.
Steps to reproduce.
Add a log on scan :
case BLE_GAP_EVENT_DISC:
        MODLOG_DFLT(INFO, "Discover event %s", addr_str(event->disc.addr.val));

Set CONFIG_BT_NIMBLE_EXT_ADV=y in sdkconfig.defaults
Flash example nimble/blecent
Wait for scan data in monitor
Debug Logs.
No response
More Information.
Here is the interesting part of my sdkconfig :
CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=y
CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_2M_PHY=y
CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y
CONFIG_BT_NIMBLE_EXT_ADV=y
CONFIG_BT_NIMBLE_MAX_EXT_ADV_INSTANCES=1
CONFIG_BT_NIMBLE_EXT_ADV_MAX_SIZE=1650
CONFIG_BT_NIMBLE_ENABLE_PERIODIC_ADV=y
CONFIG_BT_NIMBLE_PERIODIC_ADV_SYNC_TRANSFER=y
CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=1

Hi @QuentinFarizon ,
Can you please share your complete sdkconfig file ?
Thanks.

Ok, indeed I'm getting BLE_GAP_EVENT_EXT_DISC instead of BLE_GAP_EVENT_DISC events :+1:


change default for keep crds

fixes https://github.com/helm/charts/issues/14239

I think I would be more biased to having keep as a default. If one for some reason needs to reinstall ambassador or so it feels messy to lose all configs as well.
And I set it to keep by default based on that what I could find in helm/charts seemed to be the more common option.
Seeing how the option is there to override I'm not convinced to change it for a particular use case.
/hold

The main impact is on use-cases where ambassador is installed more than once or repeatedly (which we do in a set of end-to-end tests, similar to running in a CI). But I can see that there are prominent examples where the default is to keep the CRDs:
https://github.com/helm/charts/blob/7d0450231c4fe88483d5cb15b760a5886f3c1903/stable/prometheus-operator/values.yaml#L452
https://github.com/helm/charts/blob/c7edb3f3012c4db73624583dafe6963aec3055e0/stable/sealed-secrets/values.yaml#L28
So I'm gonna close this PR and issue.


automatically remove redundant notes

In case one note is no longer connected to any picture, this note cannot be found by viewing any picture. But currently it could still be viewed in the recent note list.
Possible solution:
(1) once the activity recent note list is called, check all the notes whether they are still attached to any picture and remove the redundant notes. This might have performance issue if user has too many notes and pictures.

This should be fixed in 324a6f19b1ee8fdfc48dc821cfb41ba752219367.
(In file RecentNoteActivity.java)
Unfortunately until tomorrow I have little time to test if the issue is resolved.
Additionally, as you correctly mentioned, the performance might be poor for a high count of pictures.
Suggestion: Define Notes in the database with attached pictures ID, if the field is empty -> delete.

Closing for now


DO NOT MERGE YET - Javascript code generation: Dump js bytecode and use it if possible

This is an experimental version and we will need to bump the duktape version in order to merge this branch.
As requested, now the JS meta type will dump the javascript bytecode in the generated file and use it if the duktape versions match (one that was used to generate the C file and the one that is being compiled with the generated C file).
Below one can see the binary memory footprint with and without the bytecode (without bytecode means that the plain javascript code was used):
*** Compiled with: O0 ***

--- App javascript-gen.c ---
With bytecode - File size: 496K memory usage:480579
Without bytecode - File size:496K memory usage:478354

--- App mycounter.c ---
With bytecode - File size: 473K memory usage:458702
Without bytecode - File size:477K memory usage:458854

*** Compiled with: O1 ***

--- App javascript-gen.c ---
With bytecode - File size: 334K memory usage:480707
Without bytecode - File size:338K memory usage:478450

--- App mycounter.c ---
With bytecode - File size: 315K memory usage:458603
Without bytecode - File size:319K memory usage:458696

--- App telegram.c ---
With bytecode - File size: 319K memory usage:479951
Without bytecode - File size:323K memory usage:479009

*** Compiled with: O2 ***

--- App javascript-gen.c ---
With bytecode - File size: 373K memory usage:480707
Without bytecode - File size:373K memory usage:478450

--- App mycounter.c ---
With bytecode - File size: 350K memory usage:458603
Without bytecode - File size:354K memory usage:458438

--- App telegram.c ---
With bytecode - File size: 354K memory usage:479951
Without bytecode - File size:358K memory usage:479009

FBPs used:

javascript.fbp (under src/test-fbp)
mycounter.fbp (under src/samples/flow/js)
telegram.fbp (under src/samples/flow/js)

good to have those numbers, sad they look the same :-D
did you test memory consumption during runtime? test with massif, see the peak and also the overall consumption if it helps.

@barbieri Yeah, it's really sad :(
The memory usage that is shown in the report above was retrieved using massif. However I'm displaying the memory peak only.

:-(
ok, so you can choose to merge it or not. Doesn't make a difference at the moment... but we can try to push Duktape guys to improve that situation. It would help if they could use the bytecode from static-const-uint8_t buffer instead of re-creating it in memory, the static memory does not use RAM in systems with execute-in-place (Small OS).

@barbieri we could try to use duk_push_external_buffer() (which makes duktape do not alloc space for the buffer, it assumes that is already allocated by someone else) and check the memory usages again.

but that's about the code (AST/IR?) or the memory allocated at runtime to execute the code?

@barbieri It's the memory heap peak.

I'm closing this for now, since the bytecode did not bring any major benefits.


Link "Get Examples" goes to empty Github page

http://armory3d.org/manual/
Link "Get Examples" goes to empty Github rep
not sure if this is intended
right now the link points to https://github.com/armory3d/armory_examples/releases
and maybe it should point to
https://github.com/armory3d/armory_examples

Same link exists at http://armory3d.org/download.html
Examples & assets
Right now, the link goes to empty GitHub page


Allow the LLM to dictate key order when generating JSON

Is your feature request related to a problem? Please describe.
_gen_json_object dictates key order.
Describe the solution you'd like
Instead, allow the LLM to dictate it, reducing perplexity when the LLM has knowledge of the schema.
Describe alternatives you've considered
As-is is probably fine for a lot of use cases, but for mine (similar to the public schema in #889)  even off the shelf Llama 3 has knowledge of the specification likely due to it being present in its pretraining set so specifying key order may increase perplexity.

Had a conversation about this yesterday! Just to think out loud...
A naive implementation of this either requires moving from a stateless/context-free grammar to a stateful/context sensitive one (which comes with its own costs) or having n! rules in the context-free grammar (select(itertools.permutations(options))).
But I believe that being a little bit clever with representation can make the rules only grow linearly in the number of options. @Harsha-Nori you said you had a prototype implementation of something like this at some point?

LM-Format-Enforcer has an interesting approach to this: https://github.com/noamgat/lm-format-enforcer?tab=readme-ov-file#how-does-it-work, but i'm not sure it will work with openai endpoints.


Update release process and prepare 1.8 development cycle

This change is

test-docs-please

test-docs-please

Coverage decreased (-0.02%) to 44.688% when pulling da2dc15f9427f36156c55c4eab76da10111be320 on pr/update-release-steps into 6c33df96794108bd71e3ed525c465136571b711a on master.

test-docs-please

test-docs-please


UV's are discarded if no material is referenced in .obj

As an addendum to #32, I've found that obj2gltf (via gltf-pipeline) is discarding my UV's (vt data from .obj), this was why I was struggling to get glTF to render in three.js - I thought the issue was confusion over default materials loaded from the glTF but really it just didn't have an texture coordinates so materials were appearing as solid colour instead of textured. Example source .obj and output gltf attached. I need an option to preserve that information as I am texture mapping based on user choices in the browser.
body-top.zip

I upgraded to a newer version of the gltf-pipeline and this issue seems to be fixed. Once https://github.com/AnalyticalGraphicsInc/obj2gltf/pull/38 is in can you verify?

Thanks! I'll check this out and get back to you.

@webprofusion-chrisc I merged #38.  Let us know if this is still an issue.

Tried this out but unfortunately with the models I've tried I now get a shader error (loading using the threejs gltf loader). I can share the .obj privately if that helps. This fails in both firefox and chrome but only chrome reports the error. Obviously this could be a an issue with the threejs glTF loader but I wondered if you'd seen a similar error with anything else?:
Failed to load resource: net::ERR_INVALID_URL
data:text/plain;base64,precision highp float;uniform vec4 u_ambient;uniform vec4 u_diffuse;uniform vec4 u_emission;uniform vec4 u_specular;uniform float u_shininess;uniform float u_transparency;varying vec3 v_positionEC;varying vec3 v_normal;void main(void) {  vec3 normal = normalize(v_normal);  vec4 diffuse = u_diffuse;  vec3 diffuseLight = vec3(0.0, 0.0, 0.0);  vec3 specular = u_specular.rgb;  vec3 specularLight = vec3(0.0, 0.0, 0.0);  vec3 emission = u_emission.rgb;  vec3 ambient = u_ambient.rgb;  vec3 viewDir = -normalize(v_positionEC);  vec3 ambientLight = vec3(0.0, 0.0, 0.0);  ambientLight += vec3(0.2, 0.2, 0.2);  vec3 l = vec3(0.0, 0.0, 1.0);  diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal,l), 0.);  vec3 h = normalize(l + viewDir);  float specularIntensity = max(0., pow(max(dot(normal, h), 0.), u_shininess));  specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;  vec3 color = vec3(0.0, 0.0, 0.0);  color += diffuse.rgb * diffuseLight;  color += specular * specularLight;  color += emission;  color += ambient * ambientLight;  gl_FragColor = vec4(color * diffuse.a, diffuse.a * u_transparency);}

It looks like the shader isn't being base64-encoded properly. I thought this was fixed but maybe not - you can send the model to<EMAIL_ADDRESS>

I found at least one problem here - https://github.com/AnalyticalGraphicsInc/gltf-pipeline/pull/197. Once that's merged I'll update obj2gltf.

@webprofusion-chrisc obj2gltf is now published with the fix


DashboardVerticle fails

even run the services from solution folder, it fails. Problems are:

where to put the method "failureAwarelastOperations" ?
there is not method of "callAuditServiceWithExceptionHandlerWithCircuitBreaker" at "DashboardVertical" inside of solution folder? Even I copy it to there, the compilation fails.

Could you help me? Thanks!

just did the documentation said,


Builders should not write their target into the host file system

By mounting -v $(shell pwd)/libwasmvm:/code in the main Makefile, builders write to a target folder in the host file system. We should let them write to a mounted volume instead.
This avoids the need for those clearing steps:
	rm -rf target/aarch64-unknown-linux-musl/release
	rm -rf target/x86_64-unknown-linux-musl/release

After this change the build should not write to the host anymore. So we can drop the -u $(USER_ID):$(USER_GROUP) part from the calling convention.


WysiwygWidget Headers Not working

in the widget when I try to make headers for the test it doesn't work as expected.
https://github.com/unfoldadmin/django-unfold/assets/53629777/9315dc47-242d-48fd-9d14-f6d50be0846f

It works for me.  May be something to do with RTL?

oh thanks i got the reason for the error it was using wrong tags using the fixtures, but I have noticed that even clearing all the text keep some tags saved which could lead for saving empty field while its required in addition it didn't removed the wrong tags.


add types definition for TypeScript

Any chances this got merged? @yorkie

It is too old to work on it.


Problem with steam

I don't know if this is a problem with other liquids, but I have a dynamic tank filled completely with steam, and an ultimate mechanical pipe taking it to a turbine. For some reason, the steam doesn't pour out like it should, if I look inside the turbine and I mouse over the input rate, it flashes between 6400 and 0. Also, if I look at the pipe, it flashes with the steam texture too. Also, it still does this if I hook it up directly to a reactor or boiler.

Is UMP set to pull mode?

I have it pulling from the tank and pushing in the turbine.

Ok well overall I'm having problems with Steam. Now like the turbine just fills up, but the input bar is at 0 the entire time.

I can't reproduce, it's likely just a client sync issue. If it keeps occurring I'll take another look.

Ok I think I figured it out, I'm using KCauldron on my server and it worked fine after I disabled it. I guess I'll have to get rid of it :(


add operation/env_var.md

Codecov Report

Merging #338 into develop will increase coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #338      +/-   ##
===========================================
+ Coverage    52.94%   52.97%   +0.03%
===========================================
  Files          244      244
  Lines        23027    23027
===========================================
+ Hits         12191    12199       +8
+ Misses        9430     9424       -6
+ Partials      1406     1404       -2

Impacted Files
Coverage Δ

bfe_http2/server.go
71.50% <0.00%> (-0.17%)
:arrow_down:

bfe_spdy/server_conn.go
78.98% <0.00%> (+0.44%)
:arrow_up:

bfe_spdy/frame_write.go
50.50% <0.00%> (+1.01%)
:arrow_up:

bfe_websocket/server_conn.go
78.03% <0.00%> (+1.51%)
:arrow_up:

bfe_spdy/server_write_sched.go
80.00% <0.00%> (+1.53%)
:arrow_up:

bfe_balance/bal_gslb/sub_cluster.go
55.55% <0.00%> (+7.40%)
:arrow_up:

Continue to review full report at Codecov.

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


update meow 6.1.1

The yargs-parser version in meow 6.1.0 has been flagged for vulnerability.
https://www.npmjs.com/advisories/1500/versions
meow has since updated the deps in 6.1.1
https://github.com/sindresorhus/meow/commit/f85b546eda6a6fc7382e7ccf874465a56033735c#diff-b9cfc7f2cdf78a7f4b91a753d10865a2

@evilebottnawi can have a look?

Done in master and released

Anyway thanks for the PR


environment variables missing after deploy?

I'm setting a variety of env variables through jitsu, then I attempt deployment which failes because it can't read them, and when I perform a jitsu env list, they're all gone.

info:   Welcome to Nodejitsu
info:   It worked if it ends with Nodejitsu ok
info:   Executing command env list
info:   Authenticated as cmeiklejohn
info:   Listing all environment variables for: drip
data:   {
data:       MONGO_URL: XX,
data:       NODE_ENV: 'production',
data:       PORT: 80,
data:       REDIS_HOST: XX,
data:       REDIS_PASS: XX,
data:       REDIS_PORT: XX,
data:       SUBDOMAIN: 'drip'
data:   }
info:   Nodejitsu ok

Fails to start because of undefined mongo urls.

error:  Error running command deploy
error:  Nodejitsu Error (500): Internal Server Error
warn:   Error returned from drone
error:
error:  node.js:134
error:          throw e; // process.nextTick error, or 'error' event on first tick
error:
error:  ^

info:   Welcome to Nodejitsu
info:   It worked if it ends with Nodejitsu ok
info:   Executing command env list
info:   Authenticated as cmeiklejohn
info:   Listing all environment variables for: drip
data:   { NODE_ENV: 'production', SUBDOMAIN: 'drip' }
info:   Nodejitsu ok

This was a back-end issue.  It has been fixed, but has not yet been deployed - we'll get it out as soon as possible.  Thanks for reporting this!

This has been fixed.


Point free secp256 for native.

Fixes #101

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

Project coverage is 80.06%.

Files
Patch %
Lines

...blockifier/src/execution/native/syscall_handler.rs
84.33%
11 Missing and 2 partials :warning:

Additional details and impacted files
@@                  Coverage Diff                  @@
##           xr/overallocation     #102      +/-   ##
=====================================================
- Coverage              80.09%   80.06%   -0.03%
=====================================================
  Files                     77       77
  Lines                  10573    10594      +21
  Branches               10573    10594      +21
=====================================================
+ Hits                    8468     8482      +14
- Misses                  1640     1646       +6
- Partials                 465      466       +1

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


fix(types): update types path

Summary
Fix the types entry path.
PR Checklist

[ ] Does not introduce dependencies
[ ] Functional: all changes do not break existing APIs and if so, bump major version.
[ ] Tests pass: check the output of yarn test
[ ] Naming: the files and the method and prop variables use the same naming conventions as other Kongponents
[ ] Framework style: abides by the essential rules in Vue's style guide
[ ] Cleanliness: does not have formatting issues, unused code (e.g., console.logs, debugger), or leftover comments
[ ] Docs: includes a technically accurate README, uses JSDOC where appropriate

@kaiarrowood I'm going to hold on merging until I can manually pick this up in khcp-ui to make sure I don't break anything. It shouldn't, but... yeah 😬 lol

@kaiarrowood I'm going to hold on merging until I can manually pick this up in khcp-ui to make sure I don't break anything. It shouldn't, but... yeah 😬 lol


difference between Django-Unfold and turbo

I just have one question, what is the difference with Django-Unfold

Unfold - Django Admin theme
Turbo - Django & Next.js boilerplate

I wanted something like django-unfold but with the difference that I could change everything


SW-6368 Allow withdrawals from backdated batches

If a user wants to record a historical nursery batch, they create it with an added
date in the past and a withdrawal date in the past. The system wasn't treating the
withdrawal as a quantity change in that case because it assumed that the seedling
quantities entered by the user when they created the batch were the quantities at
the time the batch was being created, and thus that older withdrawals shouldn't
affect the more recent quantity values supplied by the user.
Change batch creation such that if a batch's added date is in the past (based on
the nursery's time zone), we treat its quantities as having been observed at the
start of that day. Backdated withdrawals will thus be properly deducted from the
batch's quantities.

#2704  👈 (View in Graphite)
main

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


Cargo publish times out without failure

Problem
When trying to publish a crate, we recently experienced an issue reported here. The command cargo publish timed out without returning an error.
Steps
This may be not repeatable without hacking the cargo publish network communication. Our guess is that the crates.io server is currently experiencing some issue.
There is the GitHub CI recipe that failed (problem occurs on the cargo publish --token $CRATES_IO part):
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Dump context for debug
        uses: crazy-max/ghaction-dump-context@v1

      - uses: actions/checkout@v1

      - name: Publishing - dry run
        if: inputs.publish == false
        run: |
          cargo publish --dry-run
      - name: Publishing
        if: inputs.publish == true
        run: |
          echo "[registry]" > ~/.cargo/credentials
          echo "token = \"$CRATES_IO\"" >> ~/.cargo/credentials
          cargo publish --token $CRATES_IO
        env:
          CRATES_IO: ${{ secrets.CRATES_IO }}

      - name: Release
        if: inputs.publish == true
        uses: softprops/action-gh-release@v1

Below is the screenshot of a local attempt to run cargo publish --allow-dirty.

Possible Solution(s)
Return with an error upon time out.
Notes
No response
Version
cargo 1.68.0-nightly (985d561f0 2023-01-20)
release: 1.68.0-nightly
commit-hash: 985d561f0bb9b76ec043a2b12511790ec7a2b954
commit-date: 2023-01-20
host: x86_64-unknown-linux-gnu
libgit2: 1.5.1 (sys:0.16.1 vendored)
libcurl: 7.86.0-DEV (sys:0.4.59+curl-7.86.0 vendored ssl:OpenSSL/1.1.1q)
os: Ubuntu 22.10 (kinetic) [64-bit]

#11222

somewhat off-topic, but if you use something like https://github.com/glide-rs/flarmnet-rs/blob/1aa7363ace21096fa5fd3107207d0c03c0be984f/.github/workflows/release.yml#L17-L19 you don't have to use --token :)

The situation has been improved since then. We have more HTTP info and a better block-wait notice when publishing.

https://github.com/rust-lang/cargo/pull/11713
https://github.com/rust-lang/cargo/pull/11878
https://github.com/rust-lang/cargo/pull/11926

To resolve this issue, the missing piece should be adding a simple sentence mentioning in cargo-publish man page, such as a simplified version of what #11926 did.

@weihanglo while documenting helps, I think the core of this issue is about making it an error or am I missing something?

@weihanglo while documenting helps, I think the core of this issue is about making it an error or am I missing something?

I was thinking that it may break somebody's workflow. But since it already timed out, turning this into a hard error makes more sense than no error. What do people think?

What do people think?

It makes more sense to me.

More so I meant that we need to make sure we decide on the merit and timing of a hard error for closing this rather than closing this for documentation.

I am admittedly not familiar with all of the implications of erroring out in this situation, but it seems appropriate given that the command's explicit intent (publish the crate) didn't succeed. I can't think of a use case where I would issue the publish command, manually or in automation, and find a failure acceptable. @epage I'd love your thoughts before digging deeper into this.

@after-ephemera the publish endpoint reported success.  However, the publish process is asynchronous to that.  So the reasons someone will see a timeout are (1) there is some kind of service outage blip or (2) the rest of the publish pipeline failed.  I'm assuming a failure in the publish pipeline would generally be considered a bug, be rare,and be actively monitored for by the crates.io team.  I and others have seen service blips.
So timeout, doesn't mean the publish failed and more than likely it succeeded.

Ah so there's a bit more nuance here, thank you for explaining it. When you say "service blips" are you referring to network connectivity issues that are intermittent? If so, I would venture a guess that it's fine to leave as is since either that or pipeline issues are expected to be rare and intermittent.

Basically, yes.

then should we close this issue  ?


File names with name "++ " and other text raises error

Having a ++ But - Obsidian does not like ++ in a title causes error.  It is the leading ++ that causes the problem.
I use + Title  and ++ Title to make those files float to top of the list in a sorted view.
The console log of Obsidian shows
SyntaxError: Invalid regular expression: /^./_resources/++ Bug - Obsidian does not like ++ in title$/: Nothing to repeat (at plugin:obsidian-custom-attachment-location:4558:12)
    at new RegExp (<anonymous>)
    at CustomAttachmentLocationPlugin.interpolateToDigitRegex (plugin:obsidian-custom-attachment-location:4558:12)
    at CustomAttachmentLocationPlugin.getEarliestAttachmentFolder (plugin:obsidian-custom-attachment-location:4584:30)
    at CustomAttachmentLocationPlugin.getAttachmentFolderPath (plugin:obsidian-custom-attachment-location:4600:23)
    at CustomAttachmentLocationPlugin.handleFileOpen (plugin:obsidian-custom-attachment-location:4697:29)
    at eval (plugin:obsidian-custom-attachment-location:4492:41)
    at e.tryTrigger (app.js:1:723190)
    at e.trigger (app.js:1:723123)
    at t.trigger (app.js:1:2283688)
    at t.activeLeafEvents (app.js:1:2269215)
    at l (app.js:1:522936)
    at c (app.js:1:523052)

@dgreen Fixed in https://github.com/RainCat1998/obsidian-custom-attachment-location/releases/tag/1.1.0


Administration: Why the variable "hasOrderDeepEdit" is set to true after reloading an order?

PHP Version
8.1
Shopware Version
<IP_ADDRESS>
Expected behaviour
We have added a new tab for our payment plugin to the overview of an order. In this tab, more details about the payment are displayed and there is a Capture and Refund button. Once someone has used the Capture or Refund button, a request is sent to the backend that changes certain data of the order. Therefore, we want to reload the order after this request. For this we trigger the event "reload-entity-data", which triggers this function from the Shopware code. Our problem is that after the reload the following message is displayed:

There are unsaved changes. Please save the order before leaving this page.

This is because in this line the variable "hasOrderDeepEdit" is set to "true" after the order is reloaded. However, I do not understand the meaning behind it. Why should there be unsaved changes after the order is reloaded?
We expect that this message will not be displayed if you trigger the "reloadEntityData" function in an own tab, as this is very confusing for the user.
Actual behaviour
The message There are unsaved changes. Please save the order before leaving this page. is displayed after triggering the "reloadEntityData" function from the "sw-order-detail" component, although there should be no changes when the order is freshly reloaded.
How to reproduce
Create a new tab for the order overview or select an existing tab (except the Documents tab) and add a new button. Set as @click event the following call: $emit('reload-entity-data'). When you then click the button, the message There are unsaved changes. Please save the order before leaving this page. appears unexpectedly, although there is no change to the order.

Hi,
thx for your issue we will put it into our new evaluation process and have a look at it again.

[public] Automated response: This issue is linked to the internal issue https://shopware.atlassian.net/browse/NEXT-37925.
[created from NEXT-37925, comment 488863]


BackdropFilter does not work with BottomSheet that use other clipBehavior than Clip.none

Steps to reproduce
If assigning any other clipBehavior to BottomSheetThemeData than Clip.none and using a BackdropFilter with ImageFilter.blur on the background of the opened BottomSheet, the backdrop filter has no effect.
Expected results
Expect the BackdropFilter to work if using other clipBehavior than Clip.none:

Actual results
The BackdropFilter does not work if using any other clipBehavior than Clip.none, here tested with

Code sample
Code sample
import 'dart:ui';

import 'package:flutter/material.dart';

void main() => runApp(const IssueApp());

class IssueApp extends StatelessWidget {
  const IssueApp({super.key});

  @override
  Widget build(BuildContext context) => MaterialApp(
        theme: ThemeData(
          bottomSheetTheme: const BottomSheetThemeData(
            // Works OK
            // clipBehavior: Clip.none,
            // Does not work, anything else than Clip.none will cause the issue.
            clipBehavior: Clip.antiAlias,
          ),
        ),
        darkTheme: ThemeData.dark(),
        themeMode: ThemeMode.light,
        home: const Home(),
      );
}

class Home extends StatelessWidget {
  const Home({super.key});

  @override
  Widget build(BuildContext context) => Scaffold(
        body: SafeArea(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            children: [
              Text(
                'Hello, STACKED!',
                style: Theme.of(context).textTheme.headlineLarge,
              ),
              Text(
                'Hello, STACKED!',
                style: Theme.of(context).textTheme.headlineLarge,
              ),
              Text(
                'Hello, STACKED!',
                style: Theme.of(context).textTheme.headlineLarge,
              ),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
          child: const Icon(Icons.dark_mode),
          onPressed: () => showModalBottomSheet(
            context: context,
            isScrollControlled: true,
            isDismissible: true,
            barrierColor: Colors.black.withAlpha(128),
            backgroundColor: Colors.transparent,
            useRootNavigator: true,
            builder: (BuildContext context) => Container(
              color: Colors.transparent,
              child: DraggableScrollableSheet(
                expand: false,
                initialChildSize: 0.5,
                minChildSize: 0.25,
                maxChildSize: 0.9,
                snap: true,
                snapSizes: const [0.25, 0.5, 0.75, 0.9],
                builder:
                    (BuildContext context, ScrollController scrollController) =>
                        Container(
                  color: Colors.transparent,
                  child: BackdropFilter(
                    filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
                    child: SafeArea(
                      child: Container(
                        decoration: BoxDecoration(
                          color: ColorScheme.of(context).onSurface,
                          borderRadius: const BorderRadius.only(
                            topLeft: Radius.circular(20),
                            topRight: Radius.circular(20),
                          ),
                        ),
                        child: ListView.builder(
                          controller: scrollController,
                          itemCount: 10,
                          itemBuilder: (BuildContext context, int index) =>
                              ListTile(
                            title: Text(
                              'Item $index',
                              style: TextTheme.of(context)
                                  .titleMedium!
                                  .copyWith(color: Colors.white),
                            ),
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      );
}

Flutter Doctor output
Issue can be repeated with stable 3.27.1 to latest master Channel master, 3.28.0-2.0.pre.38589
Doctor output
[✓] Flutter (Channel master, 3.28.0-2.0.pre.38589, on macOS 15.1.1 24B91 darwin-arm64, locale en-US)
    • Flutter version 3.28.0-2.0.pre.38589 on channel master at /Users/rydmike/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 01971467ef (24 hours ago), 2024-12-28 11:54:22 -0800
    • Engine revision 01971467ef
    • Dart version 3.7.0 (build 3.7.0-267.0.dev)
    • DevTools version 2.41.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/rydmike/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16C5032a
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] IntelliJ IDEA Community Edition (version 2<IP_ADDRESS>)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 83.0.4
    • Dart plugin version 243.23177

[✓] VS Code (version 1.96.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.102.0

[✓] Connected device (4 available)
    • MrPinkPro (mobile)              • 74120d6ef6769c3a2e53d61051da0147d0279996 • ios            • iOS 17.7.2 21H221
    • macOS (desktop)                 • macos                                    • darwin-arm64   • macOS 15.1.1 24B91 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad                    • darwin         • macOS 15.1.1 24B91 darwin-arm64
    • Chrome (web)                    • chrome                                   • web-javascript • Google Chrome 131.0.6778.205

[✓] Network resources
    • All expected network resources are available.

Version 8.1.0 with a fix (workaround) for this issue has been release on pub: https://pub.dev/packages/flex_color_scheme
Closing this issue.

Oops, sorry wrong issue closed, was supposed to close my own version of it. Reopen.

This is working as intended
Your code but edited to show what is going on
import 'dart:ui';

import 'package:flutter/material.dart';

void main() => runApp(const IssueApp());

class IssueApp extends StatelessWidget {
  const IssueApp({super.key});

  @override
  Widget build(BuildContext context) => MaterialApp(
        theme: ThemeData(
          bottomSheetTheme: const BottomSheetThemeData(
            clipBehavior: Clip.antiAlias,
          ),
        ),
        home: const Home(),
      );
}

class Home extends StatelessWidget {
  const Home({super.key});

  @override
  Widget build(BuildContext context) => Scaffold(
        body: Column(
          children: List.generate(
            20,
            (index) => Text(
              'This should be blurred',
              style: Theme.of(context).textTheme.headlineLarge,
            ),
          ),
        ),
        floatingActionButton: FloatingActionButton(
          child: const Icon(Icons.dark_mode),
          onPressed: () => showModalBottomSheet(
            context: context,
            backgroundColor: Colors.transparent,
            builder: (BuildContext context) => DraggableScrollableSheet(
              builder:
                  (BuildContext context, ScrollController scrollController) =>
                      BackdropFilter(
                filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
                child: ListView.builder(
                  controller: scrollController,
                  itemCount: 10,
                  itemBuilder: (BuildContext context, int index) => ListTile(
                    title: Text(
                      'Item $index',
                      style: TextTheme.of(context)
                          .titleMedium!
                          .copyWith(color: Colors.white),
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      );
}`

as u can see when u r not using Clip.none it expands meanwhile when u r using anything else it removes any extra outside of the child
Here is an example to make it clear
import 'dart:ui';

import 'package:flutter/material.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Stack(
          children: [
            //text in the background to see what is going on clearly
            Align(
              child: Text(
                'a' * 10000,
                overflow: TextOverflow.clip,
              ),
            ),
            Align(
              child: Row(
                children: [
                  ClipRect(
                    // this tells it to clip the widget ie BackdropFilter to the container
                    clipBehavior: Clip.antiAlias,
                    child: BackdropFilter(
                      //change values to .blur(sigmaX: 0, sigmaY: 0) to see diff
                      filter: ImageFilter.blur(sigmaX: 1, sigmaY: 1),
                      child: Container(
                        height: 100,
                        width: MediaQuery.of(context).size.width / 2,
                        color: Colors.blue.withAlpha(80),
                      ),
                    ),
                  ),
                  ClipRect(
                    // this tells it to do nothing so it covers everything
                    clipBehavior: Clip.none,
                    child: BackdropFilter(
                      //change values to .blur(sigmaX: 1, sigmaY: 1) to see diff
                      filter: ImageFilter.blur(sigmaX: 0, sigmaY: 0),
                      child: Container(
                        height: 100,
                        width: MediaQuery.of(context).size.width / 2,
                        color: Colors.red.withAlpha(80),
                      ),
                    ),
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

in this example u got blue and red here when u give blue the values it is the only thing that is blurred including the text behind it but when u give red the values everything is blurred
I hope this explains what is going on and if u need any further help don't be shy


Interactive validations on user input in seed script

When running the seed script for the first time (ie. via rake db:setup, it's possible for the script to raise an exception and exit by submitting data that fails validations. This is super annoying because it kinda takes awhile to fill all these fields out, so if you get most of the way done and accidentally enter invalid data, you have to start over again.
(e.g. this just happened to me with the password field during admin account setup)

@squidgetx omg yesssssssss


two columns with same alias name

When using UI, Metabase can produce queries having two aggregates with the same aliases:
SELECT
  sum(`default`.`stats`.`clicks`) AS `sum`,
  sum(`default`.`stats`.`impressions`) AS `sum`
FROM `default`.`stats`
FORMAT TabSeparatedWithNamesAndTypes;

it's ok for PostgreSQL and for some other databases, but not ok for ClickHouse:
2019.04.01 13:32:45.843693 [ 42 ] {38d731ce-1536-4670-ba77-645c7c415f08} <Error> HTTPHandler: Code: 179, e.displayText() = DB::Exception: Different expressions with the same alias sum:
sum(impressions) AS sum
and
sum(clicks) AS sum

I guess driver should take that into account and probably add suffixes for the aliases having the same name

JFYI, Oracle doesn't let you use the same alias twice in a SQL query (e.g. no SELECT field AS x, other_field AS x)
see https://github.com/metabase/metabase/issues/9117
I wonder if it's possible to reuse code from the oracle driver?
https://github.com/metabase/metabase/blob/master/modules/drivers/oracle/src/metabase/driver/oracle.clj#L159-L202

Thanks for the hint. I will try to understand the Oracle driver code; perhaps we can adopt it for the ClickHouse driver. If I remember correctly the field aliases are generated in a different way than the aliases for aggregate functions, but I will have to check.
See also metabase/metabase#6042 where a work-around using custom expression is explained for SQL server.

Good news. The issue with colliding alias names for aggregations been fixed by the Metabase team in metabase/metabase#9767 (target release is 0.33).
See attached example screenshot

It results in the following query (notice the sum_2):
SELECT
  count(*) AS `count`,
  sum(`db`.`mytable`.`customerBillingPartnerID`) AS `sum`,
  sum(`db`.`mytable`.`incoming`) AS `sum_2`
FROM
  `db`.`mytable`


Feature request: Make it working with HA7NET devices

Issue moved from https://github.com/lrybak/addon-repository/issues/1#issue-1738507347 as requested:
I have a HA7NET 1-wire to ethernet running for a long time. For now owfs is running on separate server and i want to switch to your addon on the HA VM. Sadly it is not possible to configure the device correctly via config UI.
owfs fully supports the HA7NET device. I get it working by doing a docker exec -it <container-id> /bin/bash into your addon's container and editing the /etc/owfs.conf file. But on every addon restart it is overwriten.
The needed config line in /etc/owfs.conf is:
server: ha7net = <IP_ADDRESS>

But when i enter ha7net = <IP_ADDRESS> in the addon's config UI it generates:
server: device = ha7net = <IP_ADDRESS>

Would it be possible to maybe the user switch in the config between deviceand ha7net of just provide an "advanced" option where one can manually edit the config file ?

Looking at the latest update, it seems like adding this feature should be just adding a 4th device type to the seleciton list  (in addition to fake, ...) of 'ha7net' and an additional parameter for the IP address.
Thank you already in advance for considering this :-) !

Hi Serge @Foxi352, I've added support for ha7net device. However I don't haver such device so I'm not able to verify it.
Would you please to check it on your side?
The change is in BETA repository so far - https://github.com/lrybak/addon-repository-beta/

Hey @lrybak,
Thanks for your efforts. Good news first: It works. There are some minor cosmetic issues you could improve, but nothing that affects functionality.
After choosing the "ha7net" option, i had to flip the switch to show hidden options to show the ip address field.
I entered the IP address and wanted to save the config and start the add-on. But it complained that i did not choose a mandatory device:

So after choosing whatever device, it successfully saved, started the add-on, and worked out of the box.
Here is the generated config, which is correct:

Thanks for your feedback and glad it's working. "Show unused optional configuration options" relates to those options with no default values and I see no sense to adding default value like localhost for that field (ha7net_server) to prevent that behaviour.
I know as well that "glitch" with device selector. Unfortunately the mechanism used to setup configuration options is not ideal. I can't setup validator like: device is not required if you select ha7 but is required in case you selected usb/i2c.
For your case you can select any device. It doesn't really matter. The logic used to create config file on runtime simply skips that device you select.
I will publish that feature in stable release today.


Create a GUI

[ ] Define which library is going to be used
[ ] Do a mock rendition of what it will be (Paper? Digital?)
[ ] Do a MVP

GUI Frameworks for Python:

Kivy
PyQT
Tkinter


Two modals display if accepting invitation, don't have email (signin with twitter) and need to accept T&C

I think the POST to accept invitations triggers a T&C modal while the email modal is showing.
Additionally, I'm not sure if the accept invitation request is going to work anyway with external login when T&C is needed as T&C needs to be accepted before the invitation.

Only workaround I can think of at the moment is to disable T&C on the network tenant until it's fixed.

Test cases:

User has invalid profile, needs to accept T&C and is following an invitation

Setup: Need to set the displayName to null in Cassandra using cqlsh and clear redis, then accept an invitation as that user
Expected workflow:

Login as the user following an invitation
User gets the edit profile modal, they must put in their display name and Save
Edit profile modal closes, T&C opens. User must accept & continue
T&C modal closes, invitations are then automatically accepted and the activity feed begins to fill up

User has invalid profile, is following an invitation

Setup: Need to set the displayName to null in Cassandra using cqlsh and clear redis, then accept an invitation as that user
Expected workflow:

Login as the user following an invitation
User gets the edit profile modal and invitation is accepted concurrently
When the user fills in their profile details and saves, the activities are waiting for them in their feed

User needs to accept T&C, has valid profile, is following an invitation

Setup: Enable T&C
Expected workflow:

Login as the user (e.g., using twitter, don't create an account and accept T&C) following an invitation
User gets the T&C, accepts the T&C
Modal closes and then the invitations are accepted and the activity feed populates on the fly

Note that when https://github.com/oaeproject/Hilary/pull/1238 is merged, there should be no case when a user follows an invitation and does not have a verified email address when they create their account.

Finished review. Back to @mrvisser for follow-up

All questions have been addressed by @mrvisser . Merged.


Update logic for getting Analytics instance from package:unified_analytics

Part of:

https://github.com/flutter/flutter/issues/128251

Currently, when we want to use the analytics instance from package:unified_analytics, we are just grabbing it from globals. However, with the legacy analytics instance, there are some things we check to return a no-op version of the instance.. for example, if we are running on bots or a non standard branch, we use a no-op instance
This PR uses the same previous checks for the new analytics instance
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

FYI I'm unsubscribing for now so I don't get notified each time you push. Feel free to ping me again when it's ready for review.

@christopherfujino this PR is ready for your review now


Execute command before stop

Add (optional) command to execute before shutting down a container:
docker::run { "myinstance":
...
before_stop => "/path/to/my_clean_shutdown_commmand",
}

@garethr anything wrong with this PR?


String literal as object property name fails (TypeError: base[type] is not a function)

version 4.2.0 fails to process files with string literal as object property name
Create a test.js file with content:
const test = {
  ok: null,
  'no-ok': null,
};

Try processing it

nativejsx test.js --output ./here
Results in error:
nativejsx/node_modules/acorn/dist/walk.js:29
    base[type](node, st, c)
              ^

TypeError: base[type] is not a function
...

My short investigation showed it is most probably caused by https://github.com/treycordova/nativejsx/commit/52770907fb942fdfa94887283e3d6a7b0066f8e1

I have fixed this bug, and create a pull request. #24
you can use my fork temporarily.
npm install https://github.com/j3l11234/nativejsx/archive/<IP_ADDRESS>.tar.gz --save-dev

@treycordova
I have the same problem.
The PR related to this has already been merged, so would you please release it?

This is released as 4.3.0! Sorry for the delay.


WIP: Fix aks-preview support with Python 2.7

Fix aks-preview support with Python 2.7
This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[x] My extension description/summary conforms to the Extension Summary Guidelines.

/cc @zqingqing1 @williexu

Even with this, there're still other issues. Let me close this instead.


[5.9] Respect formatting of links to symbols using custom titles

Explanation: Fixes bug where code voice is incorrectly applied to links with custom titles/formatting which point to symbols. Now the inline formatting of the custom links will be respected as-is.
Scope: Impacts all DocC links with custom titles/formatting
Issue: rdar://108515663
Risk: Low, added flag/logic for links with custom titles
Testing: Added/updated unit tests and manually tested various kinds of DocC links to verify that the formatting is appropriate.
Reviewer: @dobromir-hristov and @marinaaisa
Original PR: #647

@swift-ci test


Add suffix to testdb name, fix, #179.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@1d474ee). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #180   +/-   ##
=========================================
  Coverage          ?   78.39%
=========================================
  Files             ?       38
  Lines             ?      921
  Branches          ?      126
=========================================
  Hits              ?      722
  Misses            ?      134
  Partials          ?       65

Continue to review full report at Codecov.

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


can't get it to work

First, thanks for this, love the idea behind it and was waiting for something like this.
But I can't make it work… not sure what the issue is, looks to me, I don't have a proper Spotify access. Also, I'm not sure what to put in the  SPOTIPY_REDIRECT_URI variable... when I initialized the first_run I was prompted once by Spotify to grant access, then I'll get an error in the browser due to the <IP_ADDRESS> redirect, but the entries in the spotipy_cache look valid.
when i trigger the artist recommendation endpoint i get the following output:
subtify  | Traceback (most recent call last):
subtify  |   File "/home/user/subtify/./generate_playlists.py", line 123, in write_playlist
subtify  |     for playlist in pysonic.getPlaylists()["playlists"]["playlist"]:
subtify  | KeyError: 'playlist'

docker compose is the following:
services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidome
    user: 1000:1000
    ports:
      - 4533:4533
    restart: unless-stopped
    volumes:
      - /srv/navidrome:/data
      - /storage/media/music:/music:ro
    environment:
      - ND_SCANSCHEDULE=168h
      - ND_LOGLEVEL=info
      - ND_SESSIONTIMEOUT=24h
      - ND_BASEURL=
      - ND_AUTHREQUESTLIMIT=3
      - ND_AUTHWINDOWLENGTH=60s
      - ND_LASTFM_ENABLED=true
      - ND_LASTFM_APIKEY=xxx
      - ND_LASTFM_SECRET=xxx
      - ND_SPOTIFY_ID=xxx
      - ND_SPOTIFY_SECRET=xxx
    networks:
      - media
  subtify:
    container_name: subtify
    image: blastbeng/subtify:latest
    restart: always
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SPOTIPY_CLIENT_ID=xxx
      - SPOTIPY_CLIENT_SECRET=xxx
      - SPOTIPY_REDIRECT_URI=http://<IP_ADDRESS>:8080/
      - SUBSONIC_API_HOST=http://<IP_ADDRESS>
      - SUBSONIC_API_PORT=4533
      - SUBSONIC_API_USER=xxx
      - SUBSONIC_API_PASS=xxx
      - SUBSONIC_API_BASE_URL=/
      - SCHEDULER_ENABLED=1
      - ITEMS_PER_PLAYLIST=100
      - NUM_USER_PLAYLISTS=5
      - ARTIST_GEN_SCHED=1
      - RECCOMEND_GEN_SCHED=4
      - PLAYLIST_GEN_SCHED=3
      - SAVED_GEN_SCHED=2
      - LOG_LEVEL=40
    volumes:
      - /srv/navidrome/cache:/home/user/subtify/cache
    ports:
      - 50811:50811
    networks:
      - media
networks:
  media:
    external: true

First, thanks for this, love the idea behind it and was waiting for something like this.
But I can't make it work… not sure what the issue is, looks to me, I don't have a proper Spotify access. Also, I'm not sure what to put in the SPOTIPY_REDIRECT_URI variable... when I initialized the first_run I was prompted once by Spotify to grant access, then I'll get an error in the browser due to the <IP_ADDRESS> redirect, but the entries in the spotipy_cache look valid.
when i trigger the artist recommendation endpoint i get the following output:
subtify  | Traceback (most recent call last):
subtify  |   File "/home/user/subtify/./generate_playlists.py", line 123, in write_playlist
subtify  |     for playlist in pysonic.getPlaylists()["playlists"]["playlist"]:
subtify  | KeyError: 'playlist'

docker compose is the following:
services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidome
    user: 1000:1000
    ports:
      - 4533:4533
    restart: unless-stopped
    volumes:
      - /srv/navidrome:/data
      - /storage/media/music:/music:ro
    environment:
      - ND_SCANSCHEDULE=168h
      - ND_LOGLEVEL=info
      - ND_SESSIONTIMEOUT=24h
      - ND_BASEURL=
      - ND_AUTHREQUESTLIMIT=3
      - ND_AUTHWINDOWLENGTH=60s
      - ND_LASTFM_ENABLED=true
      - ND_LASTFM_APIKEY=xxx
      - ND_LASTFM_SECRET=xxx
      - ND_SPOTIFY_ID=xxx
      - ND_SPOTIFY_SECRET=xxx
    networks:
      - media
  subtify:
    container_name: subtify
    image: blastbeng/subtify:latest
    restart: always
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SPOTIPY_CLIENT_ID=xxx
      - SPOTIPY_CLIENT_SECRET=xxx
      - SPOTIPY_REDIRECT_URI=http://<IP_ADDRESS>:8080/
      - SUBSONIC_API_HOST=http://<IP_ADDRESS>
      - SUBSONIC_API_PORT=4533
      - SUBSONIC_API_USER=xxx
      - SUBSONIC_API_PASS=xxx
      - SUBSONIC_API_BASE_URL=/
      - SCHEDULER_ENABLED=1
      - ITEMS_PER_PLAYLIST=100
      - NUM_USER_PLAYLISTS=5
      - ARTIST_GEN_SCHED=1
      - RECCOMEND_GEN_SCHED=4
      - PLAYLIST_GEN_SCHED=3
      - SAVED_GEN_SCHED=2
      - LOG_LEVEL=40
    volumes:
      - /srv/navidrome/cache:/home/user/subtify/cache
    ports:
      - 50811:50811
    networks:
      - media
networks:
  media:
    external: true

First, thanks for this, love the idea behind it and was waiting for something like this.
But I can't make it work… not sure what the issue is, looks to me, I don't have a proper Spotify access. Also, I'm not sure what to put in the SPOTIPY_REDIRECT_URI variable... when I initialized the first_run I was prompted once by Spotify to grant access, then I'll get an error in the browser due to the <IP_ADDRESS> redirect, but the entries in the spotipy_cache look valid.
when i trigger the artist recommendation endpoint i get the following output:
subtify  | Traceback (most recent call last):
subtify  |   File "/home/user/subtify/./generate_playlists.py", line 123, in write_playlist
subtify  |     for playlist in pysonic.getPlaylists()["playlists"]["playlist"]:
subtify  | KeyError: 'playlist'

docker compose is the following:
services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidome
    user: 1000:1000
    ports:
      - 4533:4533
    restart: unless-stopped
    volumes:
      - /srv/navidrome:/data
      - /storage/media/music:/music:ro
    environment:
      - ND_SCANSCHEDULE=168h
      - ND_LOGLEVEL=info
      - ND_SESSIONTIMEOUT=24h
      - ND_BASEURL=
      - ND_AUTHREQUESTLIMIT=3
      - ND_AUTHWINDOWLENGTH=60s
      - ND_LASTFM_ENABLED=true
      - ND_LASTFM_APIKEY=xxx
      - ND_LASTFM_SECRET=xxx
      - ND_SPOTIFY_ID=xxx
      - ND_SPOTIFY_SECRET=xxx
    networks:
      - media
  subtify:
    container_name: subtify
    image: blastbeng/subtify:latest
    restart: always
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SPOTIPY_CLIENT_ID=xxx
      - SPOTIPY_CLIENT_SECRET=xxx
      - SPOTIPY_REDIRECT_URI=http://<IP_ADDRESS>:8080/
      - SUBSONIC_API_HOST=http://<IP_ADDRESS>
      - SUBSONIC_API_PORT=4533
      - SUBSONIC_API_USER=xxx
      - SUBSONIC_API_PASS=xxx
      - SUBSONIC_API_BASE_URL=/
      - SCHEDULER_ENABLED=1
      - ITEMS_PER_PLAYLIST=100
      - NUM_USER_PLAYLISTS=5
      - ARTIST_GEN_SCHED=1
      - RECCOMEND_GEN_SCHED=4
      - PLAYLIST_GEN_SCHED=3
      - SAVED_GEN_SCHED=2
      - LOG_LEVEL=40
    volumes:
      - /srv/navidrome/cache:/home/user/subtify/cache
    ports:
      - 50811:50811
    networks:
      - media
networks:
  media:
    external: true

Can be an issue in the code, it happens because you have no playlists in your Navidrome,
Just to confirm this, can you manually create a new playlist in navidrome (empty playlist is good) and try to hit artist recommendation endpoint again?
If that's the case, it will be solved today in release v 0.1.2

Solved in RELEASE 0.1.2
Push the latest image or the 0.1.2 tag to solve this error.


Webpack build speed and test

Adds the speed plugin and an example test to compare the build speed against a bench.

:tada: This PR is included in version 3.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Merge273 master

See detailed description in the commit message.

retest this please

https://github.com/hortonworks/cloudbreak/pull/15234


Support lunar coordinate transformations

🎉 New feature
Summary
This PR adds a method to accept the spherical coordinates from the world, and calculate DEM sizes accordingly.
Logic is added to GeoReference() method to perform appropriate transformation for lunar surface.
Extending the same logic as lunar coordinate transformations, we can support transformations for custom surfaces as well.
Test it
Added a simple test to Dem_TEST.cc. The GeoReference method is private currently, and I'm not sure how to verify those coordinate transformations externally.
TODO :

I think the isNonEarthDem flag should be renamed to isUnknownDem or something, since we do support lunar dems now. Open to suggestions !

Depends on :

https://github.com/gazebosim/gz-math/pull/434
https://github.com/gazebosim/gz-math/pull/452

Checklist

[x] Signed all commits for DCO
[x] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[x] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸

Are the SetUnknownDEM and UknownDEM functions needed anymore? I believe with your gz-math and sdformat updates, these methods aren't necessary anymore and can be removed
Also, can you update the comments for both the GeoReference* functions, removing WGS84?
https://github.com/gazebosim/gz-common/blob/ffb860717750ac108dae956248956407463c0410/geospatial/include/gz/common/geospatial/Dem.hh#L85-L86

Done https://github.com/gazebosim/gz-common/pull/377/commits/97b1c6d154d8b90bfcb76c5d68ffbddd81171e2e


feat: support windows.

closes #48
updates dependencies.
drops support for typescript 4 as peer dep

@knightedcodemonkey Thank you. I updated to v2.0.0-rc.2 and it works as expected in Windows. I also pulled down the main branch and it builds and the tests pass. I appreciate you doing this, as it seems by the commit history that it was a lot of trial and error since you don’t have a Windows dev environment.

@davidensinger it was painful, but mainly because I wasn't reading the CI output carefully enough. I kept overlooking the \r carriage return character in the failed tests. Glad it's working for you.


Extract media type

As a library user I want to know whether the content being played contains an audio track or not. This way I can adjust my user interface accordingly.
Acceptance criteria

Media type information is available from the player (video or audio, maybe audiovideo for both).
An overlay is displayed when playing audio in the demo player.

Tasks

[x] Add media type information to the player. Think whether this property can be stored or should be accessed directly from the player (likely stored since, unlike the time, time range or stream type which must be retrieved from the player so that they always reflect the most recent state).
[x] Check whether the media type is reliably determined over AirPlay.
[x] Display headset icon in the demo player when audio-only content is being played.
[x] Keep controls visible at all times in the demo when playing audio.
[x] Adjust AirPlay button icon accordingly.
[x] Display correct AirPlay icon in the control center.
[ ] Report AirPlay unreliable presentation size issue to Apple and update known issues with the FB number.

As expected the presentation size on which we must rely to determine whether the content is video or audio has a weird behavior when AirPlay is enabled before playback starts:

In this case the player never delivers a presentation size. We decided to prevent values from being delivered so that the media type remains unknown (instead of incorrectly being reported as audio).
When disconnecting AirPlay during playback the presentation size is updated to zero first. We mitigated this incorrect value by dropping the first returned presentation size, something that works in all cases according to our tests.

I tried to set nowPlayingInfo[MPMediaItemPropertyMediaType] = NSNumber(value: MPMediaType.anyVideo.rawValue) in the now playing info to see whether this would ensure the AirPlay video icon is displayed in the control center but this does not change anything. So this code seems pretty useless for now.

Also see long-form documentation and associated WWDC session.

The behavior of the AirPlay route picker view button changes with non-default policies like long-form. The button does not animate anymore when AirPlay is active. I really don't know why.


Improve/feeds

For moving Friends and Communities to left, below are the tasks done:
Basic Functionality

We now have 3: hot, trending and new for unauthorised user
We have 4: friends, hot, trending and new for authorised user
For unauthorized user, tabs navigate to global routes only
For authorized user, tabs navigate to /my(ed) routes i.e. trending/my etc. We have a checkbox with label "global" that will open up global routes.

Edge Cases

If a topic is selected, we show a cross with that.
If a topic is selected, global gets checked.
If a topic's cross is clicked, global is unchecked and my(ed) route is called.
If a topic is selected and global is unchecked, selection of topic is discarded and user is redirected to my(ed) route
If Friends is selected, we show no Global checkbox but state of the checkbox is maintained.
If user is unauthenticated and select a topic then logs in, global checkbox is checked and that filtered route is shown for that user.

New features

There should be a descriptive text about the filters applied.
Text should remain same for global/local if filter is feed, otherwise text changes on with global checkbox's value
Text is in a tooltip

@mghazanfar tests failed in CI, please update tests


[Possible issue]After running make test, ray processes will not end gracefully

The ray version on my machine is 0.8.3.

Hi, have you encountered a situation where the make test stops at 40%?

Hi, have you encountered a situation where the make test stops at 40%?

@iman512003
After performing make test in the latest pull request #331, running the htop command does not show any leftover ray processes. Could you verify whether this issue still occurs?


+👙>!!🍆(SEX~Porn🌶XNXX) Asa Akira Xxx Sex Videos xxx Porn Videos News leaked viral sex tapes

37 seconds ago.....
[🌐 𝖢𝖫𝖨𝖢𝖪 𝖧𝖤𝖱𝖤 🟢==►► 𝖶𝖠𝖳𝖢𝖧 𝖭𝖮𝖶]
[🔴 𝖢𝖫𝖨𝖢𝖪 𝖧𝖤𝖱𝖤 🌐==►► 𝖣𝗈𝗐𝗇𝗅𝗈𝖺𝖽 𝖭𝗈𝗐]
L𝚎aked Video Asa Akira video Original Video Viral Video L𝚎aked on X Twitter Telegram
[-wATCH-]—Asa Akira video Video Original Video LinkAsa Akiravideo Video Viral On Social Media X Trending Now
[-wATCH-]—Asa Akira video ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]—Asa Akira video ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]—Asa Akira video Video Original Video LinkAsa Akiravideo Video Viral On Social Media X Trending Now
Asa Akira video Original Video video took the internet by storm and amazed viewers on various social media platforms.Asa Akiravideo, a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked VideoAsa Akiravideo Original Video Viral Video L𝚎aked on X Twitter
Asa Akiravideo Original Video video oficial twitter
L𝚎aked Video Asa Akira video Original Video Viral Video L𝚎aked on X Twitter..
.
.
.
.
.
Asa Akira video-video
.
.
.
.
.
.
37 seconds ago.....
[🌐 𝖢𝖫𝖨𝖢𝖪 𝖧𝖤𝖱𝖤 🟢==►► 𝖶𝖠𝖳𝖢𝖧 𝖭𝖮𝖶]
[🔴 𝖢𝖫𝖨𝖢𝖪 𝖧𝖤𝖱𝖤 🌐==►► 𝖣𝗈𝗐𝗇𝗅𝗈𝖺𝖽 𝖭𝗈𝗐]
L𝚎aked Video Asa Akiravideo Original Video Viral Video L𝚎aked on X Twitter Telegram
[-wATCH-]—Asa Akiravideo Video Original Video LinkAsa Akiravideo Video Viral On Social Media X Trending Now
[-wATCH-]—Asa Akiravideo ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]—Asa Akiravideo ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]—Asa Akiravideo Video Original Video LinkAsa Akiravideo Video Viral On Social Media X Trending Now
Asa Akiravideo Original Video video took the internet by storm and amazed viewers on various social media platforms.Asa Akiravideo, a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked VideoAsa Akiravideo Original Video Viral Video L𝚎aked on X Twitter
Asa Akiravideo Original Video video oficial twitter
L𝚎aked VideoAsa Akiravideo Original Video Viral Video L𝚎aked on X Twitter..
.
.
.
.
.
.
.
.37 seconds ago.....
[🌐 𝖢𝖫𝖨𝖢𝖪 𝖧𝖤𝖱𝖤 🟢==►► 𝖶𝖠𝖳𝖢𝖧 𝖭𝖮𝖶]
[🔴 𝖢𝖫𝖨𝖢𝖪 𝖧𝖤𝖱𝖤 🌐==►► 𝖣𝗈𝗐𝗇𝗅𝗈𝖺𝖽 𝖭𝗈𝗐]
L𝚎aked Video Asa Akiravideo Original Video Viral Video L𝚎aked on X Twitter Telegram
[-wATCH-]—Asa Akiravideo Video Original Video LinkAsa Akiravideo Video Viral On Social Media X Trending Now
[-wATCH-]—Asa Akiravideo ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]—Asa Akiravideo ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]—Asa Akiravideo Video Original Video LinkAsa Akiravideo Video Viral On Social Media X Trending Now
Asa Akiravideo Original Video video took the internet by storm and amazed viewers on various social media platforms.Asa Akiravideo, a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked VideoAsa Akiravideo Original Video Viral Video L𝚎aked on X Twitter
Asa Akiravideo Original Video video oficial twitter
L𝚎aked VideoAsa Akiravideo Original Video Viral Video L𝚎aked on X Twitter..
.
.

fdg


syntax error in URL

I put in my URLs for PyPotter but it gave me a syntax error. I'm a beginner at python.

More information needed.