✨ Have sdk live as dependency

What are you trying to do?
Currently the typescript sdk installs itself as a folder within the project and has its own package.json and lock file.
This makes things a little tricky to work around since there are now two separate places that try to manage the dependencies.  This is especially true since the dagger code references the sdk.
Why is this important to you?
The 'normal' way for these types of dependencies are for it to be installed via a package manager and live within the node_modules folder.
How are you currently working around this?
I haven't tried in a while, however the fact that the sdk had its own dependencies (and required it own package manager) than the main project left me with dependency errors that I wasn't able to resolve cleanly.
This resulted me in not running dagger locally, and only running it through CI

Currently the typescript sdk installs itself as a folder within the project and has its own package.json and lock file.
This makes things a little tricky to work around since there are now two separate places that try to manage the dependencies. This is especially true since the dagger code references the sdk.

We installed the SDK as a local dependency because the SDK itself is bundled inside the Dagger binary.
We could do it differently but that means you cannot use the SDK as local dep... or we would need 2 different runtime, 1 local and 1 remote.

I haven't tried in a while, however the fact that the sdk had its own dependencies (and required it own package manager) than the main project left me with dependency errors that I wasn't able to resolve cleanly.
This resulted me in not running dagger locally, and only running it through CI

How is that so? What's your errors and which package manager are you using?
When you say locally do you mean with tsx xxx or with dagger call? It should work with dagger call not matter the environment (CI, local, vps...)

(Take this all with a grain of salt, since I haven't looked too deeply on how things are constructed internally)

We installed the SDK as a local dependency because the SDK itself is bundled inside the
Dagger binary.

That is the main part that I'm wondering about

We could do it differently but that means you cannot use the SDK as local dep... or we would need 2 different runtime, 1 local and 1 remote

There are two unique parts.  One is the SDK itself, and the other is the code-gen part.
Those could be split up.  Some libraries that rely heavily on code-gen, like prisma, do this in order to keep a separation between the 'library' and the 'generated code'

How is that so? What's your errors and which package manager are you using?
When you say locally do you mean with tsx xxx or with dagger call? It should work with dagger call not matter the environment (CI, local, vps...)

This was with dagger call.
I would have to take a look at it again, especially with the recent changes, but the issue was that the dependencies were conflicting since they were installed separately.

There are two unique parts. One is the SDK itself, and the other is the code-gen part.
Those could be split up. Some libraries that rely heavily on code-gen, like prisma, do this in order to keep a separation between the 'library' and the 'generated code'

That's actually a good idea, we might be able to split codegen & the SDK library, we would need 2 different important path though like
import { Container } from<EMAIL_ADDRESS>// Generated code
import { object, func } from<EMAIL_ADDRESS>// Static library

Which means that sdk depends on @dagger.io/dagger but @dagger.io/dagger is a static library publised on npm on each release/push to main.
That also means we could publish our package to jsr and just create a specific imports header to supports deno.
That's super smart!
@helderco Do you have any opinion on this idea?

The way that prisma does it (and there are other ways), is that it has its static library as @prisma/client.  Internally it references .prisma/client which is the pre-generated code that lives in node_modules.
This allows the user to import @prisma/client and have everything typed and working properly with their generated code.
The gritty details look something like
@prisma/client
  exports:
    .: require('.prisma/client')
    ./runtime: // static code

.prisma/client
  imports:
    @prisma/client/runtime

The putting folders in node_modules causes some headaches, (also limits you to one usage in a monorepo), but there are other ways to get around that too

Assumption Note:
This comment assumes that the code for a generated module is only needed in the engine.
Another thing that may work. Since you only really need the types for development, the 'client gen' could just spit out a .d.ts file that extends the dagger types (and creates new ones).
That file could then just be gitignored.

I’ve considered something similar for Python actually, but not exactly as suggested.
Let’s look at what makes up an SDK client library:

The client bindings
The client code that lives between the bindings and the communications with the API server, including a very simple connection logic based on only two env variables (session token and port)
Code for supporting modules (introspection and registration, deserialization and serialization, validation and dynamic execution or dispatch)
Automatic provisioning logic

The automatic provisioning is only useful outside of modules, and is a maintenance burden, especially since you can just use dagger run and take advantage of the TUI, but some people like it because it doesn’t require them to install the dagger CLI themselves.
There’s actually an internal issue for stripping the automatic provisioning code in the SDK, and essentially trim it down to what’s necessary for modules. Basically make it easy for the engine to exclude this code when bundling for the runtime container. I actually started working on this a couple months ago for Python.
Then there’s the module support stuff which only makes sense in the context of modules and could be excluded from publishing to the public registries for example. It’s not even necessary to have locally since it’s only needed during runtime, and not for IDE autocompletions.
Now you’re just left with the generated client bindings and the underlying code that knows how to talk to the API. I actually think this is all that should be published to the public package registry.
For those that don’t know, Python was the second SDK to support modules and I initially intended to follow Go and generate something specific for modules, next to the client bindings, but I was pressed for time so I decided to just copy the whole SDK client library to the module and install it as a dependency with a local path source.
However, this turned out to be an advantage in several different ways. It’s more easily isolated, it’s more flexible, and gives an easier path to support better integration with non module code, the host, etc. So we still have more experimentation we need to be free to make in this area.
There’s just a few wrinkles to fix, depending on SDK. We need to better decouple the SDK components, work on these integrations that we’re planning, and maybe at some point we’ll optimize further by leveraging the public package registry in modules.
But it’s too soon for that, and shouldn’t be required to make it work, only as an optimization. Imagine if you couldn’t test your non-Dagger TypeScript package locally while developing it. In this case it even hurts performance because you’re fetching the package from a remote server when right now it comes off the already running Dagger engine in your machine, with exactly the right compatible version between SDK and engine. So you’d only be “optimizing” for producing less clutter in your local filesystem, which only happens when you need IDE autocompletions, but possibly having a harder time keeping things appropriately in sync.
To clarify
I think there’s maybe just a bit of confusion in how packages should be set up here. If any of the following points don’t work as described in the TypeScript SDK then it’s something that should be fixed, or that I’m unaware of, so point it out if that’s the case so we can discuss solutions.
For clarity:

The generated sdk directory is only needed locally to support IDE integration. That’s it!
You’re not required to install it locally for any other reason, it’s on .gitignore already, and can be safely deleted.
Your module’s dependencies should at minimum list the local sdk path as a dependency, but it should install it into the module’s own node_modules, even if just a symlink (aka, editable dependency).
There’s no reason to prefer having two copies of the SDK library (in sdk and inside node_modules) if a simple symlink will do.
Tom tells me that there’s not even a need to install locally anyway since the IDE finds the necessary typing information from the path pointed at in tsconfig.json.
With sdk as a dependency, the package manager should not install from the lock file in sdk, just like with published packages. I’d be surprised if a package manager does this on its own (I’d love to know about that), but even if it does, the SDK can just exclude that lock file from being bundled in the first place.
To avoid discrepancies between the files that a module generates and those that are published, it’s possible for the TypeScript SDK to bundle a build of the client library, just like before it’s published to the registry. This would produce the same set of files when installed either way.
I believe there’s a problem for monorepos in the JavaScript ecosystem when one package is a subdir of another, but I’d like to understand how TypeScript Dagger modules are problematic to use because of that.
I’m convinced that the confusion around the lock file is from a previous bug in the TypeScript SDK runtime module, where at one point it was installing the SDK independently, before installing the module’s dependencies. I’m pretty sure that has been fixed though because I remember reviewing that. The runtime should only install the module’s own package.json, which will also install the SDK since it should be listed in there as a dependency.
If the lock file in sdk is still being used somehow, then please file a bug report. That lock file should only be used when developing the client library in our repo’s sdk/typescript.

And bringing it home:

Leveraging the public package registry is worse for performance, but there’s other ways to slim down what gets exported to the host. Only after all of that would it make sense to discuss offloading even more to the registry.
I think it’s still worth it to decouple the client library components, especially the automatic provisioning logic, in order to strip that from the bundled SDK. Perhaps even not exporting the module support stuff to the host as well since it only makes sense to the runtime container and is not necessary for IDE integration.
I’ve considered many times putting only the generated client bindings under src/dagger in the module, instead of vendoring the whole library. Basically what you’re suggesting, since it’s an itch I share! The problem is the change in imports, and we have a few things to figure out yet before cementing on something here.

First, thanks for the great write up.  I'll go through this from top to bottom first, then have more freeform comments below.  I also want to point out that I only have knowledge/experience of using the dagger cli with modules, so I can't really comment on cases that fall outside of that
Initial reactions / comments

Now you’re just left with the generated client bindings and the underlying code that knows how to talk to the API. I actually think this is all that should be published to the public package registry.

What are the generated client bindings here? I read that as it is the stuff that is generated from my 'client' module, although I'm most likely mistaken on this.

Imagine if you couldn’t test your non-Dagger TypeScript package locally while developing it

By test, do you mean running dagger call or more unit-testing style?

So you’d only be “optimizing” for producing less clutter in your local filesystem, which only happens when you need IDE autocompletions, but possibly having a harder time keeping things appropriately in sync

I agree that keeping the versions in sync is a bit more of an issue.  You do have slightly the same issue now, as you can still have an old sdk installed locally that doesn't match the version of the dagger engine that you are running against.

The generated sdk directory is only needed locally to support IDE integration. That’s it!

Yup

With sdk as a dependency, the package manager should not install from the lock file in sdk, just like with published packages.

The presence of the lock file causes the package managers to treat the folder differently (more later)

at one point it was installing the SDK independently, before installing the module’s dependencies.

I'm still getting errors running dagger locally, but I'll post a separate issue

I’ve considered many times putting only the generated client bindings under src/dagger in the module, instead of vendoring the whole library. Basically what you’re suggesting, since it’s an itch I share!

Ya, I think we are pretty much on the same page here.

The main suggestion for splitting up the sdk, was to separating out the 'static' and 'dynamic' parts, and it was the static parts that I was originally suggesting that were to get published.  Anything that is generated, either from the local modules, or from dagger verse modules, should just live locally.
Since those dynamic parts are just for the IDEs, you could just build up a could .d.ts files.  That way you wouldn't even need much of anything installed.
And from the sounds of it, since the static parts are always just vendered from the local engine, you probably wouldn't need to put them in the folder structure either.
I never meant to imply that generated code should be published, as that causes a bunch of issues that you already called out
My main concern about having the sdk folder living within the normal project directory, is how it interacts with monorepos and node tooling in general.
In monorepo setups, you generally have a setting in the root package.json that tells it where to find the packages within the monorepo.  This can be configured to not include the sdk folder, but tooling generally expects package.json files that are outside of node_modules to be part of the monorepo.  yarn for instance, will throw an error if you try to yarn install in a folder that isn't in the includes packages property of the root package.json.
There are valid reasons to have packages in a monorepo that aren't a part of it, and I have a couple in mine.  One of the ways to be able to configure, and install, its dependencies, is to include a yarn.lock file in that local package.
Note.. yarn v2+, by default (which is also what the sdk uses), uses pnp as its node_linker.  This approach doesn't even have a node_modules folder and it abstracts away the access to the dependencies in the .pnp.js file, which also acts as its lock file.
(side note, I currently have my dagger code outside of my monorepo in a separate repository. Part of this is due to technical limitations, but the main part is that I prefer having the build pipelines live separate from the rest of my code.  It allows me to iterate and change my build pipelines in a different cadence than the rest of the monorepo.  I can go over this in more depth later)
TLDR;

I agree that if the sdk is only for the sdk, then we only need the type definitions locally.
Having a separate sdk folder can be handled inside of a monorepo (but not one of the core packages) but it requires a specific configuration

I just created https://github.com/dagger/dagger/issues/8722 for the issue where I can't run dagger call locally.  This is mainly caused by the fact that there are two separate package managers at play here.  This is a similar issue that would play out in a monorepo

Now you’re just left with the generated client bindings and the underlying code that knows how to talk to the API. I actually think this is all that should be published to the public package registry.

What are the generated client bindings here? I read that as it is the stuff that is generated from my 'client' module, although I'm most likely mistaken on this.

See this:

https://github.com/dagger/dagger/issues/8424.

Basically the “client bindings” is what codegen generates for the client, based on the API schema. It’s sometimes conflated with “module codegen” which does not only that, but also generates code and files specific for working with modules, like vendoring the client library in sdk.
When not using a module, codegen only generates client bindings for core API types. That’s what’s published in the public package registries today (along with the rest of the SDK’s client library).
When using a module, codegen also includes the client bindings for that module’s dependencies as well (this is the main reason for vendoring, but sync’d versions is another big one). And we have an outstanding issue to also be able to generate “self bindings” too, but that’s not possible today:

https://github.com/dagger/dagger/issues/8030

One of the reasons for decoupling is we want to be able to generate client bindings from dependencies in a dagger.json for running directly on the host, instead of just the module environment:

https://github.com/dagger/dagger/issues/5993
https://github.com/dagger/dagger/issues/7707

Imagine if you couldn’t test your non-Dagger TypeScript package locally while developing it

By test, do you mean running dagger call or more unit-testing style?

I mean a normal TypeScript package that’s not a Dagger module. Using it locally during development, depending on use case. For a web app, or a CLI it could mean running directly, not just unit testing.

I agree that keeping the versions in sync is a bit more of an issue. You do have slightly the same issue now, as you can still have an old sdk installed locally that doesn't match the version of the dagger engine that you are running against.

Not the same issue. If you have a different Dagger engine, then a dagger develop should update your local version of sdk automatically, without any other intervention from you. And remember, that local copy has no effect on whether or not the module is able to run. You can even delete it!

With sdk as a dependency, the package manager should not install from the lock file in sdk, just like with published packages.

The presence of the lock file causes the package managers to treat the folder differently (more later)

Yes, but only when installing from the directory that has the lock file directly, not from a dependency that has its own lock file. Do you see the difference?
In the first case you’re doing npm install ./sdk, but what I’m talking about is doing npm install when one of the dependencies is the local path ./sdk (assuming there’s a lock file in sdk, which now shouldn’t exist).

My main concern about having the sdk folder living within the normal project directory, is how it interacts with monorepos and node tooling in general.

That’s what I’m trying to understand, but I’m not following. Can you show a simple example? This would help me understand the constraints for:

https://github.com/dagger/dagger/issues/8511

Why do you need to npm install the module locally? Is it just for IDE integration when developing the module or are you trying to import code from the module outside it in the monorepo? If it’s the former, isn’t tsconfig.json enough for that like Tom says? Is your only motivation to have a single node_modules directory in the monorepo for some reason? Does simply running dagger init --sdk=typescript my-module in an existing TypeScript/JavaScript project cause issues right off the bat? Does it affect the existing project or the Dagger module?

In monorepo setups, you generally have a setting in the root package.json that tells it where to find the packages within the monorepo. This can be configured to not include the sdk folder

Do you mean the module’s folder? Or when you say “monorepo” here, you’re considering the module itself as the monorepo?
Because if you have a <repo>/package.json, you’ll also have a <repo>/modules/my-module/package.json and a <repo>/modules/my-module/sdk/package.json, so if the module is not the “monorepo” in this scenario then I’m thinking “what about the module’s package.json” 😅
You shouldn’t have a <repo>/modules/my-module/sdk/node_modules/ or install that directory directly. It’s only there as a dependency source.

but tooling generally expects package.json files that are outside of node_modules to be part of the monorepo.

You mean down the file tree, not up, right? For example, having a <repo>/node_modules/, you’re saying tooling expects <repo>/modules/my-module/package.json to be a part of <repo>/node_modules/ instead of having its own <repo>/modules/my-module/node_modules/?

yarn for instance, will throw an error if you try to yarn install in a folder that isn't in the includes packages property of the root package.json. There are valid reasons to have packages in a monorepo that aren't a part of it, and I have a couple in mine. One of the ways to be able to configure, and install, its dependencies, is to include a yarn.lock file in that local package.

Is that really the best way to say you don’t want sub-package <repo>/modules/my-module/ to be a part of the <repo>/ monorepo? 😕 Since the TypeScript SDK already manages a lock file using your chosen package manager, doesn’t that solve the issue?

Note.. yarn v2+, by default (which is also what the sdk uses), uses pnp as its node_linker. This approach doesn't even have a node_modules folder and it abstracts away the access to the dependencies in the .pnp.js file, which also acts as its lock file.

Not sure I follow. Is it good or bad? If there’s things we can change in the SDK to make life easier, we’re listening. 😇

(side note, I currently have my dagger code outside of my monorepo in a separate repository. Part of this is due to technical limitations, but the main part is that I prefer having the build pipelines live separate from the rest of my code. It allows me to iterate and change my build pipelines in a different cadence than the rest of the monorepo. I can go over this in more depth later)

That was our preference initially 😄, but a lot of people preferred co-hosting the module next to the code that it manages. These days there’s additional benefits due to the introduction of default path for directories, but whenever possible we like to encourage this pattern actually. We’re still trying to figure out the best patterns that works best for both use cases.

One of the reasons for decoupling is we want to be able to generate client bindings from dependencies in a dagger.json for running directly on the host, instead of just the module environment

Ya, I'm only really considering the module case, so a bunch of my assumptions is probably incorrect or at the very lease imcomplete.

Not the same issue. If you have a different Dagger engine, then a dagger develop should update your local version of sdk automatically, without any other intervention from you. And remember, that local copy has no effect on whether or not the module is able to run. You can even delete it!

It is the same issue in that I can develop the module using one set of typings, but those may change depending on the version of the engine that is running it.
I ran into a similar issue with Container.withNewFile.  At one point, it only took 2 arguments, and the contents were passed in as a property on the options.  We upgraded the version of the engine, but I didn't change the version of the module.  Surprisingly the code didn't fail at runtime, but my IDE was showing errors when I did eventually upgrade the sdk locally.

Note.. yarn v2+, by default (which is also what the sdk uses), uses pnp as its node_linker. This approach doesn't even have a node_modules folder and it abstracts away the access to the dependencies in the .pnp.js file, which also acts as its lock file.

Not sure I follow. Is it good or bad?

It was neither good, nor bad.  Just an explanation

but a lot of people preferred co-hosting the module next to the code that it manages.

I've been getting pressure internally to move the dagger code into the monorepo, so I understand the desire to keep everything together
For most of the other comments, it was mostly based on the fact that I was on an old version, which were causing things to break.  Now thats been fixed, I'm not really worried about it as much.


🚀 Feature: Move some lint rules over to no-autofix

Bug Report Checklist

[X] I have tried restarting my IDE and the issue persists.
[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
When I write:
let x: string | null = null;

eslint autofixes the let to const. I find this to be incredibly unhelpful. If I wrote let, it's more likely that I haven't reassigned the variable yet. By auto-fixing it to const, eslint will produce a TypeScript error later, when I do reassign x, and this one can't be autofixed.
Of course, I do want an eslint error for a let variable that's never reassigned. I just don't want autofix.
I'm not aware of any built-in way to get this behavior with eslint, but it's exactly what the no-autofix plugin is designed to do. They specifically mention the prefer-const rule as their motivating example.
Since this repo's .eslintrc.cjs file is so complex, swapping in no-autofix/prefer-const isn't that straightforward (you have to do it in a few places depending on the file type). It would be nice if this starter kit set up no-autofix and had a centralized place in its .eslintrc.cjs to indicate that you'd prefer the no-autofix version of a rule.
Additional Info
TBH I'm kind of baffled how anyone writes code with the autofix for prefer-const on!
I've also disabled autofix for @typescript-eslint/no-confusing-void-expression. I find the rule useful but its autofix is horrible:
- () => fn()
+ () => { fn() }

This happens if I haven't defined fn() yet, or haven't defined it fully enough for it to have an inferred return type. If I'm defining fn() then the autofix happens offscreen and completely changes the behavior. Yuck!

how anyone writes code with the autofix for prefer-const on!

😄 out of curiosity, how often are your files being saved? Do you have your editor set up to always save on an interval / when typing is done, and/or are you manually saving frequently?
I personally haven't had this pain because I generally only save after I'm done with a block - which means my variables aren't violating by the time I'm done with them.
(I also write let exceedingly rarely, maybe that's just me)

@typescript-eslint/no-confusing-void-expression

Maybe this is a good feature request for the rule? To only auto-fix if the type is known (not error? Similar to #8231, but for this rule specifically? Thoughts?

how anyone writes code with the autofix for prefer-const on!

😄 out of curiosity, how often are your files being saved? Do you have your editor set up to always save on an interval / when typing is done, and/or are you manually saving frequently?

Maybe that's it. I used a programming language / IDE many, many years ago that crashed a lot and it left me with a lifelong habit of compulsively hitting CmdS. I do this subconsciously so I'm not 100% how often I save, but probably every line if not more frequently.

Coming back after a while: this isn't a common ask I've seen, so I think it'd be best left up to the individual repositories. Thanks though!


Update teams-for-vdi.md

The regkey is required for per-machine installations, otherwise the included error will appear.
Fix found here:  https://techcommunity.microsoft.com/t5/windows-virtual-desktop/how-to-install-teams-in-wvd/m-p/1302404/highlight/true#M3476
Verified today, 5/20, on 20h1-evd-o365pp Marketplace image.

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@msdmaguire PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


esp-tls: Failed to create socket (family 2 socktype 1 protocol 0) (IDFGH-8341)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[] 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
ESP32-WROOM-32UE with IDF 4.3.1
I have many controllers in production and on controllers that have iffy internet connectivity, I seem to eventually get this error set, and it never stops until I reset the controller.
E (53626022) esp-tls: Failed to create socket (family 2 socktype 1 protocol 0)
E (53626032) esp-tls: Failed to open new connection
E (53626032) TRANS_SSL: Failed to open a new connection
E (53626042) tls_freertos: Failed establishing TLS connection (esp_transport_connect failed)

I was finally able to reproduce this issue on one of my controllers, though it can take upwards of a day to do so. When I rebooted the wifi access point, the connectivity eventually came back.
This is happening when using Azure middleware client, but also seems to affect other connectivity, as it seems that standard http calls do not work once this error occurs. I have no idea how to fix this issue without resetting the controller.
This is similar to https://github.com/espressif/esp-idf/issues/6940, and other people who have come in and said they have a similar problem.
I've created an ESP forum post on this issue as well: https://esp32.com/viewtopic.php?f=13&t=29821

@rtheil-growlink It seems the socket has run out and allocate new socket failed. You can check your socket fd number whether increasing when you create new socket.

This seems to be the "socket exhaustion" bug in idf 4.3.x that doesn't exist in 4.4.x. However, after switching to 4.4.2, I've found that it makes things even worse and I get frequent crashes that I have never seen on 4.3.x.
For example:
Core  1 register dump:
PC      : 0x401696d3  PS      : 0x00060330  A0      : 0x8016a160  A1      : 0x3ffb2050
0x401696d3: capture_tcp_transport_error at C:/Users/Ricky/esp/esp-idf/components/tcp_transport/transport.c:332
A2      : 0x3ffc2934  A3      : 0x00008008  A4      : 0x00000001  A5      : 0x3ffb7b40
A6      : 0x00000003  A7      : 0x00060023  A8      : 0x801696a4  A9      : 0x3ffb2030
A10     : 0x00000000  A11     : 0xffff8d80  A12     : 0x00000001  A13     : 0x3ffb8684
A14     : 0x00000001  A15     : 0x00060023  SAR     : 0x0000000a  EXCCAUSE: 0x0000001d
EXCVADDR: 0x00000000  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0xffffffff

Backtrace:0x401696d0:0x3ffb20500x4016a15d:0x3ffb2070 0x401d7d95:0x3ffb20a0 0x40136d77:0x3ffb20c0 0x4013a8f9:0x3ffb20f0 0x401393c5:0x3ffb2110 0x401394e4:0x3ffb2140 0x4013816d:0x3ffb2160 0x40137a6a:0x3ffb2180 0x400dd96b:0x3ffb21b0 0x400d8636:0x3ffb21e0 0x40095929:0x3ffb2200
0x401696d0: capture_tcp_transport_error at C:/Users/Ricky/esp/esp-idf/components/tcp_transport/transport.c:332
0x4016a15d: ssl_read at C:/Users/Ricky/esp/esp-idf/components/tcp_transport/transport_ssl.c:241
0x401d7d95: esp_transport_read at C:/Users/Ricky/esp/esp-idf/components/tcp_transport/transport.c:190
0x40136d77: TLS_Socket_Recv at C:/repos/ESPfw2/controller-firmware/components/azure-iot/transport_tls_esp32.c:165
0x4013a8f9: MQTT_GetIncomingPacketTypeAndLength at C:/repos/ESPfw2/libs/azure-iot-middleware-freertos/libraries/coreMQTT/source/core_mqtt_serializer.c:2359
0x401393c5: receiveSingleIteration at C:/repos/ESPfw2/libs/azure-iot-middleware-freertos/libraries/coreMQTT/source/core_mqtt.c:1297
0x401394e4: MQTT_ProcessLoop at C:/repos/ESPfw2/libs/azure-iot-middleware-freertos/libraries/coreMQTT/source/core_mqtt.c:2185
0x4013816d: AzureIoTMQTT_ProcessLoop at C:/repos/ESPfw2/libs/azure-iot-middleware-freertos/ports/coreMQTT/azure_iot_core_mqtt.c:182
0x40137a6a: AzureIoTHubClient_ProcessLoop at C:/repos/ESPfw2/libs/azure-iot-middleware-freertos/source/azure_iot_hub_client.c:917
0x400dd96b: AzureService::doWork() at C:/repos/ESPfw2/controller-firmware/main/Services/AzureService.cpp:735
0x400d8636: azureTask(void*) at C:/repos/ESPfw2/controller-firmware/main/controller-firmware.cpp:408
0x40095929: vPortTaskWrapper at C:/Users/Ricky/esp/esp-idf/components/freertos/port/xtensa/port.c:131

Hi @rtheil-growlink,
Looks like I've just created ticket for the same bug.#9847
Please check if my proposal fixes Your issue.
By the way, I couldn't register on esp forum to replay to Your post. I didn't get a confirmation email:-/
Klaudiusz

@rtheil-growlink It seems err_handle is NULL, can you add a check for this?

@klaudiusz223, I had the same issue with esp forums and my personal email address. Had to use work email account despite both being hosting in Exchange Online. Looks like your fix is specific to 4.4.2, but I've yet to see the issue occur there. This could be because 4.4.2 has other issues causing frequent crashes, but we're researching to see if it may be related to our code somewhere. Once I get that part sorted out, I will check to see if we get this same problem. Glad to see you found a solution for your issue.

@rtheil-growlink After quick research, it appears that the problem has occurred since 4.2.1, so the proposed fix can be applied from 4.2.1 onwards.

@klaudiusz223 I'm guessing one issue was fixed in the socket exhaustion issue, while another was created, as my issue is specific to 4.3.x. Thanks for the extra info.

Hi @rtheil-growlink , could you please try this commit to check the socket exhaustion issue. And another issue , do you have any new progress.

@ESP-YJM Thanks. I have that applied and will attempt to flash to the customer's device today to see how well it works. I will also test on one of my devices but it can take a day or two before the problem occurs.

@rtheil-growlink Thanks for reporting, would you please help share if any updates for the issue? Thanks.

After a ton of testing, I have confirmed that this problem is fixed. I no longer have the socket exhaustion issue. My previous report that the issue was not fixed has something to do with other code causing a memory leak and heap fragmentation, but I have concluded it has nothing to do with espressif code. This can be closed. Thanks so much for the fix.


How to set permissions on private key after importing cert via DSC

After importing pfx file how to set permissions on private key with DSC?
e.g., After loading cert into localcomputer \ my store how would one set IIS_IUSRS access to private key for use with IIS site using DSC process?

Hi @plraustin - this is a really good question.
There isn't currently a resource that can be used to assign access to private keys to other local or domain accounts. This does seem like a good idea for a resource and wouldn't be too difficult to implement (based on the work I'm currently doing).
But in the meant time, you could use xScript to do this fairly easily.
Are you importing the certificate with xCertificateImport or are you requesting it using xCertReq?

I build for my use this (ugly) workaround:
        Script Certicate
        {
            GetScript = {
                $store = "My"
                $thumbprint = "xxxx"

                $cert = Get-ChildItem "Cert:\LocalMachine\$store" | where {$_.Thumbprint -like $thumbprint}
                $path = "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\$($cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName)"
                @{Result = $path }
            }
            TestScript = {
                $store = "My"
                $thumbprint = "xxxx"
                $userName = "IIS AppPool\DefaultAppPool"

                $cert = Get-ChildItem "Cert:\LocalMachine\$store" | where {$_.Thumbprint -like $thumbprint}
                $path = "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\$($cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName)"

                $acl = get-acl $path
                ($acl.Access | Where {$_.IdentityReference -eq $userName}) -ne $null
            }
            SetScript = {
                $store = "My"
                $thumbprint = "xxxx"
                $userName = "IIS AppPool\DefaultAppPool"

                $cert = Get-ChildItem "Cert:\LocalMachine\$store" | where {$_.Thumbprint -like $thumbprint}
                $path = "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\$($cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName)"

                $acl = get-acl $path
                $rule = new-object security.accesscontrol.filesystemaccessrule $userName, "Read", allow
                $acl.AddAccessRule($rule)
                set-acl $path $acl
            }
        }

As per my experience, current powershell implementation cannot be used to import a PFX certificate and then assign permissions. As this DSC module is using the standard PS mechanism is affected too.
My current alternative is not to use the DSC module to import a certificate where I need special rights.
Configuration ImportPfxCertificate {
    param(
                [PSCredential] $AdminCreds,
		[String] $CertificateFile,
		[String] $ThumbPrint,
		[String] $PrivateKeyPwd,
		[String] $CertUserName
    )

    Import-DscResource -ModuleName PSDesiredStateConfiguration

    Script InstallPfxCert
	{
		Getscript = {
            $Store = New-Object System.Security.Cryptography.X509Certificates.X509Store -Argumentlist "My", LocalMachine
            $Store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
            $cert = $Store.Certificates | Where Thumbprint -eq $using:thumbprint
            $Store.Close()

            @{Result = $cert }
        }
        TestScript = {
            $Store = New-Object System.Security.Cryptography.X509Certificates.X509Store -Argumentlist "My", LocalMachine
            $Store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
            $cert = $Store.Certificates | Where Thumbprint -eq $using:thumbprint
            $Store.Close()

            $cert -ne $null
        }
        SetScript = {
            $pwd = ConvertTo-SecureString $using:PrivateKeyPwd -AsPlainText -Force
            $flags = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::MachineKeySet -bor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::PersistKeySet -bor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
            $Certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($using:CertificateFile, $pwd, $flags)

            $Store = New-Object System.Security.Cryptography.X509Certificates.X509Store -Argumentlist "MY", LocalMachine
            $Store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
            $Store.Add($Certificate)
            $Store.Close()
        }
        PsDscRunAsCredential = $AdminCreds
		Dependson = "[xRemoteFile]SpPfxCertFile"
	}

    Script SetCerticatePermission
    {
        GetScript = {
            $Store = New-Object System.Security.Cryptography.X509Certificates.X509Store -Argumentlist "MY", LocalMachine
            $Store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
            $cert = $Store.Certificates | Where Thumbprint -eq $using:thumbprint
            $Store.Close()
            $path = "$($env:ProgramData)\Microsoft\Crypto\RSA\MachineKeys\$($cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName)"
            @{Result = $path }
        }
        TestScript = {
            $Store = New-Object System.Security.Cryptography.X509Certificates.X509Store -Argumentlist "MY", LocalMachine
            $Store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
            $cert = $Store.Certificates | Where Thumbprint -eq $using:thumbprint
            $Store.Close()
            $path = "$($env:ProgramData)\Microsoft\Crypto\RSA\MachineKeys\$($cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName)"

            $acl = get-acl $path
            ($acl.Access | Where {$_.IdentityReference -eq $using:CertUserName}) -ne $null
        }
        SetScript = {
            $Store = New-Object System.Security.Cryptography.X509Certificates.X509Store -Argumentlist "MY", LocalMachine
            $Store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
            $cert = $Store.Certificates | Where Thumbprint -eq $using:thumbprint
            $Store.Close()

            $PKFile = Get-ChildItem "$env:ProgramData\Microsoft\Crypto\RSA\MachineKeys\$($cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName)"
            $PKAcl = $PKFile.GetAccessControl("Access")
            $ReadAccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($using:CertUserName, [System.Security.AccessControl.FileSystemRights]::Read, [System.Security.AccessControl.AccessControlType]::Allow)
            $PKAcl.AddAccessRule($ReadAccessRule)
            Set-Acl $PKFile.FullName $PKAcl
        }
        DependsOn = "[Script]InstallPfxCert"
    }
}
```


Import a bank statement

Where we can find a documentation about setting up a bank statement format and importing a bank statement?
For example, documentation about formats in AX 2012:
https://docs.microsoft.com/en-us/dynamicsax-2012//rus-exchange-formats-of-client-bank-form
Please provide a link where we can find a documentation how to set up functionality for importing a bank statement in Dynamics 365 FO.
Thank you

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

ID: f8d08902-6f7b-40cf-364e-8d7100843495
Version Independent ID: 869a50fd-7220-0e65-07df-b5ebd5a2d82b
Content: Cash flow management (Russia) - Finance & Operations | Dynamics 365 | #MSDyn365FO
Content Source: articles/financials/localizations/rus-cash-flow.md
Service: dynamics-ax-applications
GitHub Login: @ShylaThompson
Microsoft Alias: shylaw

@vavd, thanks for the feedback.
Bug 323145 has been logged to track this issue.

Hello! Tell me please when will the documentation be released?


Specification version 1.5 support

Are there plans to add support for 1.5?

Hi @paulkoko, yes it is planned and I'm working on it. Just scrambling for time to complete it currently.
A good chunk is already done in https://github.com/CycloneDX/cyclonedx-go/pull/90, and some tiny parts are already merged to master.

If you're willing and able to, you could help by either contributing missing parts in #90, or alternatively test the changes that currently exist in that branch, and let me know of any issues you run into.
If you have an existing code base you could test on with v1.5 BOMs, that'd be super helpful.

I'll be happy to test against our codebase, I'll see if I can put some time towards it this week or next.

When you say you can't consume BOMs generated by Trivy, is it that info is being dropped, or is decoding failing entirely?

Decoding fails entirely, it returns an  ErrInvalidSpecVersion here when it discovers that it's an unsupported version.

@niclas-g Decoding fails entirely, it returns an ErrInvalidSpecVersion here when it discovers that it's an unsupported version.

Ah, I see. This is technically fixed in master already
https://github.com/CycloneDX/cyclonedx-go/blob/83031d6697bd6d8b20bce2a0326347a0ea7691c7/cyclonedx_json.go#L28-L62
For a short-term "solution" I could cut a v0.7.2 release, so that at least decoding works again. Would that help?

@nscuro, that would be great!

@niclas-g Here we go: https://github.com/CycloneDX/cyclonedx-go/releases/tag/v0.7.2
Would still very much appreciate it if you could also test the spec-v1.5 branch with your code base! :)

Thanks @nscuro! I'll have a look at the release shortly and try out the branch against our code base next week.

Is there a list of 1.5 features that are not yet supported?  For example

modelcard
data
signature
additionalProperties
attachment
hash-alg
condition

I am concerned about Metadata.Tools, https://github.com/CycloneDX/cyclonedx-go/blob/master/cyclonedx.go#L439

In v1.4, tools is an array https://cyclonedx.org/docs/1.4/json/#metadata_tools
In v1.5, tools is an object https://cyclonedx.org/docs/1.5/json/#metadata_tools_oneOf_i0_components

It seems like it will not be possible to deserialize both 1.4 and 1.5 SBOMs into the same structure.


num_recycles in PymolFold

How can the num_recycles be adjusted to 24 in PymolFold?

As far as I know, the API provided by Meta does not support this, check the ESMFold_colab please. In the notebook, you are free to change the recycle number as you like.

Yes, I know that this parameter is adjustable in ESMfold, but I will hope this parameter add to PymolFold.

Sorry, I do not have the resource to host a new API.
I will leave this issue open to see if anyone has a good solution.

@biotech70 Hi, check the updates. We have a self-hosted API and support user-defined num_recycles.


Don't know command and how to setup "Metrics collector configuration"

[Enter feedback here]
It's better if provide sample for "Metrics collector configuration setup"

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

ID: b6f53323-f01c-5eb0-6f98-c0c8914bd610
Version Independent ID: b3e85483-faaf-22d2-e72c-1e2fb3ba0066
Content: Collect and transport metrics - Azure IoT Edge
Content Source: articles/iot-edge/how-to-collect-and-transport-metrics.md
Service: iot-edge
GitHub Login: @veyalla
Microsoft Alias: veyalla

@anancola Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

The update to the article was made, offering the tutorial link at the top of the page. The change should be made public in the next day or so. I will close this issue and mark as resolved. If there are any other related questions or comments, feel free to reopen this issue. Thank you.

#please-close


how can i check if permission denied for camera

Hi, if user go to a qr scanner screen first time, permission dialog popup, if user allow permission then everythings good, but if user denied the permission then there is message show "Camera is not authorize",
now what i want that, if user denied, then there should be function run which navigate back the screen and when user come back to screen then again camera permission dialog show
thank you, i hope you understand the issue, it can be a enhancement for package

in order to support such behavior, you'll gonna have to take a look on https://github.com/react-native-community/react-native-permissions#understanding-permission-flow, which explains exactly how does work the permissions workflow in react-native-permissions which it's one of our peer dependencies


Headers for lists of signals in Node tab doesn't properly update colors when theme changes

Tested versions
Reproducible: v4.3.dev5.official [c9c17d6ca]
System information
Godot v4.3.dev5 - Fedora Linux 39.20240410.1 (Silverblue) - Wayland - Vulkan (Forward+) - dedicated AMD Radeon RX 570 Series (RADV POLARIS10) () - Intel(R) Core(TM) i3-10100F CPU @ 3.60GHz (8 Threads)
Issue description
Headers for lists of signals doesn't get properly updated colors when theme changes:

Steps to reproduce
3.webm

Start editor with any theme (in my case light theme).
Pick any node to open it's Node tab.
Open editor settings.
Change current theme to any other theme (Default in my case).
Observe that headers for signals doesn't get properly update their colors making then unreadable.

You can re-open this tab to force colors to update properly, de-select node and then re-select it again to do so (shown in attached video).
Minimal reproduction project (MRP)
Open empty project and select root node.

I just noticed during video rewatch that same happens with Inspector node:
Bugged

Unbugged


Fixing

Docs Build status updates of commit 6116bf2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azureadps-2.0/AzureAD/AzureActiveDirectory.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


(supposedly) bug: take the last tags

Hello, and thank you for this github action.
I am not sure, but this line https://github.com/loopwerk/tag-changelog/blob/1b03d1a537bb49a99ca80ba8f5448be1ea4a0497/src/index.js#L43
Seems to take the last 2 tags but not among the 10 last tags ?
When I run locally in a repository ( using gh api /repos/<owner>/<repo>/tags | jq), I get 10 tags but not the last ones.
In one of our projects we have always the same changlelog generated.
I don't have a large set of debugging available, so I am sorry by advance if this is an error.
Thank you

The examples I have are on a private repository, but the API returns tags beginnings by letters before the ones beginning by version number.

Then you're probably in the best position to create a PR with a fix?

In your case for example, I suspecct that if you have 10 tags named "yXXX", they will always be shown before your tags "vXXX".
so you will never be able to produce the changelog

Then you're probably in the best position to create a PR with a fix?

The stupidest fix I can think about is to increase the page size, but this obviously not a good solution

The release API in chronological. What do you think about that? There is a tag attribute inside, but we'd need to think of what to do if there is no previous release.

But the release most likely doesn't exist yet.. all you have is a pushed tag, which you use to create a release and a changelog. You can't use releases as the basis for this action.

Yes but it's the same as the first tag ever in the repository right?

No. Something needs to trigger the workflow, that kicks this action. The creation of a release is a bad trigger, since you most likely want to create a release in the workflow that uses this action.

no I meant, on a new tag you would compare the tag with the tag of the latest release, instead of checking the last tag

I've created a quick test script, and for me this API does return the latest tags.
const { Octokit } = require("@octokit/rest");

const octokit = new Octokit({
  auth: "my_auth_token",
  userAgent: "test v1.2.3",
});

octokit.rest.repos
  .listTags({
    owner: "loopwerk",
    repo: "tag-changelog",
    per_page: 2,
  })
  .then(data => {
    console.log(data);
  });

This returns tags v1.1.0 and v1.0.5 as expected.
If this doesn't work for you and your repo, then maybe the tags were created in the wrong order? I don't know what to tell you, but at this moment there doesn't seem to be a bug that needs fixing. I am using this actions in multiple of my own repos and never ran into problems with it generating the wrong changelog.

no I meant, on a new tag you would compare the tag with the tag of the latest release, instead of checking the last tag

Releases don't have to be based on tags.

I will not insist more than this, I understand what you say.
I will just be more pecise about the behaviour:

change the page size to 1 (or create 10 tags beginning with y in step 2)
create a tag v1.2
create a tag ySomeName
create a tag v1.3

Now I think that you will never have another release because the yXXX tags will come before in the list of 10 (or 1)  and do not match the regex.

Ok, I've reproduced the problem. The tags that you get back are indeed sorted alphabetically (reversed) rather than by creation date, so if you mix and match different kinds of tags.. yeah it's not going to work.
[
  {
    name: 'y6',
    zipball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/zipball/refs/tags/y6',
    tarball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/tarball/refs/tags/y6',
    commit: {
      sha: '1f36040ffebb5504808ea1ca02cd5d43c248fab0',
      url: 'https://api.github.com/repos/kevinrenskers/tag-test/commits/1f36040ffebb5504808ea1ca02cd5d43c248fab0'
    },
    node_id: 'REF_kwDOJawcDKxyZWZzL3RhZ3MveTY'
  },
  {
    name: 'y3',
    zipball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/zipball/refs/tags/y3',
    tarball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/tarball/refs/tags/y3',
    commit: {
      sha: '1fa7f0fe82a9d8cba2a8f8694a50a6a28cab08b7',
      url: 'https://api.github.com/repos/kevinrenskers/tag-test/commits/1fa7f0fe82a9d8cba2a8f8694a50a6a28cab08b7'
    },
    node_id: 'REF_kwDOJawcDKxyZWZzL3RhZ3MveTM'
  },
  {
    name: 'y2',
    zipball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/zipball/refs/tags/y2',
    tarball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/tarball/refs/tags/y2',
    commit: {
      sha: 'c96bf11d843f8cd1100f78a08f998bc21a48a23f',
      url: 'https://api.github.com/repos/kevinrenskers/tag-test/commits/c96bf11d843f8cd1100f78a08f998bc21a48a23f'
    },
    node_id: 'REF_kwDOJawcDKxyZWZzL3RhZ3MveTI'
  },
  {
    name: 'y1',
    zipball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/zipball/refs/tags/y1',
    tarball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/tarball/refs/tags/y1',
    commit: {
      sha: 'ea164f0a4dbeb5ae260a9459e8a88c6a8a5c2040',
      url: 'https://api.github.com/repos/kevinrenskers/tag-test/commits/ea164f0a4dbeb5ae260a9459e8a88c6a8a5c2040'
    },
    node_id: 'REF_kwDOJawcDKxyZWZzL3RhZ3MveTE'
  },
  {
    name: 'v7',
    zipball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/zipball/refs/tags/v7',
    tarball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/tarball/refs/tags/v7',
    commit: {
      sha: '8f88d134746a3bc95cac3b72dad1b6c7c5aae6cb',
      url: 'https://api.github.com/repos/kevinrenskers/tag-test/commits/8f88d134746a3bc95cac3b72dad1b6c7c5aae6cb'
    },
    node_id: 'REF_kwDOJawcDKxyZWZzL3RhZ3Mvdjc'
  },
  {
    name: 'v4',
    zipball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/zipball/refs/tags/v4',
    tarball_url: 'https://api.github.com/repos/kevinrenskers/tag-test/tarball/refs/tags/v4',
    commit: {
      sha: 'f433e1648a60d44d3892ddc854ca4a92c9474b57',
      url: 'https://api.github.com/repos/kevinrenskers/tag-test/commits/f433e1648a60d44d3892ddc854ca4a92c9474b57'
    },
    node_id: 'REF_kwDOJawcDKxyZWZzL3RhZ3MvdjQ'
  }
]

I don't think there is a 100% fool-proof way to fix this problem with the GitHub API that we have. I guess this action simply doesn't work if you use different kinds of tags in one repo.
Your suggestion to use the previous release and use that tag is not foolproof either, as not all releases have a tag. Or maybe you use this action to only create a changelog file, but no releases. We simply can't assume there'll always be a release!
I think the only option is to fetch ALL tags and sort them ourselves using semver logic, but we can only request a maximum of 100 tags, and we don't know how many pages of results there will be, so we have to keep fetching pages until nothing is returned anymore.
It's doable, but to be honest not something I want to spend my free time on as I am not running into this problem. I'd be happy to merge a well-written PR with tests for the sorting logic though. Sorry I don't have better news.

Actually no, it's a good news for me that there is really a problem and I just did not disturb you for nothing.
I'll give some thoughts to that. Right now I am thinking the best way to fix that would be to crawl all the tag pages to keep only valid tags.
Thank you anyway for taking the time to answer

Yeah once you fetched all the tags, you can easily filter out and sort only the valid tags using the existing logic: https://github.com/loopwerk/tag-changelog/blob/main/src/index.js#L49-L54.


AD directory user-groups; can IdentityRole be subclassed to implement Role-Groups or User-Groups

There is a disconnect with Active Directory, since we don't have support for User Groups in Identity, how can we implement or mirror this functionality inside ASP identity

If you're using AD we tend to believe AD is the one true source of truth, it's what keeps AD administrators happy. If you use integrated authentication then IsInRole() will work, or you configure ADFS to pass the group membership through in its auth token, and again, IsInRole() will then work.

What is the object to maintain mirror the goups inside identitfu for user groups.
For roles its clear with RoleManager/Roles, but Groups is missing

If you cast the current identity to a WindowsIdentity, which assumes integrated authentication and NOT ASP.NET Identity, there's a Groups property you can check in your authorization rules.

As I said this only works on WindowsIdentity. So it's limited to integrated authentication/AD. This does not mix with ASP.Identity. So configure your app for Windows authentication, then cast the identity to a WindowsIdentity and then you get a Groups property on the cast instance.

@blowdart i am glad you acknowledge that mismatch between their web and windows server platforms, any chance you can bubble that up to MS so they include this.


How can we run the postprocessing scripts

Hi all,
I wanted to know how we can run the postprocessing scripts. Where do we get the 2 required positional arguments: 'rods_history' and 'sphere_history' from? (for case2)

In order to use post processing scripts you have to collect the data. Here in the script how we collect data from the simulation. To see how we call the post processing functions and which arguments we pass please check this.

Okay I understood it now. First we train by running logging_bio_args.py
After training and getting the policy, we have to set args.TRAIN = False and run logging_bio_args.py again. Is that right?

Yes that is correct.


linkage issues

I have successfully imported the conan repository, install build etc..
But I'm having the following linkage errors while compiling on visual studio:
>main.obj : error LNK2019: unresolved external symbol _git_clone referenced in function "void __cdecl install(void)" (?install@@YAXXZ)
2>main.obj : error LNK2019: unresolved external symbol _git_libgit2_init referenced in function _main
2>main.obj : error LNK2019: unresolved external symbol _git_libgit2_shutdown referenced in function _main

any idea?

Hi! Which version of the visual studio do you use?
Can you add your sample code where you use the libgit2 library?

@Romain-P, do you use CMake? Can you show how you are linking library in the cmake file?


Linked messages to a locale with a path like key e.g (dashboard.homepage.title: "Dashboard") don't work

Reporting a bug?
using "@nuxtjs/i18n": "8.3.1"
When you have the keys in your locale set up as a flat object with "path" like keys
{
"common.unit.data.mb": "MB",
"component.data.usage": "Want to buy more @:common.unit.data.mb ?"
}

you will get Want to buy more . It will not correctly resolve the key
Expected behavior
It should resolve the key correctly, returning the value of common.unit.data.mb.
Reproduction
https://stackblitz.com/edit/vitejs-vite-vfwxqd?file=src%2Fmain.ts
System Info
System:
    OS: Linux 6.10 EndeavourOS
    CPU: (16) x64 AMD Ryzen 7 2700X Eight-Core Processor
    Memory: 4.73 GB / 31.29 GB
    Container: Yes
    Shell: 5.2.26 - /bin/bash
  Binaries:
    Node: 22.5.1 - ~/.local/share/mise/installs/node/22.5.1/bin/node
    npm: 10.8.2 - ~/.local/share/mise/installs/node/22.5.1/bin/npm
    pnpm: 9.6.0 - ~/.local/share/mise/installs/pnpm/9.6.0/bin/pnpm
    bun: 1.1.20 - ~/.local/share/mise/installs/bun/1.1.20/bin/bun
  Browsers:
    Chromium: 127.0.6533.72
  npmPackages:
    vue-eslint-parser: 9.4.3 => 9.4.3

Screenshot
No response
Additional context
No response
Validations

[X] Read the Contributing Guidelines
[X] Read the Documentation
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussions

discovered the flatJson property  on the config which of course fixes this issue 🥸


1-Minute Remaining

Check if the period time updates even if there are no events so that we can do a 1-minute remaining in the period tweet.
Sometimes periods are low event and the bot is quiet so this is there just to keep it in the feeds and provide context of the period.

Fixed in PR #24! Confirmed over the past few games that its pretty accurate when it works.


.m3x has margin: 2px

Just a small error: I was browsing through the source and noticed .m3x's margin is set to 2px rather than 3px.

thanks man. @docmars will fix it now. :+1:

Fixed
Commit: 461c28c190a97c42e0c05dbbb0af73ab5cc1bb6d


Migrate from Travis CI to Github Actions

This should simplify our CI infrastructure.
The guide job isn't tested yet so might fail. I'm not sure there's an easy way to test other than just merging. If there are any issues with it, I can fix the gh-pages branch manually. Any pairs of eyes to check it before merging are appreciated.

Thank you, looks nice :smiley_cat:


feat(notebooks): introduce minimap

Closes https://github.com/influxdata/idpe/issues/7144

Introduce minimap component

can be toggled on/off from page header
on/off state stored in AppSettingsContext

Clicking on a minimap item scrolls to that panel in the main list
Minimap mirrors state of panels

Focus & visibility reflected in minimap

Added a couple items in NotebookContext to facilitate the minimap and pipe list talking to each other

[ ] CHANGELOG.md updated with a link to the PR (not the Issue)
[x] Well-formatted commit messages
[x] Rebased/mergeable
[ ] Tests pass
[ ] http/swagger.yml updated (if modified Go structs or API)
[ ] Documentation updated or issue created (provide link to issue/pr)
[ ] Signed CLA (if not already signed)

@drdelambre hope I'm not mucking up notebook context, open to suggestions here
Also, because the toggle state of minimap is stored in AppSettingsContext (which isn't currently wrapping anything) the toggling behavior is currently not working


I guess its already supported by esbuild itself?

https://github.com/evanw/esbuild/releases/tag/v0.19.0 says now you can use wildcards as entry points

Thanks for pointing that out! I'll deprecate the package


Missing nvmlDeviceGetMemoryErrorCounter

There's a reasonable example here:
https://github.com/NVIDIA/gpu-monitoring-tools/blob/master/bindings/go/nvml/bindings.go

Closing - not what we don't care, it's that it's not supported by our devices or ECC is disabled so no point here.


Add notebook for ranking the strategies by run time.

See https://github.com/Axelrod-Python/Axelrod/issues/666


Infer schema from selected table

When loading the attributes page initially, if the data service has a connector and table name associated with it, the schema will be dynamically loaded based on the selected table.

@jugnu-appveen


[5.1] swift-api-digester: de-duplicate protocol conformance entries in the Json output

For some unclear reasons, calling getAllConformances on Int.Words and
UInt.Words returns duplicate entries for conforming to RandomAccessCollection.
Since this isn't the case for swift-5.1-branch, we saw false positives shown
in rdar://49568079.
This patch fixes the ABI/API checker by de-duplicate results collected from
getAllConformances.

@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - e08a7a9387b64ca10d1bb7f001f1e9f78b6d969e


UDE not training with OGGM initial state

The training seems to be struggling with OGGM initial glacier states. It might be either due to data resolution, different glacier topography or other numerical problems.
I'm investigating ways to normalize the loss function by dividing the magnitude of the computed and reference H and Vx and Vy by themselves. This will give equal weight to large and small values.

Fixed with #32.


Use gender-neutral collective noun

👋 thanks for open-sourcing the flaskcon website!
It would be more inclusive to use a gender-neutral collective noun instead of "guys". The alternative "coders" was suggested on Twitter. I'm happy to put in a pull request unless someone else is interested.
Here's a helpful reference: https://youguys.club/

For decades, guys has been used to address a mixed group of men and women. It’s increasingly viewed as a gender neutral plural.
But the singular guy still has a strongly male inflection. Consider that guy, or the
Python guy. Do those sound like women? Not likely.
Even today when a group of guys may be entirely female, it still can have a sexist, male-as-default ring to it.
What should I say instead?
There are a lot of options.
Y’all is a fabulous all-purpose pronoun. It’s great even if you’re not a Southerner!
Are y’all going to join youguys.club?
Hey gang works well as a casual option.
Hi folks is a little more formal, but too folksy for some. Everyone sounds great with any audience.
Addressing the group by a label can also help, whether it’s hi team or hey friends.
Hey team, let’s finish those TPS reports.

Thanks again!

@lbeaufort would you like to be assigned the issue?

@Abdur-rahmaanJ I'd be happy to make the change, thank you!

Missed the PR part, it's now ok. You can go ahead 👍


add apache-airflow-providers-trino

Currently, apache-airflow-providers-trino is only available on pypi as a wheel: https://pypi.org/project/apache-airflow-providers-trino/#files
trino has been added to conda-forge quite recently: https://github.com/conda-forge/trino-feedstock

Recipe added to staged-recipes: https://github.com/conda-forge/staged-recipes/pull/15492

Now available.


Fix host header to avoid request signing issue

Fix host header as suggested in https://github.com/santthosh/aws-es-kibana/issues/27#issue-239309186

Sorry, actually this is a duplicate of: https://github.com/santthosh/aws-es-kibana/pull/23

Thank you @gdemarcsek this has been fixed with PR #23


⚠ Doshipui has degraded performance

In fab5568, Doshipui (https://дошипуй.рф/) experienced degraded performance:

HTTP code: 200
Response time: 8922 ms

Resolved: Doshipui performance has improved in 533afff after 28 minutes.


Windows installation of TensorVision

Is there a way to get the TensorVison up and running on Windows

Should be possible. However never tested in myself.


Issues when switching between multiple adapters LoRAs

I am experiencing the same issues when switching between multiple adapters despite following the documentation and checking this #1315 (@BenjaminBossan)I do not observe any change in the model’s behavior when switching between the adapters.
base_model.add_adapter(PeftConfig.from_pretrained(peft_model_output_dir1), adapter_name="adapter_1")
base_model.add_adapter(PeftConfig.from_pretrained(peft_model_output_dir2), adapter_name="adapter_2")

When I switch between the adapters using the set_adapter method, there is no observable change in the model’s behavior. The outputs remain the same, regardless of which adapter is active.
I suspect that the set_adapter method does not actually activate the specified adapter correctly. Instead, I notice a change in behavior only when I merge the adapter with the base model
The documentation does not mention the need to perform a merge when switching adapters. Additionally, the methods add_adapter, set_adapter, and enable_adapters do not appear to work
Please provide clarification on how to correctly switch between adapters

This should not happen. Could you please share some code to reproduce this error?
If you're on the latest PEFT version, you can also run model.get_model_status() and model.get_layer_status() to help troubleshoot the issue. You could share those outputs as well.

thank you for the prompt response
here is the code and output

the Loras appear in the model when I print the model layers like this

when I run this model.get_layer_status() it gave me this error

Hey, could you please paste the code as text, otherwise I'd have to copy everything by hand if I want to reproduce :) Also, if you call base_model.add_adapter(...), you're adding a fresh, untrained LoRA adapter, which by default is a no-op (unless init_lora_weights=False in the config). Are you aware of that? Did you intend to call load_adapter instead?

no i was not aware of that ("adding a fresh, untrained LoRA adapter") so now i changed the code based this information but i go the same behavior as you can see

here is text code
from peft import PeftConfig

config_lora1 = PeftConfig.from_pretrained(peft_adapter1_output_dir, init_lora_weights = False)
config_lora2 = PeftConfig.from_pretrained(peft_adapter2_output_dir, init_lora_weights = False)

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=False,
)

base_model = AutoModelForCausalLM.from_pretrained(
    config_lora1.base_model_name_or_path,
    quantization_config=bnb_config,
    device_map='auto',
    torch_dtype=torch.bfloat16,
    use_cache=False,
)
tokenizer = AutoTokenizer.from_pretrained(config_lora1.base_model_name_or_path, trust_remote_code=True)

input_prompt = "Hello, how are you"
inputs = tokenizer(input_prompt, return_tensors='pt').to("cuda")

# Generate text with base model
output_base = base_model.generate(**inputs)
print("Base Model Output:")
print(tokenizer.decode(output_base[0], max_new_tokens=50, pad_token_id=tokenizer.eos_token_id))

base_model.load_adapter(peft_adapter1_output_dir, adapter_name="adapter_1")
base_model.load_adapter(peft_adapter2_output_dir, adapter_name="adapter_2")

# base_model.disable_adapters()
# Generate text with adapter 1
base_model.set_adapter("adapter_1")
output_adapter1 = base_model.generate(**inputs)
print("\nAdapter 1 Output:")
print(tokenizer.decode(output_base[0], skip_special_tokens=True, max_new_tokens=50, pad_token_id=tokenizer.eos_token_id))

# Generate text with adapter 2
base_model.set_adapter("adapter_2")
output_adapter2 = base_model.generate(**inputs)
print("\nAdapter 2 Output:")
print(tokenizer.decode(output_base[0], skip_special_tokens=True, max_new_tokens=50, pad_token_id=tokenizer.eos_token_id))

Okay, thanks for trying. Since you use some private adapters, I can't really reproduce, unless you can share your adapters.
One thing to try out would be to use PEFT to load the adapter, not transformers:
from peft import PeftModel

# instead of base_model.load_adapter
model = PeftModel.from_pretrained(base_model, peft_adapter1_output_dir, adapter_name="adapter_1")
model.load_adapter(peft_adapter2_output_dir, adapter_name="adapter_2")

Regarding the error with get_layer_status: You could do:
from peft import get_model_status, get_layer_status

# after base_model.load_adapter
get_layer_status(base_model)
get_model_status(base_model)

and paste the results here.

thank you for your prompt responses
I tried what you mentioned
here what I got the same behaviour
Base Model Output:
<s> Hello, how are you? I hope you’re having a great day. Today I want

Adapter 1 Output:
Hello, how are you? I hope you’re having a great day. Today I want

Adapter 2 Output:
Hello, how are you? I hope you’re having a great day. Today I want

for this part :
from peft import PeftModel

# instead of base_model.load_adapter
model = PeftModel.from_pretrained(base_model, peft_adapter1_output_dir, adapter_name="adapter_1")
model.load_adapter(peft_adapter2_output_dir, adapter_name="adapter_2")

from peft import get_model_status, get_layer_status

# after base_model.load_adapter
get_layer_status(model)
get_model_status(model)

it gave me this output
TunerModelStatus(base_model_type='MistralForCausalLM', adapter_model_type='LoraModel', peft_types={'adapter_1': 'LORA', 'adapter_2': 'LORA'}, trainable_params=167772160, total_params=7745048576, num_adapter_layers=224, enabled=True, active_adapters=['adapter_1'], merged_adapters=[], requires_grad={'adapter_1': True, 'adapter_2': False}, available_adapters=['adapter_1', 'adapter_2'])

Regardless of my private adapters is this approach working with you any adapter you can access?

Regardless of my private adapters is this approach working with you any adapter you can access?

Yes, it's working, here is a simple test:
import torch
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer

torch.manual_seed(0)
model_id = "facebook/opt-125m"

model = AutoModelForCausalLM.from_pretrained(model_id)
input = torch.tensor([[1, 2, 3, 4, 5]])
output_base = model(input).logits
print("Base model output:")
print(output_base[0, :3, :5])

# create a PEFT model with 2 adapters and save it
config = LoraConfig(r=8, init_lora_weights=False)
model = get_peft_model(model, config, adapter_name="adapter1")
model.add_adapter("adapter2", config)
model.save_pretrained("/tmp/issue-1802")

# load the model again
del model
model = AutoModelForCausalLM.from_pretrained("/tmp/issue-1802/adapter1", adapter_name="adapter1")
model.load_adapter("/tmp/issue-1802/adapter2", "adapter2")

model.set_adapter("adapter1")
output_adapter1 = model(input).logits
print("Model output after loading adapter1:")
print(output_adapter1[0, :3, :5])

model.set_adapter("adapter2")
output_adapter2 = model(input).logits
print("Model output after setting adapter2:")
print(output_adapter2[0, :3, :5])

This prints:
Base model output:
tensor([[-3.9463, -3.9443,  3.2428, -3.9522,  5.4978],
        [-3.7805, -3.7759,  5.7177, -3.7743,  4.9581],
        [ 2.1029,  2.1002,  1.9693,  2.0843,  3.4022]],
       grad_fn=<SliceBackward0>)
Model output after loading adapter1:
tensor([[-1.4193, -1.4301,  2.9313, -1.4266,  6.9664],
        [-4.2108, -4.2206,  3.1630, -4.2111,  5.8416],
        [-3.3278, -3.3351,  0.0213, -3.3350,  5.0806]],
       grad_fn=<SliceBackward0>)
Model output after setting adapter2:
tensor([[-3.8967, -3.8936,  5.2991, -3.9072,  4.7403],
        [-5.8532, -5.8452,  7.2219, -5.8641,  4.4519],
        [-4.6259, -4.6206,  4.6002, -4.6405,  5.2777]],
       grad_fn=<SliceBackward0>)

Note that when you want to compare model outputs, looking at the generated tokens is not reliable. When the difference in logits is small, the generated tokens can be the same, even if the outputs are different. Therefore, it's better to check the logits directly, as in my example.

Thank you so much, @BenjaminBossan , for your prompt responses.
Since the last response, I have been trying and playing with the adapters and how to set them. I experienced similar weird behavior and inconsistency.
Issue Description
I tried two approaches to load and activate the LoRA adapters, and each approach resulted in completely different behaviors by the model:

from peft import PeftConfig
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

# Load PEFT configuration
config = PeftConfig.from_pretrained(peft_model_output_dir)

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=False,
)

# Load base model with quantization
base_model = AutoModelForCausalLM.from_pretrained(
    config.base_model_name_or_path,
    quantization_config=bnb_config,
    device_map='auto',
    torch_dtype=torch.bfloat16,
)

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path, trust_remote_code=True)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "left"

# Load and enable adapter
base_model.load_adapter(peft_model_output_dir)
base_model.set_adapter('default')
base_model.enable_adapter_layers()

This approach did not yield the expected behavior by the model.
Approach 2

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=False,
)

base_model = AutoModelForCausalLM.from_pretrained(
    config.base_model_name_or_path,
    quantization_config=bnb_config,
    device_map='auto',
    torch_dtype=torch.bfloat16,
)

# Reload tokenizer to save it
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path, trust_remote_code=True)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "left"

ft_model = PeftModel.from_pretrained(base_model, peft_model_output_dir)
#those following two line might not necessarily but run them just to make sure lora is active
ft_model.enable_adapter_layers()
ft_model.set_adapter('default')

for name, param in ft_model.named_parameters():
    if 'lora' in name.lower():
        param.requires_grad = False
        print(f"LoRA layer found: {name}")

This approach worked better and the model behaved as expected.
Could you please provide any insights into why these different approaches result in different behaviors?
Thank you so much for your time and your prompt responses


Request for APK Package Support for luci-theme-alpha

Hello!
Thank you for creating such an excellent theme. I’ve learned that OpenWrt will switch to the Alpine Package Keeper (APK) package manager starting from version 24.11. Do you have plans to provide an APK package for the luci-theme-alpha? It would be very convenient for users to continue enjoying your theme on the newer versions.
Looking forward to your response!
Thank you!

here is a x86_64 apk package luci-theme-alpha-3.9.4-r9.apk

Building luc-theme-alpha in arm64 will get this errors.
/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/staging_dir/host/bin/fakeroot /home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/staging_dir/host/bin/apk mkpkg --info "name:luci-theme-alpha" --info "version:3.9.4-beta-r9" --info "description:LuCi Theme For OpenWrt And Alpha OS ONLY - Alpha" --info "arch:noarch" --info "license:" --info "origin:feeds/base/luci-theme-alpha" --info "url:http://facebook.com/derisamedia/" --info "maintainer:" --info "provides:"  --script "post-install:/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/build_dir/target-aarch64_cortex-a53_musl/luci-theme-alpha-3.9.4-beta/apk-all/luci-theme-alpha/post-install" --script "pre-deinstall:/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/build_dir/target-aarch64_cortex-a53_musl/luci-theme-alpha-3.9.4-beta/apk-all/luci-theme-alpha/pre-deinstall" --info "depends:libc" --files "/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/build_dir/target-aarch64_cortex-a53_musl/luci-theme-alpha-3.9.4-beta/ipkg-all/luci-theme-alpha" --output "/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/bin/packages/aarch64_cortex-a53/base/luci-theme-alpha-3.9.4-beta-r9.apk" --sign "/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/private-key.pem"
ERROR: info field 'version' has invalid value: package version is invalid
ERROR: failed to create package: /home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/bin/packages/aarch64_cortex-a53/base/luci-theme-alpha-3.9.4-beta-r9.apk: package version is invalid
make[3]: *** [Makefile:89: /home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/bin/packages/aarch64_cortex-a53/base/luci-theme-alpha-3.9.4-beta-r9.apk] Error 99
make[3]: Leaving directory '/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/package/luci-theme-alpha'
time: package/luci-theme-alpha/compile#0.38#0.28#0.63
    ERROR: package/luci-theme-alpha failed to build.

here is a x86_64 apk package luci-theme-alpha-3.9.4-r9.apk

tmp# apk add  luci-theme-alpha-3.9.4-r9.apk ERROR: luci-theme-alpha-3.9.4-r9.apk: UNTRUSTED signature

here is a x86_64 apk package luci-theme-alpha-3.9.4-r9.apk

/tmp# apk add --allow-untrusted luci-theme-alpha-3.9.4-r9.apk (1/1) Installing luci-theme-alpha (3.9.4-r9) Executing luci-theme-alpha-3.9.4-r9.post-install /dev/fd/7: .: line 11: can't open '/etc/uci-defaults/30-luci-theme-alpha': No such file or directory ERROR: luci-theme-alpha-3.9.4-r9.post-install: script exited with error 2 1 error; 114 MiB in 357 packages

This is OK!
this problem doesn't affect to use.
please logout and relogin , then you can see alpha theme in the "system" settings page.
tips: you may need  luci-app-alpha-config  to custom settings.

Building luc-theme-alpha in arm64 will get this errors.
/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/staging_dir/host/bin/fakeroot /home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/staging_dir/host/bin/apk mkpkg --info "name:luci-theme-alpha" --info "version:3.9.4-beta-r9" --info "description:LuCi Theme For OpenWrt And Alpha OS ONLY - Alpha" --info "arch:noarch" --info "license:" --info "origin:feeds/base/luci-theme-alpha" --info "url:http://facebook.com/derisamedia/" --info "maintainer:" --info "provides:"  --script "post-install:/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/build_dir/target-aarch64_cortex-a53_musl/luci-theme-alpha-3.9.4-beta/apk-all/luci-theme-alpha/post-install" --script "pre-deinstall:/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/build_dir/target-aarch64_cortex-a53_musl/luci-theme-alpha-3.9.4-beta/apk-all/luci-theme-alpha/pre-deinstall" --info "depends:libc" --files "/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/build_dir/target-aarch64_cortex-a53_musl/luci-theme-alpha-3.9.4-beta/ipkg-all/luci-theme-alpha" --output "/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/bin/packages/aarch64_cortex-a53/base/luci-theme-alpha-3.9.4-beta-r9.apk" --sign "/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/private-key.pem"
ERROR: info field 'version' has invalid value: package version is invalid
ERROR: failed to create package: /home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/bin/packages/aarch64_cortex-a53/base/luci-theme-alpha-3.9.4-beta-r9.apk: package version is invalid
make[3]: *** [Makefile:89: /home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/bin/packages/aarch64_cortex-a53/base/luci-theme-alpha-3.9.4-beta-r9.apk] Error 99
make[3]: Leaving directory '/home/runner/work/OpenWRT-CI/OpenWRT-CI/wrt/package/luci-theme-alpha'
time: package/luci-theme-alpha/compile#0.38#0.28#0.63
    ERROR: package/luci-theme-alpha failed to build.

to fix this error :
edit Makefile and modify the PKG_RELEASE like this:
PKG_NAME:=luci-theme-$(THEME_NAME)
PKG_VERSION:=3.9.4
PKG_RELEASE:=9

PKG_RELEASE should be a number(maybe 1 for default).


7312 export with map name

Fixes #7312
Please CR @juanignaciosl
The format is:
<map name> (on <YYYY-MM-DD> at <HH.MM.SS>).carto
example
Sequías en España (on 2016-05-31 at 17.34.55).carto
All special characters are preserved on exported filename and imported map name.

Has the format been agreed with @urbanphes ? He suggested the visualization name and there's been no further discussion at #7312.
Have you checked the behaviour with other characters? For example, "1Vïs / Map \ Whaterver ·/.. ..." is a valid visualization name and I hardly believe it to be a valid name file.
I miss a test.

And please check both in local and staging, since using a directory vs using S3 has different naming limitations.

Works in staging and local.
Seems a valid name according to different "valid characters for filenames"
charts on line. Only "weird" character i'm not 100% sure of is (,')`.
I'll check with Juanma and add a test tomorrow

Hey, @juanignaciosl, find a reviewed version.
I know sanitise filenames to avoid forbidden characters (I can't only allow ASCII characters as our customers use heavily non-ASCII languages (Japanese, Chinese, etc).
Juanma has approved the name format.

@juanignaciosl I just noticed that I merged some stuff wrong. Check again please, there are some "allow_spaces" params in the uploader that I'm not sure you approve of.

If it works, LGTM. I'm not a fan of spaces but my biggest concerns were the slashes. If you've checked that both with local filesystem and S3 the full process works, ✨

Thanks, I'll check again in staging for good measure, but it's been thoroughly tested in both environments.

Retest this, please


Multiple Data Entry Errors - Fabricator Skill Feat and Spacefarer Background and Double Tap Feat

Fabricator is a Skill Feat incorrectly categorized as General Feat in Compendium.
Spacefarer Background:
Incorrectly granting the Survival Skill instead of the Piloting Skill.
Incorrectly granting the Forager Skill Feat instead of the Express Driver Skill Feat.
Description should mention the Drift Lore skill, not specific creature type.
Double Tap Operative Feat incorrectly set as a Passive instead of Two-Action activity.

@TikaelSol module version 6.1.1: only the Double Tap feat and Spacefarer background were fixed. Fabricator is still set as just a General feat rather than Skill feat.


Vulnerability roundup 107: vault-1.7.4: 1 advisory [5.4]

search, files

[ ] CVE-2021-41802 CVSSv3=5.4 (nixos-21.05)

CVE details
CVE-2021-41802
HashiCorp Vault and Vault Enterprise through 1.7.4 and 1.8.3 allowed a user with write permission to an entity alias ID sharing a mount accessor with another user to acquire this other user’s policies by merging their identities. Fixed in Vault and Vault Enterprise 1.7.5 and 1.8.4.

Scanned versions: nixos-21.05: 3b1789322fc.
Cc @Chili-Man
Cc @lnl7
Cc @offlinehacker
Cc @pradeepchhetri
Cc @rushmorem

NixOS 21.05 is EOL, this is fixed in 21.11


Missing condition for permutation matrices in MatrixWorld-v1.4.2

Thanks for this fantastic resource!  One small issue in the MatrixWorld diagram:
MatrixWorld-v1.4.2 defines permutation matrices P as:

Orthogonal matrices for which all $\lambda$ are roots of 1

This is necessary but not sufficient for P to be a permutation matrix.  Two examples of matrices satisfying this property that are not permutation matrices:

$Q = \begin{bmatrix} -1 \end{bmatrix}$ has eigenvalue $-1$
$Q = \begin{bmatrix} 0 & 1 \end{bmatrix} \begin{bmatrix} - 1 & 0 \end{bmatrix}$, the example provided of an orthogonal matrix that is not a permutation matrix, has eigenvalues $\pm i$

This can be fixed by defining permutation matrices P as the intersection of:

Orthogonal matrices for which all $\lambda$ are roots of 1, with
Nonnegative matrices, i.e. matrices for which all elements are $\ge 0$

The equivalence follows from https://en.wikipedia.org/wiki/Nonnegative_matrix#Inversion: "The inverse of a non-negative matrix is usually not non-negative. The exception is the non-negative monomial matrices", where a monomial matrix is defined to have "the same nonzero pattern as a permutation matrix, i.e. there is exactly one nonzero entry in each row and each column."

Wow, thank you ! You are right.
How about just saying "permutation of I(identity)", for a beginner-friendly notation?

But $a_{ij} \le 0$ would be a nice comment to add!

Permutation matrix has only one 1 in each column and other elements are all 0 !   So $a_{ij} \gt 0 is covered by one definition sentence --  "permutation of I(identity)".

Hmm, adding nonnegative matrices to the diagram would be too messy, as they have partial overlap with almost all other matrix classes.
So I think you're right, describing permutation matrices as "Permutations of I (identity)" seems like the best option!
Other possibilities:

"Permutes the rows/columns of I" - but we don't mention rows/columns elsewhere
"Permutes coordinate basis vectors $P_\pi e_i = e_{\pi(j)}$" - might be OK, though we don't mention coordinate basis vectors elsewhere

(Also note https://en.wikipedia.org/wiki/Permutation_matrix#Properties: "When viewed as matrices with real number entries, permutation matrices can be characterized as the orthogonal matrices whose entries are all non-negative."  So we could drop the roots of unity condition if we mention non-negativity.  But I think it's too complicated a definition, let's go with your one instead!)

you are so talented, seblucie!
This is exactly what Prof.Strang and I were talking about!

you maybe interested in this too.
this is in this repository too.
https://anagileway.com/2021/10/01/map-of-eigenvalues/

Thanks! - Professor Strang is a living legend, whereas I'm just good at looking stuff up.
I did have one further idea - a precise definition of "cycles of eigenvalues" can be made via the characteristic polynomial:
$\displaystyle \det(P_\pi - \lambda I) = \prod_{i=1}^k (\lambda^{p_i} - 1)$, $p_i = \mathrm{lengths of cycles in }$\pi$
But I'm sure Professor Strang will give you the right advice - I'll leave it to you to decide where to go from here...


CON-4645 - Add event for manipulating customAttributes on orders

Coverage increased (+1.2%) to 33.822% when pulling c559c50608b80f7066f7986a3eb1104301069486 on CON-4645/add-customAttributes-events-for-orders into b7264e62a0b62ba826e6b59c411ea6ea92b130f0 on master.

Coverage increased (+1.2%) to 33.822% when pulling c559c50608b80f7066f7986a3eb1104301069486 on CON-4645/add-customAttributes-events-for-orders into b7264e62a0b62ba826e6b59c411ea6ea92b130f0 on master.

Coverage increased (+1.2%) to 33.813% when pulling 2bc09591f966c47c0bc26de94044099f568be69c on CON-4645/add-customAttributes-events-for-orders into b7264e62a0b62ba826e6b59c411ea6ea92b130f0 on master.

Coverage increased (+1.2%) to 33.813% when pulling 2bc09591f966c47c0bc26de94044099f568be69c on CON-4645/add-customAttributes-events-for-orders into b7264e62a0b62ba826e6b59c411ea6ea92b130f0 on master.


Created inference notebook

created step by step inference notebook. Hopefully there will be no code conflicts this time.
Thanks.

Great!


Add support for user apps to capture raw mouse data and mouse support to Castle Frankenstein

This adds a new kernel function MouseRaw which can be used to switch between the mouse sending data to the window manager and the mouse accumulating raw data for a user application to process instead.
When MouseRaw(TRUE) is called it is up to a user application to read the raw data stored in mouse_hard and to clear the accumulated data with MouseRawReset once it has saved it.  If a cursor is desired, it is up to the user application to draw one.  No mouse data is sent to the window manager for other applications until MouseRaw(FALSE) is called.
This also adds mouse support code to CastleFrankenstein to demonstrate how to integrate this feature into a user application.  Now you can turn with the mouse and shoot with the left mouse button.  The m key toggles mouse capture.  The +/- keys increase and decrease the mouse sensitivity.

Unfortunately the kernel takes all the mouse data on converts it to a positional screen coordinate which is clamped to the limits of the screen.  So if you try to intercept it outside the kernel you eventually wouldn't be able to turn in a game because once the kernel thinks your mouse is at the edge of the screen it won't let you go farther in that direction. See MouseHardSetPos which is called immediately after the mouse data packet is parsed here

From what I've seen and understand it looks good. And from what I've tested, the results are excellent. I've run this on vmware with the Limine bootloader and Castle Frankenstein runs so smoothly in comparison to the arrow-keys controls. The only "downside" is that the game is almost trivially easy now but that just means that more complex enemies and AI can be developed in the future now that the player is no longer bottle-necked by bad controls. Thank you very much for these changes!

I thought the same thing about the game being too easy.   That is what caused me to go off on a tangent and make what I called Castle Frankenstein 2.0.  There's a Zeal port that works with this patch if you want to try it out just grab CF2.ZC

I'm not sure if anyone is waiting for me on this, but on my screen it says merging is blocked and "The base branch restricts merging to authorized users."  I would click merge if I could, but if anyone wants it merged someone else will have to click it.

@tinkeros yes, Tom will get it fixed soon.


[BUG]: instance relinquished to unique_ptr can be reinitialized from Python, leading to state confusion

Problem description
The nb_inst::ready flag being false is used both to mark an instance that hasn't been constructed yet, and to mark an instance that has had its innards handed over to a C++ unique_ptr. This double use means that a hollowed-out instance (where a C++ unique_ptr assumes ownership of the innards) can be reinitialized by calling __init__ on it from Python. This will call the C++ constructor on an already-constructed object, potentially causing resource leaks or other confusion for the C++ code that thought it had exclusive access. It can also produce an assertion failure when trying to pass the C++ unique_ptr back to Python, as shown below.
Potential solution: expand nb_inst::ready to a 2-bit field (and maybe rename it). 0 = not constructed, 1 = relinquished, 2 = normal. Change the test in nb_type_get from the current
            if (NB_UNLIKELY(((flags & (uint8_t) cast_flags::construct) != 0) == (bool) inst->ready)) {

to
            if (NB_UNLIKELY(((flags & (uint8_t) cast_flags::construct) ^ inst->ready) != 2)) {

relying on the fact that cast_flags::construct has numeric value 2.
Of course it is also possible to do this less cryptically by adding another flag relinquished, but I couldn't figure out how to make that equivalent-cost to the current test.
Reproducible example code
~/nanobind/tests% python3.12
Python 3.12.0 (v3.12.0:0fb18b02c8, Oct  2 2023, 09:45:56) [Clang 13.0.0 (clang-13<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import test_holders_ext as t
>>> x = t.unique_from_cpp()
>>> x.value
1
>>> w = t.UniqueWrapper(x)
>>> x.value
<stdin>:1: RuntimeWarning: nanobind: attempted to access an uninitialized instance of type 'test_holders_ext.Example'!

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: (): incompatible function arguments. The following argument types are supported:
    1. (self) -> int

Invoked with types: test_holders_ext.Example
>>> x.__init__(3)
>>> x.value
3
>>> y = w.get()
Critical nanobind error: nanobind::detail::nb_type_put_unique(type='Example', cpp_delete=1): unexpected status flags! (ready=1, destruct=1, cpp_delete=0)
zsh: abort      python

I see how this could be dangerous. I would be open to a fix by expanding the instance state to a two-bit value. But in that case, it should probably be named state as opposed to ready.

@oremanj do you plan to make further changes here or shall I close the issue?

Whoops, I missed your reply a few weeks ago. I will try and get a PR up for this this week.


[TEST] Cannot build longhorn-manager-test image

Running make for longhorn-tests/manager/integration fails at installing zypper packages.
Step 1/15 : FROM registry.suse.com/bci/python:3.9
3.9: Pulling from bci/python
b2720e3c1235: Pulling fs layer
22326caacab8: Pulling fs layer
b2720e3c1235: Verifying Checksum
b2720e3c1235: Download complete
22326caacab8: Verifying Checksum
22326caacab8: Download complete
b2720e3c1235: Pull complete
22326caacab8: Pull complete
Digest: sha256:991cea30a00367811c14dcc92d59cf0df52235740a7388185c1e8f5f34aa4c4d
Status: Downloaded newer image for registry.suse.com/bci/python:3.9
 ---> 6f82a7a27e68
Step 2/15 : ARG KUBECTL_VERSION=v1.17.0
 ---> Running in e8da0c79a109
Removing intermediate container e8da0c79a109
 ---> 88b1f6528eeb
Step 3/15 : ARG ARCH=amd64
 ---> Running in 8adf890d07b3
Removing intermediate container 8adf890d07b3
 ---> fff13fa75b5a
Step 4/15 : RUN zypper ref -f
 ---> Running in 72b595c8653e
Refreshing service 'container-suseconnect-zypp'.
Problem retrieving the repository index file for service 'container-suseconnect-zypp':
[container-suseconnect-zypp|file:/usr/lib/zypp/plugins/services/container-suseconnect-zypp]
Warning: Skipping service 'container-suseconnect-zypp' because of the above error.
Forcing raw metadata refresh
Retrieving repository 'SLE_BCI' metadata [....done]
Forcing building of repository cache
Building repository 'SLE_BCI' cache [....done]
All repositories have been refreshed.
Removing intermediate container 72b595c8653e
 ---> bc75d2df756e
Step 5/15 : RUN zypper in -y vim-small nfs-client xfsprogs e2fsprogs util-linux-systemd gcc python39-devel &&     rm -rf /var/cache/zypp/*
 ---> Running in 406e40646f9d
Refreshing service 'container-suseconnect-zypp'.
Problem retrieving the repository index file for service 'container-suseconnect-zypp':
[container-suseconnect-zypp|file:/usr/lib/zypp/plugins/services/container-suseconnect-zypp]
Warning: Skipping service 'container-suseconnect-zypp' because of the above error.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: the to be installed python39-devel-3.9.10-1503<IP_ADDRESS>.x86_64 requires 'python39-base = 3.9.10', but this requirement cannot be provided
  not installable providers: python39-base-3.9.10-1503<IP_ADDRESS>.x86_64[SLE_BCI]
 Solution 1: Following actions will be done:
  downgrade of python39-base-3.9.13-1503<IP_ADDRESS>.x86_64 to python39-base-3.9.10-1503<IP_ADDRESS>.x86_64
  downgrade of libpython3_9-1_0-3.9.13-1503<IP_ADDRESS>.x86_64 to libpython3_9-1_0-3.9.10-1503<IP_ADDRESS>.x86_64
  downgrade of python39-3.9.13-1503<IP_ADDRESS>.x86_64 to python39-3.9.10-1503<IP_ADDRESS>.x86_64
 Solution 2: do not install python39-devel-3.9.10-1503<IP_ADDRESS>.x86_64
 Solution 3: break python39-devel-3.9.10-1503<IP_ADDRESS>.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c/d/?] (c): c
The command '/bin/sh -c zypper in -y vim-small nfs-client xfsprogs e2fsprogs util-linux-systemd gcc python39-devel &&     rm -rf /var/cache/zypp/*' returned a non-zero code: 4
exit status 4

Additional context
https://drone-publish.longhorn.io/longhorn/longhorn-tests/709/1/4

cc @longhorn/qa

https://bugzilla.suse.com/show_bug.cgi?id=1201261 is opened for this.
It seems to work now. All the pending drone publishes are restarted and completed.

Just close this if all ok now. Thanks.

Closed since https://bugzilla.suse.com/show_bug.cgi?id=1201261 already fixed.


add a note to user creation in demo and on-prem setup

Signed-off-by: Mirza Krak<EMAIL_ADDRESS>

I'll cherry-pick into 2.0.x as well.

Nice! Some thoughts:

It was (at least not my) intention to set a secure password on the CLI.. this will get stored in the history
Maybe it is possible to add single quotes to avoid shell expansion

It was (at least not my) intention to set a secure password on the CLI.. this will get stored in the history

This is what we recommend in our on-prem tutorial, are there other ways of setting the password? I guess one could set a temp password and the change it using the GUI.
Maybe we should add a warning or write a wrapper/helper script that takes password as input using the read command, this way one can avoid it being echoed back and will not be visible in history.

Maybe it is possible to add single quotes to avoid shell expansion

True, it might have helped. Though unknown if it covers all cases.

Indeed, I think the UI would be the "right" place to set a secure password, it also has a generator.
So I think at least for now we can leave it as an exercise for the user.. though a small script would be welcome (can rather say run this script than this long command and it would take everything as input).