Align new selection height with other decorations height

single selection (looks bad):

multiple selections (tolerable because it helps distinguish selections):

The fix is to have the selection height === decoration height if there is just one selection.


Scan images for security vulnerabilities after being built

We need a step which scans images for security vulnerabilities after they're built. I did some searching and found the GitHub action below.
"container-image-scan" GitHub Action seems to scan for both security vulnerabilities and whether the image is following best practices (if configured).

I decided to use Snyk on Docker Hub for this purpose.


Extract audio

When I tried Video.extractAudio(),, the error above showed.
That's because of the existing bugs in "isMediaExtensionCorrect" function in util file,
since the function compares "video" with mp3 file format, which returns false and throw error.

I mean, when video tool object calls "extractAudio", it will check checkInputAndOptions right ?

then,  since audio is mp3 format, and video object is a video media type, it will return false and throw an error here

how I fix the issue is to add a condition here:

seems like in the original version, it will compare "video === audio", return false, but our purpose in extractAudio is to convert mp4 -> mp3, so mp3 format should compare with "audio format" instead of video format

yes you seem right. Can you send a pull request ?

sure, I will send it as soon as possible. ,, my assignment deadline coming soon...

Have made a pull req. Thx

Close this issue because a fix PR has been submitted and merged


poisonings

Multiple (12) recommendations for additions to poisonings in attached spreadsheet. Please let me know if you have questions
POISONINGS.Github_MONDO.Recommendations.xlsx

related to https://github.com/monarch-initiative/mondo/issues/3809

@OOPD-LJF, I am working on these. I may have some additional questions.
my first question:
radioactive material contamination does not sound like a disease. Do you mean radiation poisoning? Would this be the same as radiation injury (defined as: Harmful effects of non-experimental exposure to ionizing or non-ionizing radiation in vertebrates.)

instead of the label chemotherapy-induced complications, could we use chemotherapy-induced toxicity?

i think "chemotherapy-induced toxicity" would work well.

Note to self, this is a ROBOT template to add these terms

Great! I'll remove 'radioactive material contamination' from the list.

@OOPD-LJF - this fell to the bottom of my to do list, but I am revisiting it now. There are three terms left that have not been added:

local anesthetic systemic toxicity
nerve agent exposure
fire ant sensitivity

I'll work on these with @sabrinatoro.

@OOPD-LJF I added these as:
MONDO:0100331 nerve agent poisoning
MONDO:0100335 local anaesthetic poisoning
MONDO:0100341 fire ant poisoning

Thanks @nicolevasilevsky and team.

Thank you for your patience and contributions! :)


Fix Apache Commons Text  CVE-2022-42889

Fix Apache Commons Text  CVE-2022-42889
https://nvd.nist.gov/vuln/detail/CVE-2022-42889

Fixes #XXXX.

Description

Fixed the bug ...
Renamed the class ...
Added a forbidden-apis entry ...

Release note

For tips about how to write a good release note, see Release notes.

Key changed/added classes in this PR

MyFoo
OurBar
TheirBaz

This PR has:

[ ] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

@wcc526 , thanks for the change!
For the build to pass, please update the licenses.yaml file as well.


Only skip documentation build for dependabot when not updating documentation dependencies

Description

See https://github.com/WordPress/openverse/pull/1998#issuecomment-1533622959
and
https://github.com/WordPress/openverse/pull/1998#issuecomment-1533635158
We should build and confirm docs stability for documentation dependency updates, so the check should be updated to only skip if the changes aren't for documentation.

I think we can't emit docs on PRs that dependabot opens due to permissions issues, unfortunately 😕 I believe that's why that check is present in the first place

Interesting, we should still be able to run the build, at least to confirm that it doesn't have errors.


fix: use the last entry in intersection callback function

What does this do / why do we need it?
This PR changes to use the last element of entries in intersection callback function.
IntersectionObserver queues intersected entries until next execution of notification step.
In situations where the observed DOM intersects frequently, callback function may be called with an array contains multiple entries.
With previous implementation, this causes inconsistency of intersecting state.
How this PR fixes the problem?
By using the last element of entries, useIntersection can handle latest intersecting state.
Reference
Algorithms, Intersection Observer Editor’s Draft, 13 April 2020

Released as v0.2.1.


feat(protocol) :add Dockerfile/docker compose for packages/protocol

Purpose reduce step install pnpm, nodejs, forge
Better for future testing
Can be used for quick on-chain RA .

For onchain RA can run with
export FORK_URL=your_holesky_rpc
export QUOTE=your_quote
export PRIVATE_KEY=0xyour_private_key_start
docker compose up

I have tested working as expect

@smtmfft  @d1onys1us Can you help review this later ? Thanks


Update migrate-single-flexible-in-place-auto-migration.md

Thank you for contributing to this Azure documentation. Unfortunately, changes to MySQL content can't be accepted this week. The Skilling Content group is migrating this content to a new repository: azure-databases-docs.
In the meantime, we are closing this PR and tagging it so that when the content is available in the new repo, we can follow up with new location information.
#label:"migrate-followup"
#please-close

Hi @moabuham,
We’re happy to share that contributions to mysql are once again possible at azure-databases-docs-pr. Please open a PR in the new repo to submit your changes. We appreciated your patience during this migration.
#remove-label: "migrate-followup"


Add support for PPC64

This one would be great, as it would allow CI and tests for Big-Endian environments.


fix(forge): debugger showing wrong sources at times

Motivation
There were a couple scenarios where the debugger was not showing the proper source code. This happened because of two different issues:

If the script was part of a project, we were still using compile_files(...). However, calling forge test --debug would result in a weird project state where source files coming from the artifacts would be having repeated source IDs. Which would then lead to wrong sources being shown on the debugger. [Note: forge test --debug --calls-> forge debug  --calls-> forge script --debug]
run_debugger was passing to the Tui debugger all artifacts (contract_name -> artifact) and sources (source_id -> String) from the project. Contracts with the same name were overwriting each other.

Solution

Only call compile_files(...) if it's a standalone script. Otherwise call compile(...)
Use Graph to filter out source codes and artifacts not part of the execution, before handing it over to Tui.

Ref #2022


Add retries to reporting server.

This change is

src/main/kotlin/org/wfanet/measurement/reporting/deploy/postgres/PostgresMeasurementsService.kt line 55 at r1 (raw file):
Previously, SanjayVas (Sanjay Vasandani) wrote…
Are we getting this error even on read-only transactions? I was under the impression that those don't usually take predicate locks.

I haven't gotten any in my testing. I added this just in case because it could happen, just a lot more rare.


Make Binary Body type configurable

Currently binary request bodies in Controller generation are hard-coded to "System.IO.Stream" which isn't that useful these days as most modern frameworks need IFormFile collections. This PR makes this type configurable.

What about instead of introducing a new setting we just use
            if (parameter.IsBinaryBodyParameter)
            {
                if (_settings is CSharpControllerGeneratorSettings controllerSettings)
                {
                    return controllerSettings.ControllerTarget == CSharpControllerTarget.AspNetCore ?
                        "Microsoft.AspNetCore.Http.IFormFile" :
                        "System.Web.HttpPostedFileBase";
                }
                else
                {
                    return "System.IO.Stream";
                }
            }

Could do but I would recommend a customisation here - if you look around, there are lots of questions with people asking how to do file upload in the various ASP flavours and there are many suggestions using all sorts of types to do it. I wouldn't restrict it to anything hard-coded and just let people choose but keep the current default for backwards compat?
However, could be improved by having a conditional to check if the param is multi to therefore allow e.g.: ICollection<IFormFile> or just 'IFormFile` but I couldn't see how to detect this.

We'd need a special CSharpTypeResolver for controllers here:
https://github.com/RicoSuter/NJsonSchema/blob/fd6cc55f2c6ccccf66e2157397f50500c50866f2/src/NJsonSchema.CodeGeneration.CSharp/CSharpTypeResolver.cs#L185
Changing it there to IFormFile would also produce a collection of IFormFile if the param is of type array binary I think

Do you mean instead of your suggestion or in addition to it? I am a bit unsure what to do here as I can't see a way to make a resolver specially for controllers in NJsonSchema as "controller" isn't really a concept in that project is it? Could we just do it exactly the same as for FileParameter in CSharpOperationMOdel.cs where the multi is handled in the same place as opposed to in NJsonSchema?

Another thought - why don't we just use your suggestion but use a collection by default since can't hurt and it covers any number of files in the body?
            if (parameter.IsBinaryBodyParameter)
            {
                if (_settings is CSharpControllerGeneratorSettings controllerSettings)
                {
                    return controllerSettings.ControllerTarget == CSharpControllerTarget.AspNetCore ?
                        "System.Collections.Generic.ICollection<Microsoft.AspNetCore.Http.IFormFile>" :
                        "System.Collections.Generic.ICollection<System.Web.HttpPostedFileBase>";
                }
                else
                {
                    return "System.IO.Stream";
                }
            }

The files are usually access by filename in the collection anyway and so it's hardly worth having a seperate return for a single file.

I dont like to always generate a collection, but we could have a check for parameter.Type == Array && parameter.Item.IsBinary and generate the collection and then use if (parameter.IsBinaryBodyParameter) to just generate a single IFormFile

That's fine - I can't see however to detect the multi condition with these specifications - I tried the following but it always generates the non-multi type:
            if (parameter.IsBinaryBodyParameter)
            {
                if (_settings is CSharpControllerGeneratorSettings controllerSettings)
                {

                    if (parameter.Type == JsonObjectType.Array && parameter.Item.IsBinary)
                    {
                        return controllerSettings.ControllerTarget == CSharpControllerTarget.AspNetCore ?
                        "System.Collections.Generic.ICollection<Microsoft.AspNetCore.Http.IFormFile>" :
                        "System.Collections.Generic.ICollection<System.Web.HttpPostedFileBase>";
                    }
                    else
                    {
                        return controllerSettings.ControllerTarget == CSharpControllerTarget.AspNetCore ?
                        "Microsoft.AspNetCore.Http.IFormFile" :
                        "System.Web.HttpPostedFileBase";
                    }
                }
                else
                {
                    return "System.IO.Stream";
                }
            }

I think IsBinaryBodyParameter only applies for single and the if array and isbinary must be outside

Also i think you need to use parameter.ActualSchema.Type to be safe

I see the issue now - the schema was not quite right due to the extra level of indirection. This works:
            if (parameter.IsBinaryBodyParameter)
            {
                if (_settings is CSharpControllerGeneratorSettings controllerSettings)
                {

                    if (schema.Type == JsonObjectType.Array && schema.Item.IsBinary)
                    {
                        return controllerSettings.ControllerTarget == CSharpControllerTarget.AspNetCore ?
                        "System.Collections.Generic.ICollection<Microsoft.AspNetCore.Http.IFormFile>" :
                        "System.Collections.Generic.ICollection<System.Web.HttpPostedFileBase>";
                    }
                    else
                    {
                        return controllerSettings.ControllerTarget == CSharpControllerTarget.AspNetCore ?
                        "Microsoft.AspNetCore.Http.IFormFile" :
                        "System.Web.HttpPostedFileBase";
                    }
                }
                else
                {
                    return "System.IO.Stream";
                }
            }

with both:
      requestBody:
        content:
          multipart/form-data:
            schema:
                type: string
                format: binary

and
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
                format: binary

I have also added a couple of tests for these schemata in BinaryTests,cs.
Shall I make a pull request?

Looks good. You can just update this branch - you dont need to create a new pr

I will see what happens - I may have removed the original clone so I don't know what will happen - may need a new PR ...

Apologies, I had deleted the previous fork and so couldnt' update - I opened PR  #2253 and will close this.


token: Support interest bearing tokens

Problem
There is no clear solution to implementing interest bearing tokens with the SPL Token program. Interest bearing tokens are tokens whose balance changes over time due to interest accrual and have a pegged exchange rate to the underlying asset.
For example, on a borrow lending protocol, after lending out a token like USDC, you will receive equivalent amount of intUSDC to represent your lending position. Over time, the amount of intUSDC increases and the amount is exchangeable for equivalent amount of USDC.
Proposed Changes
TBD. Discussion needed!

Potential Approaches:

Create new interest bearing token program
Adopt a programming model similar to ERC20 where programs can implement a token interface for full customization
Add programmable hooks into the existing SPL Token program which can be configured per mint
Find a way to support this feature by composing the existing SPL Token program
Add interest functionality into the existing SPL Token program

We might be able to do this with composition if we follow the lending model for collateral tokens.  We create a special program which manages interest-bearing tokens, containing two SPL token mints and an owner:
InterestBearingMint {
  non_fungible_token_mint: SplMint, // non-fungible tokens that actually gain interest, OR a copy of SplMint that only exposes a few operations
  percent_of_ownership_fungible_token_mint: SplMint, // fungible tokens that can be freely transfered / traded
  internal_mint_authority: Pubkey, // program address that has authority over both SPL mints
  owner: Pubkey // the owner who can mint new tokens of either type, since the two mints will be controlled by internal_mint_authority
}

The concept is that at any point, to transfer interest-bearing tokens, they need to be converted to the fungible version, which represents your overall share in the pool of interest-bearing tokens.  Interest accrues on all interest-bearing tokens at the same rate, so the amount of tokens is constantly changing, but your share of ownership remains constant.
For example, let's say I have 50 interest-bearing tokens out of 1000, and that 5% stake gets me 5 fungible tokens out of 100. If the interest is 2%, after one year I should have 51 out of 1020 tokens interest-bearing tokens, still 5% of the total, worth 5 fungible tokens.  At any point, I can trade those 5 fungible tokens for anything else without worrying about interest accrual.  As soon as I want to use the interest-bearing token again, I convert the fungible tokens back to interest-bearing NFTs.
If I mint 102 interest-bearing tokens, the total amount increases by 10%, so the total number of possible fungible tokens will go up by 10.
OR
If I mint 10 fungible tokens, the total amount increases by 10%, so the total of non-fungible tokens increases by 102.
There are few questions with this model:

what operations do we permit with the interest-bearing NFTs?
why would anyone ever hold the interest-bearing version? is it just used for certain transactions?
how do wallets integrate with these?  Maybe the frontend does a slick conversion to show the value of fungible tokens and doesn't show interest-bearing tokens

Our solution might end up being a combination of a special interest-bearing token and a separate fungible conversion program.  Thoughts on this approach?

@joncinque nice proposal! I like the notion of having higher order tokens which can be mapped to fractional spl tokens.
This approach allows us to stick with a clearly defined minimal behavior for spl tokens while providing a pattern for creating higher order tokens which could be explicitly supported by future defi programs if desired. It feels that interest bearing, yield bearing, and rebase-type tokens should always have explicit opt-in if their balance can drift over time.
Not sure whether you were thinking of using SPL token NFT's but it could be interesting to make that work. Treating derivative tokens as SPL token NFT's seems difficult given how we currently recommend devs to implement NFT's with a unique mint + single minted token. NFT's would need to track when interest was last accrued on their balance so they would need to be stateful. Since SPL NFT's don't allow custom data, this would need to be a separate account. Maybe we could make some changes there.. it feels useful to group NFT's under a common mint despite not being fungible.
It would be cooler if those interest-bearing tokens were actually fungible though and it would be nice if it followed a similar interface to the SPL token program for transfers, mints, burns, etc. In an ideal world, I imagine defi programs explicitly enabling different types of programmable tokens with minimal code changes but it feels difficult when you consider that different types of tokens would need to reference additional accounts to inform how interest is accrued, among other things.

what operations do we permit with the interest-bearing NFTs?

I imagine this is what people hold by default since they are easiest to reason about.. if they follow some standard interface, wallets could provide a nice experience which shows live balance, for example. That feels difficult if people just hold the fractional spl token equivalent.

why would anyone ever hold the interest-bearing version? is it just used for certain transactions?

I imagine some protocols would be created to explicitly support them (imagine swapping various interest bearing tokens in a pool). It could also help prevent rounding errors whenever you convert to the fungible token equivalent.
I also imagine that contracts like the lending protocol would exclusively deal in interest bearing tokens for nice book-keeping. It wouldn't need to know about the fractional spl tokens.

how do wallets integrate with these? Maybe the frontend does a slick conversion to show the value of fungible tokens and doesn't show interest-bearing tokens

I propose first-class support for interest bearing tokens over the fungible ones since we would presumably be able to pack everything a wallet needs to know into those accounts / mint.
If we did some slick conversion, we would probably want some way to have the fractional token mint somehow indicate its relationship to the interest bearing mint. I don't think we have a good answer for that yet.

Not sure whether you were thinking of using SPL token NFT's but it could be interesting to make that work.

if they follow some standard interface, wallets could provide a nice experience which shows live balance, for example.

Probably a modded version of SPL NFTs would be best then.  It could use the SPL Token ABI for as many instructions as possible, and even the account structure could look similar for first X bytes, and then define additional instructions / fields as needed for things like interest accrual.  Clients / wallets need to be careful when deserializing accounts to support all kinds of tokens.

I propose first-class support for interest bearing tokens over the fungible ones since we would presumably be able to pack everything a wallet needs to know into those accounts / mint.

You're right, that should be the top priority

If we did some slick conversion, we would probably want some way to have the fractional token mint somehow indicate its relationship to the interest bearing mint.

Yeah that part does get tricky.  We might need to adopt a separate standard over SPL token in that case to provide any token metadata, which I know has been on the to-do list for awhile.

Yeah that part does get tricky. We might need to adopt a separate standard over SPL token in that case to provide any token metadata, which I know has been on the to-do list for awhile.

Yeah, this seems like the main problem to solve actually. Just discussed this a bit with @bartosz-lipinski and we're thinking that if we have multiple token programs that we want wallets and programs to call transparently, we'll need an ABI for defining the accounts needed. Otherwise the complexity of adding support for different token types will be unruly.
Also, clients need to know how to construct an instruction which has all dependent accounts and this is difficult when you start trying to provide accounts to a program which itself needs to pass different accounts depending on the token type being used. This account dependency tree becomes a big challenge to manage manually and likely necessitates having an ABI standard which provides all the info needed for both off-chain clients and on-chain programs.

Coming from the ETH world, it seems that having the ABI on top of the EVM is what makes DeFi composability possible. The designers of ERC20 most likely never thought of rebase tokens, yet today they are getting traction in the form of algo stables and interest bearing tokens.

Also, clients need to know how to construct an instruction which has all dependent accounts and this is difficult when you start trying to provide accounts to a program which itself needs to pass different accounts depending on the token type being used. This account dependency tree becomes a big challenge to manage manually and likely necessitates having an ABI standard which provides all the info needed for both off-chain clients and on-chain programs.

Adding my 2c to this discussion, a preliminary proposal for Solana Program ABI:
https://github.com/solana-labs/solana-program-library/issues/1247

@jstarry @joncinque hehe, higher order token sounds cool. engineers love abstraction. :)
Here's my wild/jot-down proposal out of blue.
Sadly, I don't follow all these discussed derived token mechanism... But as a different angle in the design space, how about supporting these as a runtime feature? Please pardon my ignorance.
Well, I just noticed we could revisit the currently-not-so-useful eager rent collection mechanism to support these periodic account update.
(context: eager rent collection is a rent-collection mechanism where we scan whole accounts on the chain ordered by pubkey. what we can exploit here is that we can update each account per an epoch in loaded-spreaded way.)
Put differentally, this is like gc-managed programming language's runFinalizer. Or general runtime-triggered hooks into objects (accounts in our case).
Dunno there is ethereum equivalent...
detail:
Basicallly, at each slot, runtime synthesizes artifical transactions with registered program id for hooks for small subset of accoutns as writable.
Then the hooked program are free to update the account as it likes referencing fixed set of read-only accounts.
pros:

easier ux? (I'm not sure these meta like tokens are familiar to general blockchain users or general public even)
the transaction execution will be parallelizable.
it might be beneficial for solana to have these self-updating mechanism for accounts without external triggering, potentially extending to the event subscription? (I wonder this way we can also stake pool/underlying stake account inconsistency problem?)

I saw similar functionality request in the past on discord, iirc

this could be generalized to fix the invisible rent collection on the explorer as a synthesized tx. (also staking rewards)
maybe, sweet spot design compromise between tx-only chain (btc?) or fully fledged chain with custom runtime (polkadot?); so this could be solana's sales point?
this is easier to develop for normal program developers than higher-order tokens?
easier wallet and exchange support? (for past performance, they just can get past these synthesized transactions)

cons:

the rewards timing depends prefix of pubkey (we can't do this update at once for perf reasons. we can minic the same timing of accural by 2 phase commit at the cost of further delaying accrual timing by another epoch)
accrual timing must be (multiple of) solana epochs.
some central entity must maintain common fee payer account. Alternatively, token bearers must maintain extra balance for accrual (sounds natural considering like general account maintenance fee for additional functionality?)
also, this approach might cost more by the very definition of needed periodic account update and its resultant computing resource usage.
we'll lose the option of ditching BTreeMap in AccountsIndex (CC: @carllin , @sakridge )
complex runtime == riskier in general. but generally straight forward implementation.
increase tps needlessly.

If this sounds worth to chase, I'm happy to write more properly... ;)

This is a really great write-up, thanks @ryoqun !
We did wonder about the possibility of pre/post effects whenever an account is touched or written by adding transactions.  It would be a really big runtime advantage, since often people want to automatically run instructions.  If we go down this path, I like the idea of limiting these to run once per epoch as a start.  We could even allow a program writer to define an instruction to be run on every epoch through an entrypoint!-like macro.  They can register the instruction directly with the runtime on program deployment and put funds into an account which pays for all of the transactions.  Maybe this can all be done through another version of the BPF loader.
I know there's a desire to avoid complicating the runtime, but this would be a great feature, and it's tough to imagine putting it anywhere else.

For interest bearing tokens, I don't find epoch-frequency updates to be nearly as useful as slot-frequency updates. Feels to me that a lazy hook-style approach that runs at most once a slot would be sufficiently powerful.

They can register the instruction directly with the runtime on program deployment and put funds into an account which pays for all of the transactions. Maybe this can all be done through another version of the BPF loader.

This seems like a cool idea but it feels inevitable that those funds are going to be depleted and cause issues. I think it'd be cooler if programs with hooks just had higher transaction fees to cover the cost of the lazy hook.

if we go down this path, I like the idea of limiting these to run once per epoch as a start.

For interest bearing tokens, I don't find epoch-frequency updates to be nearly as useful as slot-frequency updates. Feels to me that a lazy hook-style approach that runs at most once a slot would be sufficiently powerful.

Yeah, I've looked into ethereum counterparts; and now think per epoch update is too slow (or not fun) So, my current position is that solana's stake rewards are too infrequent. xD
And per slot or other variants of less-than-epoch hooks might have unpredictable runtime perf impact... If this is the real concern, we are might be better off just exposing tick instruction (which anyone can submit transaction at that and will be executed at-most per N slots).

Also, I heard about a desire to customize spl-token instructions for custom transferability logic for NFT. So,

Adopt a programming model similar to ERC20 where programs can implement a token interface for full customization

So, this might be more proper solution.
Sorry for dispersion of discussion but I'm regarding we're now at the crux of our spl-token composition future. :)

The actual balance doesn't change, just a global reference that is used by wallets.  The tokens on ethereum still maintain the same balance, and during a transfer the actual bits moved just represent shares.

Proposal added at https://github.com/solana-labs/solana/pull/15927

Closed with #3013


'확정' is not clear for commit's translation

someone translate commit to '확정'
but i think is not clear what it mean.
so i recommend "커밋" or 'commit' itself.

i make pull request about this


EKS: Create a kubeconfig secret

I'm planning to use the ACK EKS controller to create clusters from a management cluster.
As I'm currently using FluxCD to setup the clusters through Gitops, I'd like to use it for the cluster bootstrap too.
FluxCD allows syncing resources to a remote cluster, but this requires a <cluster-name>-kubeconfig secret, which is expected to be created by Cluster API/CAPA: https://fluxcd.io/flux/components/kustomize/kustomizations/#remote-clusterscluster-api
It would be nice if ACK EKS could provide this secret, the same way aws eks update-kubeconfig ... does, to be compatible with FluxCD and other ClusterAPI compatible tools (like Sveltos which discovers ClusterAPI clusters, but also could discover ACK ones).

@gdlx Have you tried exporting the caCertificate and cluster endpoint into a secret? We currently have a CRD that allows you to export specific fields into a Secret/ConfigMap: https://aws-controllers-k8s.github.io/community/docs/user-docs/field-export/

I've actually built a kubeconfig secret with Kyverno, by using CA & endpoint found in the ACK cluster status, but I'm blocked by the fact FluxCD ignores kubeconfig user's exec commands (I've tried injecting aws-iam-authenticator bin in the kustomize-controller but it just doesn't call it).
That means a SA should be created on the cluster and its token added in the kubeconfig, which would then be self contained on the management cluster.
This is what ClusterAPI does, but it's more complex than I expected...

Unless you consider that adding a service account to the managed cluster falls within the scope of the controller, which I would completely understand if it doesn’t, then perhaps the issue should be closed.


Add stream operators for Vectors

Apparantly my last commit also made it in here.
With the changes you made to remove integer math in the color definitions, even though i'm pretty certain there was none just MSVC being fussy about the narrowing at the end, all the Ts made it more difficult to read. I resolved that and removed much redundancy by adding a helper function:
private:
static constexpr ColorBase<T> _PREDEFINED_COLOR(double r, double g, double b)
{
  if constexpr( std::is_integral_v<T> ) {
    T max = std::numeric_limits<T>::max();
    return ColorBase<T>{ T( r * max ), T( g * max ), T( b * max ), T( 1.0 * max ) };
  } else {
    return ColorBase<T>{ T( r ), T( g ), T( b ), T( 1.0 ) };
  }
};

public:
static constexpr ColorBase<T> RED()
{
  return _PREDEFINED_COLOR(1.0, 0.0, 0.0);
};

Yeah, MSVC always warns about narrowing conversion. My main concern however was possibly overflowing integers so I just turned everything into doubles to be sure, it'll all get calculated at compile time anyways.
I'd like to point out a couple of changes though...


[wasm] Fix ambiguous errno error when importing WASILibc module

This commit fixes an ambiguous errno error when importing WASILibc module and SwiftWASILibc Clang module.
The error is caused by the fact that we define a shim for errno in Platform.swift file, but wasi-libc defines errno in a way ClangImporter can understand. We don't need to define shims for it, otherwise we get two candidates for errno identifier.

@swift-ci smoke test

@swift-ci test WebAssembly


Create CLI npx create-mui-app

Summary 💡
Today, to create a new project, you have to start from our example folder in GitHub. Maybe there is a space to create a CLI specific to MUI (the whole suite of products) that would allow developers to quickly pick the stack they want:

TypeScript vs. JavaScript
Next.js vs. Vite
which abstraction level do you want, Base UI (you own the styles) vs. Material UI (you don't own the styles).
which theme do you want, Material Design or Joy Design
do you want Tailwind CSS, or raw CSS or MUI System
do you want Toolpad?

Examples 🌈

Next.js npx create-next-app@latest

Vite npm create vite@latest

Motivation 🔦
Achieving this with examples would lead to an explosion of possible combinations, it would be a LOT more examples to maintain.
Related
#39587

create-t3-app could also be an inspiration: instead of providing all possible combinations, they only write the necessary files.
If this is "greenlit" and if you don't mind that a non-member would work on this, I would most certainly want to try this! Sounds like a great learning experience!

I started with the project today and wanted to share the first version of the TUI. (the video cut off the left elements bit...)

The command currently saves the input, I'm writing the installers for the different packages atm.
Just wanted to check in if this prototype is similar to what you had in mind @mbrookes @oliviertassinari

It's getting closer, yes. Thanks for spending time on this.
Quick feedback:

I would place MUI System (name to change) as the same level as Tailwind CSS, I think it's about which styling solution do you want to use. I wouldn't expect developers to want to mix them.
"MUI Icons" in our case are "Material Design icons" (probably best since we plan to make them work with Joy UI as well) or "Material UI icons", but "MUI icons" for me doesn't mean anything.
TypeScript
Today, having Base UI in the list of options feels strange. We haven't built the product infra for developers to really use it as a starting point yet.

@oliviertassinari thanks for the feedback 🙌
as I said, this was the first draft so I was certain that things should change 😄
I opened a draft PR today with an updated video here: #39865
there are still things missing, especially the templates should be updated,  but I'd be glad to hear more feedback 🙂

Just wanted to let you know that I'm kind of stuck with the templates. Any help would be much appreciated!

Theo wish: https://youtu.be/c5OPn_dyNcc?si=c5w4FPZkmN8_HwcP&t=616

This isn't just like Shadcn UI being easier to adopt to do UI things.
This is a step forward in how these init things work the classic docs page everyone's had to write at some point. All the steps to add this thing to your project could be replaced with a single command and then you can just read the diff…


add get_or_init for hashmap

Closes #1344
This PR introduce @hashmap.T::get_or_init. It's signature slightly different from linked_hashmap.T::get_or_init. Which init parameter is a function takes key as argument. linked_hashmap.T::get_or_init doesn't.
There's no safe way to migrate get_or_init from old signature to new signature. Maybe introduce a new name get_or_add?

Pull Request Test Coverage Report for Build 4261
Details

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 81.23%

Totals

Change from base Build 4259:
0.01%

Covered Lines:
4544

Relevant Lines:
5594

💛  - Coveralls


Add Sublime Text example for clickable error locations

Hi! I added a Sublime Text example in the section about clickable error locations. Now using it and it works great! Feel free to accept it or ignore it.
Many many thanks for this tool. Great philosophy and execution. I’m enjoying working with Elm more and more!

Awesome, thanks!
https://www.sublimetext.com/docs/command_line.html says you need to add a folder to PATH to get the subl command. Is that correct? If so, we could link there.

@sylbru The reason I’m asking is because I wanted to link to the IntelliJ CLI documentation, but I found it not to match reality. I a paragraph on how to enable the CLI myself instead.
I don’t feel like installing Sublime Text, so just checking: Did you need to do the stuff mentioned in https://www.sublimetext.com/docs/command_line.html to get the subl command? You just need to reply, and I can adjust the docs if needed.

Oh yeah sorry for not replying! I installed the app via an apt package on Linux Mint, I'm pretty sure I had the subl command available right away. I imagine the docs are right about the procedure for Windows and Mac, but I can't try it (actually I might have a Mac available). Well spotted!


Nuke only interface type ec2 network

Description
Fixes https://github.com/gruntwork-io/cloud-nuke/issues/731.

TODOs
Read the Gruntwork contribution guidelines.

[ ] Update the docs.
[ ] Run the relevant tests successfully, including pre-commit checks.
[ ] Ensure any 3rd party code adheres with our license policy or delete this line if its not applicable.
[ ] Include release notes. If this PR is backward incompatible, include a migration guide.
[ ] Attention Grunts - if this PR adds support for a new resource, ensure the nuke_sandbox and nuke_phxdevops jobs in .circleci/config.yml have been updated with appropriate exclusions (either directly in the job or via the .circleci/nuke_config.yml file) to prevent nuking IAM roles, groups, resources, etc that are important for the test accounts.

Release Notes (draft)

Added / Removed / Updated [X].
Migration Guide

Hey @denis256, it had some merge conflict. Can you approve the PR again?


Scheduler ticks

Segments use ticks for reporting speed. Scheduler use sleep. So after some time they are completely not synchronized.

Done. https://github.com/intel-go/nff-go/pull/454


Proactive flushes: no flushes with WBM from SanitizeOptions

Describe the bug
setting a WBM for a single db with db_write_buffer_size, causes a WBM to be initialized in SanitizeOptions with the default value of  initiate_flushes which is true.
the Proactive flushes feature is then in effect but there are no registered dbs to flush since during db open, the code in db_impl_open.cc::2102 (end of Open func), only registers dbs if the WBM was created and passed in the options with which the db is opened (not via sanitize).
combined with allow_delays_and_stalls = true, this can create a stall as can be seen when running ./db_test --gtest_filter=DBTest.DynamicLevelCompressionPerLevel .
To Reproduce
Steps to reproduce the behavior:

checkout 0d43a01c32c20be57e966c070d50d6d6bc85568f
change default of allow_delays_and_stalls to true
run above cmd

currently disabling the test DynamicLevelCompressionPerLevel in db/db_test.cc to be able to merge https://github.com/speedb-io/speedb/pull/423 . reenable the test with the PR to fix this issue


[FEATURE] xfce desktop container

Could you add an xfce4 container that just starts a desktop with chromium installed?
I primarily get my chinese cartoons from nyaa, so I've hacked this together for now:
docker exec -it neko_neko_1 apt update
docker exec -it neko_neko_1 apt -y install xfce4 mpv qbittorrent
docker exec -it neko_neko_1 bash
sudo -u neko nohup xfce4-session &

This works great, but it would be much cleaner if a container was already available that does this.

@itskenny0 you can create your own container, just like here:
https://github.com/nurdism/neko/blob/master/.docker/files/firefox/Dockerfile

@m1k1o I know, but I'm not that great with Docker and I would imagine that I'm not the only one with this use case, so an 'official' solution would be great :)

I'm not sure, that full remote desktop is the main use-case of this project, but this is one solution:
3files in 1folder:
Dockerfile
FROM nurdism/neko:base

#
# install xfce4
RUN set -eux; apt-get update; \
    apt-get install -y --no-install-recommends xfce4 firefox-esr mpv qbittorrent; \
    #
    # clean up
    apt-get clean -y; \
    rm -rf /var/lib/apt/lists/* /var/cache/apt/*

#
# copy configuation files
COPY supervisord.conf /etc/neko/supervisord/xfce4.conf

supervisord.conf
[program:xfce4]
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
command=xfce4-session
autorestart=true
priority=800
user=%(ENV_USER)s
stdout_logfile=/var/log/neko/xfce4.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=10
redirect_stderr=true
stderr_logfile=/var/log/neko/xfce4.err.log
stderr_logfile_maxbytes=100MB
stderr_logfile_backups=10

docker-compose.yml
  neko:
    build: .
    container_name: neko
    restart: unless-stopped
    shm_size: "1gb"
    environment:
      DISPLAY: :99.0
      NEKO_BIND: :8080
    ports:
      - 8080:8080
      - "59000-59100:59000-59100/udp"

And then run like nomal neko-container:
docker-compose up -d

Thank you! I did not realize you could start these from local with docker-compose.

I've made a few more adjustments and pushed my version: https://github.com/itskenny0/neko-xfce4

oh thats a neat idea, maybe I could make a nurdism/neko:xfce4 and a nurdism/neko:openbox docker image

not live yet but its done d451173cf09d58b9b972e5e12992c4b0696b7141


Unplugin Vue Router - Unable to resolve some modules (but works anyway)

So I decided to try https://github.com/posva/unplugin-vue-router which is basically a file-based router replacement for vue-router, taking the form of a Vite plugin.
It basically generates a sort of virtual nested package for vue-router (a real package, that I also have installed), called vue-router/auto. Presumably this only exists in the Vite build context, as I can't find any generated files hanging around in node_modules. Anyway, this package handles the routing based on automatically generated rules and imports based on your files and directories.
To cut a long story short, everything's working, but I noticed that on page load and on server rebuild I get Meteor's typical "there's a module missing" error messages:
Unable to resolve some modules:

  "vue-router/auto" in /Users/christian/Developer/hubble-check-meteor3/imports/ui/plugins/router.ts (web.browser.legacy)

If you notice problems related to these missing modules, consider running:

  meteor npm install --save vue-router

And in the browser:
Uncaught Error: Cannot find module 'vue-router/auto'
    at makeMissingError (modules-runtime-hot.js?hash=82c21ce5103770e3ed6096f6e6eee4aeb50ee752:232:12)
    at Module.resolve (modules-runtime-hot.js?hash=82c21ce5103770e3ed6096f6e6eee4aeb50ee752:247:17)
    at Module.moduleLink [as link] (modules.js?hash=db583c48169d9f4def68315139cdcb205e0e1298:361:25)
    at app.js?hash=a83209426c2a4d01cf4014743e1e4e81db50da70:31:11
    at module (app.js?hash=a83209426c2a4d01cf4014743e1e4e81db50da70:44:3)
    at fileEvaluate (modules-runtime-hot.js?hash=82c21ce5103770e3ed6096f6e6eee4aeb50ee752:386:7)
    at Module.require (modules-runtime-hot.js?hash=82c21ce5103770e3ed6096f6e6eee4aeb50ee752:268:27)
    at mod.require (modules.js?hash=db583c48169d9f4def68315139cdcb205e0e1298:294:33)
    at Module.moduleLink [as link] (modules.js?hash=db583c48169d9f4def68315139cdcb205e0e1298:368:22)
    at app.js?hash=a83209426c2a4d01cf4014743e1e4e81db50da70:240:11

(this error also appears in production, but of course everything's minimised)
Now, it's all working... I can change routes, I don't get errors when changing routes, I can mess around with the Vite config and nothing breaks, but I think Meteor's somehow double handling this module when it should really just be Vite's job to deal with this module.
But not 100% sure what solutions are available.
I know from the Vite side we can externalise packages easily, as per the example in the readme:
optimizeDeps: {
    exclude: ['@meteor-vite/react-meteor-data'],
}

But I don't think the reverse exists (or if that's desirable).
(I know Meteor has a client/compatibility folder but I believe that's intended for scripts running in global context and predates the shift to ES modules).

Anyway, this is happening in a closed-source project so I can't share an example right now, when I have a moment I'll have to generate a skeleton app reproducing this. Just writing the issue now in case something comes to mind.

Hey there 👋
I'm using the same plugin for one of my Meteor & Vue projects and can't recall running into this. 🤔
Judging from the error message in your console, it seems like Meteor is trying to bundle unplugin-vue-router instead of Vite. Could you check your Meteor client.mainModule file and make sure it isn't importing any application code?
Normally the client.mainModule (specified in your project's package.json) should only contain Meteor package imports automatically added by meteor-vite . Think of the entry module you specify in your Vite config as the new entrypoint for the Meteor client.


TypeError: expected str, bytes or os.PathLike object, not NoneType

I have this error when using vc.get_vc("/home/alcoft/Descargas/Modelos RVC/I4.0 V4/NEKOTSUBA_BI_VOICEVOX.pth").
This is the traceback:
Traceback (most recent call last):
  File "/home/alcoft/Projects/Multilang/TAO_I4.0/LibI4/Python_AI/ai_server_all.py", line 1, in <module>
    import ai_server
  File "/home/alcoft/Projects/Multilang/TAO_I4.0/LibI4/Python_AI/ai_server.py", line 721, in <module>
    start_server()
  File "/home/alcoft/Projects/Multilang/TAO_I4.0/LibI4/Python_AI/ai_server.py", line 701, in start_server
    cb.LoadAllModels()
  File "/home/alcoft/Projects/Multilang/TAO_I4.0/LibI4/Python_AI/chatbot_all.py", line 130, in LoadAllModels
    rvc.LoadModel()
  File "/home/alcoft/Projects/Multilang/TAO_I4.0/LibI4/Python_AI/Inference/RVC_inference.py", line 27, in LoadModel
    vc.get_vc("/home/alcoft/Descargas/Modelos RVC/I4.0 V4/NEKOTSUBA_BI_VOICEVOX.pth")
  File "/home/alcoft/Projects/Multilang/TAO_I4.0/I4.0_ENV/lib/python3.11/site-packages/rvc/modules/vc/modules.py", line 84, in get_vc
    index = get_index_path_from_model(sid)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alcoft/Projects/Multilang/TAO_I4.0/I4.0_ENV/lib/python3.11/site-packages/rvc/modules/vc/utils.py", line 12, in get_index_path_from_model
    for root, _, files in os.walk(os.getenv("index_root"), topdown=False)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen os>", line 343, in walk
TypeError: expected str, bytes or os.PathLike object, not NoneType

My code is:
from pathlib import Path
from scipy.io import wavfile
from rvc.modules.vc.modules import VC
import os
import torch
import json
import ai_config as cfg

device: str = "cpu"
vc: VC = VC()

def LoadModel() -> None:
    global device, vc

    if (not cfg.current_data.prompt_order.__contains__("rvc")):
        raise Exception("Model is not in 'prompt_order'.")

    if (cfg.current_data.rvc_method != "rmvpe" and cfg.current_data.rvc_method != "pm" and cfg.current_data.rvc_method != "harvest" and cfg.current_data.rvc_method != "crepe"):
        raise Exception("RVC method must be 'rmvpe', 'pm', 'harvest' or 'crepe'.")

    if (len(cfg.current_data.rvc_model_path) == 0):
        return

    device = "cuda" if (torch.cuda.is_available() and cfg.current_data.use_gpu_if_available and cfg.current_data.move_to_gpu.count("rvc") > 0) else "cpu"
    vc.config.device = device

    vc.get_vc("/home/alcoft/Descargas/Modelos RVC/I4.0 V4/NEKOTSUBA_BI_VOICEVOX.pth")

def __make_rvc__(audio_name: str, protect: float = 0.33, filter_radius: int = 3) -> bytes:
    LoadModel()

    tgt_sr, audio_opt, times, _ = vc.vc_single(1, Path(audio_name), f0_method = cfg.current_data.rvc_method, index_file = Path(cfg.current_data.rvc_index_path), filter_radius = filter_radius, protect = protect)

    output_file = "tmp_rvc_output_"
    output_file_id = 0
    output_file_path = output_file + str(output_file_id) + ".wav"

    while (os.path.exists(output_file_path)):
        output_file_id += 1
        output_file_path = output_file + str(output_file_id) + ".wav"

    wavfile.write(output_file_path, tgt_sr, audio_opt)

    with open(output_file_path, "wb") as f:
        audio_bytes = f.read()
        f.close()

    os.remove(output_file_path)
    return audio_bytes

def MakeRVC(data: str | dict[str]) -> bytes:
    if (type(data) == str):
        try:
            data = json.loads(data)
        except Exception as ex:
            raise Exception("[RVC] Data must be a dictionary or a JSON code. ERROR: " + str(ex))

    ddata = {
        "input": "",
        "protect": 0.33,
        "filter_radius": 3
    }

    try:
        ddata["input"] = data["input"]
    except:
        raise Exception("Unable to get audio path.")

    try:
        ddata["protect"] = float(data["protect"])
    except:
        pass

    try:
        ddata["filter_radius"] = int(data["filter_radius"])
    except:
        pass

    return __make_rvc__(ddata["input"], ddata["protect"], ddata["filter_radius"], ddata["method"])

My Python version is Python 3.11.6 and the model path is /home/alcoft/Descargas/Modelos RVC/I4.0 V4/NEKOTSUBA_BI_VOICEVOX.pth.
Can someone help me fix this?

You need a .env file, which you can create with rvc env create. Then you need to fill out the paths listed in the .env file, and load the env file with load_dotenv(). You can get the files you need from below (I recommend checking the web-ui repository for more info on setup ), your error is saying you don't have a path to the index file.
Preparation of other Pre-models
RVC requires other pre-models to infer and train.
#Download all needed models from https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/
python tools/download_models.py

Or just download them by yourself from our Huggingface space.
Here's a list of Pre-models and other files that RVC needs:
./assets/hubert/hubert_base.pt

./assets/pretrained

./assets/uvr5_weights

Additional downloads are required if you want to test the v2 version of the model.

./assets/pretrained_v2

If you want to test the v2 version model (the v2 version model has changed the input from the 256 dimensional feature of 9-layer Hubert+final_proj to the 768 dimensional feature of 12-layer Hubert, and has added 3 period discriminators), you will need to download additional features

./assets/pretrained_v2


Make video from multiple image and single audio file

I have made video from single image and audio file successfully and its working great.
Now I want to make video from multiple image and single audio file. Can anyone tell me solution for this?
Like from this one:
VideoGenerator.current.fileName = "ABC"
VideoGenerator.current.videoBackgroundColor = .black
 VideoGenerator.current.generate(withImages: [receive_Image[0], receive_Image[1], receive_Image[2]], andAudios: [song_Url], andType: .multiple, { (progress) in
            print(progress)
        }, success: { (video_url) in

        }) { (error) in

        }

I have something to add, what if I just want to make a video out of a list of images and not add audio to the video?

@tgeorgieva Hello. Thanks to the existing code I was able to rewrite the code and achieve what I wanted. Here is a gist of it if you are interested in adding it to the framework. Github Gist

Nice work! I will definitely check it out. 👍

Nice work!
But there is some issue.
Ex: When I use audio file that the longer than images range, the video will be display only first image.
Anyway, thanks for your efforts.


Improve Support for Scout: Add support for array in newQueryForRestoration($ids)

Improve support with Scout
Added test in HasBinaryUuidTest.php

Hi,
Apologies for the lack of activity on this. Has #72 resolved the test case inquiry for this PR?
If not, I will make some updates based on feedback from @vpratfr .
Thanks :)

This package has been abandoned. Alternatives: https://github.com/michaeldyrynda/laravel-efficient-uuid & https://github.com/michaeldyrynda/laravel-model-uuid


Core lightning can be started

Initial passthrough of this

So currently this can start and fund a CLN node.
I can't open a channel to/from them yet, and it seems a bit awkward to try to build that functionality before just putting a trait for the nodes, since there is a fair amount to lnds, etc, here.

I just merged in having all the LND logic behind a trait, there should be an easier path forward with this now. Thank you for posting a PR!

I'm working to work off what you've done here to add support for core LN, it should be much easier now that we have eclair support merged in.

closing as I was able to merge in a branch that built of this one, I gave you co-author on the commit:
https://github.com/tee8z/doppler/pull/21


Relate stake key registration to stake pool

Right now we're missing the link between stake key registration and the stake pool. If the pool_id was stored with the registration, then it would be possible to find the pool's delegators.

What pool_id are you talking about here? The pool_update references pool_hash which is effectively the pool identifier.
But that does not seem to be what this is about. It seems like you want a list of the stake addresses that are delegating to a specific pool. Is that right?

It seems like you want a list of the stake addresses that are delegating to a specific pool.

Yes, ultimately the goal here is to present StakePool.delegators
stake_address.pool_hash_id ?

But stake_address.pool_hash_id is not a static value. A stake_address owner can redelegate to another pool.
The delegation table has stake_address_id and pool_hash_id columns.

The delegation table

I had somehow missed this table in the schema. :facepalm:

It might be worth adding an active_epoch_no column.

It's already there

Ans so it is!


NodeRed boot-loops if a Xiaomi MIIO device not present

I discovered yesterday, that NodeRed (in HA installation) will not start if xiaomi.miio module cannot connect to an IP of one of the devices (humidifier in my case), either because it was unplugged or its IP has changed. NodeRed will bootloop perpetually. I wasted a day of restoring backups and snapshots of the Home Assistant VM to finally identify why my whole home automation didn't work.
I think this is a pretty grave bug if absence of one device renders the entire home automation dead.
NodeRed: 11.0.3 & 11.0.4

Please fill out the FULL template presented when opening an issue, it gathers all the information we need to look at a problem.
Also 11.0.3 and 11.0.4 are not Node-RED versions, latest is 2.2.1, I suspect you are using Home Assistant plugin versions which we have no knowledge of.

Hi @lockheed
This repo is for the core of Node-RED. We don't maintain either the Home Assistant plugin or anything to do wit the xiaomi.miio module.
As the issue template that you haven't used says, for issues relating to contrib modules, please raise them against their own repository.
As you don't say which xiaomi set of nodes you are using, I can't point you in the right direction - but you should be able to find it in the flow library - https://flows.nodered.org/search?term=xiaomi

Without any information about what the actual error is, then I can't say if its something Node-RED can/should handle or not.
There are a certain class of error that the only safe thing to do is to restart Node-RED because the plugin has left things in an indeterminate state. This is what the node.js runtime recommends:

The correct use of 'uncaughtException' is to perform synchronous cleanup of allocated resources (e.g. file descriptors, handles, etc) before shutting down the process. It is not safe to resume normal operation after 'uncaughtException'.

https://nodejs.org/api/process.html#warning-using-uncaughtexception-correctly
This is why we have to push these issues out to the nodes that are causing them - only they can add the error handling they are missing for the asynchronous events they are using.

@lockheed can you please tell us which of the xiaomi nodes is causing this error? A stack trace from the node-red log would be even better.

This is the offender: https://flows.nodered.org/node/node-red-contrib-miio-humidifier
As soon as the Humidifier is unplugged from power, entire NodeRed stack goes down into a bootloop.
Here's the log: https://pastebin.com/raw/KVANLJZn
Second after plugging humidifier back on, NodeRed start normally and works.

Why don't you reopen it? It is NodeRed's bug that it crashes.

How is bringing the entire instance down PERMANENTLY and thus disabling ALL automations indefinitely a "safe option"?

When a node throws an uncaught exception from asynchronous code Node-RED has no idea what state the node has been left in, so the only safe thing to do is exit.
I see you have raised an issue against the Miio node that has not been responded to. This leaves you with 2 options:

Raise Pull request against the node to fix the problem
Don't use the Miio node.

This issue will not be reopened, for the reasons already stated, especially in Nick's comment linking to the NodeJS doc.

But it is worth noting that the Miio node does appear to have been abandoned
https://github.com/andreyoshev/node-red-contrib-miio-humidifier/issues/11#issuecomment-1090812779

After a very quick (i didn't dig deep) I think changing the following lines
https://github.com/andreyoshev/node-red-contrib-miio-humidifier/blob/7645f441220c91d5bb94d17e2ce7a212c7e25f50/nodes/server.js#L19-L23
to
           node.connect().then(result => {
                node.getStatus(true).then(result => {
                    node.emit("onInitEnd", result);
                });
            })
            .catch(err => {});

May stop it crashing, but that is just a guess as I don't have any of the hardware to test this lot with.


Drawer top corner always set to 0 even when .fullExpansionBehaviour set to leavesCustomGap(gap:)

I set drawer not cover the whole screen when full expansion. However, top corner mask disappeared. But I really want the corner exist when drawer not modal fully.
configuration.fullExpansionBehaviour to .leavesCustomGap(gap: 135)
configuration.cornerAnimationOption = .alwaysShowBelowStatusBar

I have skimmed the Internal API. This may be caused cornerRadius set to 0 in animator's completionHandler.
// PresentationController+Animation.swift
let shouldSetCornerRadiusToZero =
    (isEndingStateCollapsedOrFullyExpanded && endingPosition == .end) ||
    (isStartingStateCollapsedOrFullyExpanded && endingPosition == .start)
self.currentDrawerCornerRadius = 0

Not sure this behavior indeed we want. And I temporary change that to get AppleMusic.app likely behavior. Please let me know If another configuration option could get the same behavior I want. 😃
// PresentationController+Animation.swift
if case DrawerConfiguration.FullExpansionBehaviour.leavesCustomGap(gap: _) = self.configuration.fullExpansionBehaviour {
    self.currentDrawerCornerRadius = maxCornerRadius
} else if maxCornerRadius != 0 && shouldSetCornerRadiusToZero {
    self.currentDrawerCornerRadius = 0
}

Hello, and thanks for using DrawerKit. I will take a closer look and get back to you soon.


[AutoMLForecast] Can't use AutoMLForecast with dynamic features

What happened + What you expected to happen
Attempting to run an AutoMLForecast with dynamic variables as below generates this error:
`lgb_fcst_auto = AutoMLForecast(
models= {"lgb": AutoLightGBM(), "ridge":AutoRidge()},
freq=pd.DateOffset(weeks=4), # Frequency is every 4 weeks
season_length=12,
)
lgb_fcst_auto.fit(df, n_windows=2, h=3, num_samples=2)
ValueError: col_x is declared as a static feature but its values change over time. Please set the static_features argument to indicate which features are static.
If all of your features are dynamic please set static_features=[].
`
However, setting static_features = [] as below generates a different error:
`lgb_fcst_auto = AutoMLForecast(
models= {"lgb": AutoLightGBM(), "ridge":AutoRidge()},
freq=pd.DateOffset(weeks=4), # Frequency is every 4 weeks
season_length=12,
)
lgb_fcst_auto.fit(df, n_windows=2, h=3, num_samples=2, static_features=[])
TypeError: AutoMLForecast.fit() got an unexpected keyword argument 'static_features'
`
My question: Is there a way to pass kwargs to the underlying fit function? Are dynamic features not possible with AutoMLForecast?
I checked the documentation & the example shown didn't appear to be using dynamic features.
Versions / Dependencies
mlforecast           0.13.4
Reproduction script
`from mlforecast.utils import generate_daily_series, generate_prices_for_series
from mlforecast.auto import (AutoLightGBM, AutoMLForecast, AutoRidge)
series = generate_daily_series(
100, equal_ends=True, n_static_features=2
).rename(columns={'static_1': 'product_id'})
prices_catalog = generate_prices_for_series(series)
series_with_prices = series.merge(prices_catalog, how='left')
lgb_fcst_auto = AutoMLForecast(
models= {"lgb": AutoLightGBM(), "ridge":AutoRidge()},
freq='D',
season_length=7,
)
lgb_fcst_auto.fit(series_with_prices, n_windows=2, h=3, num_samples=2, static_features=[])`
Issue Severity
High: It blocks me from completing my task.

Hey. You have to provide that through the fit_config argument in the constructor, e.g.
AutoMLForecast(..., fit_config=lambda trial: {'static_features': []})

Yes that resolved it. Thanks


fix: reset destroys app

Description
Fixed the issue where an App has to be reinitialized after the .reset() method is called.
Fixes # (issue)
300
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Tested in the file tests/embedchain/test_reset.py. After an app instance is initialized and reset, the client connection and ability to add to a collection is tested.

[x] TestAppReset

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules
[x] I have checked my code and corrected any misspellings

Maintainer Checklist

[x] closes #xxxx (Replace xxxx with the GitHub issue number)
[ ] Made sure Checks passed

You can make the test part of test_embedchain, lets keep it neatly mirroring the file structure.

yeah I mean you're the guy who wrote the collection name everywhere PR, let's see if we get merge conflicts or anything.

other than that it looks good to me.

I really doubt there will be a merge conflict between this and #310, I made the same changes to chroma_db.py in both

@cachho : can you let me know what is pending here?

@taranjeet should be good now, I tested it myself.
For something as niche as a reset function, this is fine. And a welcome improvement that should also make tests run quicker. I added an inline to-do with ideas and an explanation why this can still throw errors, if someone stumbles across this.

@cachho : can you fix the merge conflict please?
PR is approved.


Setting Language Location

Hi!
Is there some way to set the language of chromium with the from_url method? If I check the language in C:\Users\my_username\AppData\Local\ms-playwright\chromium-1091\chrome-win\chrome.exe (it's a Microsoft Windows 10 Pro OS), it is already configured for my local language. I believe it is taking from the whole system, but pwhtmltopdf is ignoring it.
I took a look into the package files and didn't find anything related to language settings. I hope the question is not too dumb. I myself am unfamiliar with playwright. Maybe would be interesting to add some language setting feature if there is none?

Is that what you are referring to?
https://playwright.dev/python/docs/api/class-browser#browser-new-page-option-locale
Playwright defaults to the system default locale.


Possible Vite 4.0.0 dependency issue?

Hey so when I'm running updates, I get this warning about unmet dependencies:
Already up to date
Progress: resolved 672, reused 538, downloaded 0, added 0, done
 WARN  Issues with peer dependencies found
.
└─┬ svelte-breadcrumbs 1.2.5
  └─┬ @sveltejs/kit 1.30.4
    ├── ✕ unmet peer<EMAIL_ADDRESS>found 5.1.4
    └─┬ @sveltejs/vite-plugin-svelte 2.5.3
      ├── ✕ unmet peer<EMAIL_ADDRESS>found 5.1.4
      └─┬ @sveltejs/vite-plugin-svelte-inspector 1.0.4
        └── ✕ unmet peer<EMAIL_ADDRESS>found 5.1.4

Done in 8.4s

I'm still new to node and typescript so my apologies if I'm misattributing this warning, but doesn't this stem from this section in the package.json ?
      "dependencies": {
        "@sveltejs/kit": "^1.24.0"
      },

From what I've read, the ^ operator allows for minor version bumps, but not major ones. So now sveltekit 2 is out, this is now technically unmet?

I recently updated Vite in this repo and this is what my package.json looks like for vite and many other packages:
"vite": "^4.4.2"

Which translates to:
>=4.4.2 <4.5.0

That is a mistake, thanks for pointing this out. I am so used to using that syntax in my projects, I didn't realize how problematic it could be in a library. I'll update those to remove any semver specificity and it should fix it up for you.
Try out 1.2.6 now

Hmm, I still seem to get the warning:
Progress: resolved 672, reused 538, downloaded 0, added 0, done
node_modules/.pnpm/@sveltejs+kit@1.24.0_svelte@4.2.12_vite@5.1.5/node_modules/@sveltejs/kit: Running postinstall script, done in 432ms

dependencies:
+ svelte-breadcrumbs 1.2.6

 WARN  Issues with peer dependencies found
.
└─┬ svelte-breadcrumbs 1.2.6
  └─┬ @sveltejs/kit 1.24.0
    ├── ✕ unmet peer<EMAIL_ADDRESS>found 5.1.5
    └─┬ @sveltejs/vite-plugin-svelte 2.5.3
      ├── ✕ unmet peer<EMAIL_ADDRESS>found 5.1.5
      └─┬ @sveltejs/vite-plugin-svelte-inspector 1.0.4
        └── ✕ unmet peer<EMAIL_ADDRESS>found 5.1.5

Done in 3s

in #9 I moved @sveltejs/kit to devDependencies. Hopefully that fixes the issue for you!

Yes that's fixed it! Thanks so much for all the effort @diericx


Remove CI workflows that aren't relevant to us

The CI workflow is trying to a push new container to the GitHub container registry. We don't need / want that, so just removing most of the CI workflows here except for type checking and unit testing.

FYI I had to rebase onto the other branch because tests were failing wildly


Update the whole Hibernate stack: JPA 2.2, JDK9+ support

I plan to upgrade all Hibernate libraries, please let me know if that's a welcome contribution.

Hibernate ORM 5.3.0.Final is available with a huge list of desirable improvements:
http://in.relation.to/2018/05/14/hibernate-orm-530-final-release/

this is matched by Hibernate Search 5.10.0.Final, compatible with the above ORM and bringing lots of Elasticsearch integration improvements:
http://in.relation.to/2018/05/17/hibernate-search-5-10-0-Final/

Hibernate OGM should follow as well, but at this time there is no Final version matching the above stack. Is that a blocker?
We can either:

wait for the OGM to be released as Final
use a matching Alpha/Beta release
require an older ORM/Search stack for the OGM users (I'd avoid this one for is complexity)

+1
Would be great to start getting some versions that bring in Java EE 8 implementations

thanks @kenfinnigan .
What about the OGM version? Will it be ok to depend on an Alpha/Beta, or should we rather wait for the Final?

Right now it's ok to be Alpha/Beta as the first release of v4 will be an Alpha


Accessibility Audit - Admin part 1

Background
We need to complete an accessibility audit for Q1. This ticket tracks two of the pages/flows that need auditing.
Action requested
Run Axe DevTools testing (automatic and manual) on the following pages/experiences:

[x] Sign up flow (simplereport.gov/signup)
[ ] Add / edit facility

Acceptance Criteria
Tests have been run on the above flows.
This ticket is only to track that the tests have been run, not that issues have been fixed! See the epic #4955 for details.

/sign-up flows for all 3 different scenarios + the multiple org detail, personal details, experian form all passed the axe dev tool tests

add and edit facilities as well as manage facilities all passed as well.

Awesome, thanks for running that @emyl3! Feel free to go ahead and close this ticket :)


Question!. Does Perfetto UI also support  "displayTimeUnit": "us"?

Hi!
I have one question regarding timestamps.
Trace Event Format
If provided displayTimeUnit is a string that specifies in which unit timestamps should be displayed. This supports values of “ms” or “ns”. By default this is value is “ms”
According to the Trace Event Format specification, only "ms" and "ns" are supported.
Is it possible to use "us" like below?
"displayTimeUnit": "us"?
thank you.!

No we don't support this. The context for why not is available at https://github.com/google/perfetto/issues/106


remove npm scripts in favour of clis

anywhere a cli is used the npm scripts should be dropped except for a single npm script to run the cli. We need docs for the cli to work out what commands can be passed through, though

cli passed through commands now


Bug: webpack 4 using Angular 1.6

Webpack version:
4.8.3
Webpack Karma version:
3.0.0
Karma version:
2.0.2
Please tell us about your environment:
OSX 10.13.4
Browser: Chrome 66.0, Firefox 60.0
Current behavior:
Unable to find the Angular provider with this Webpack Karma version and Webpack version.
See: link

Expected/desired behavior:
It Works fine with Webpack 3.11.0 and Karma Webpack 3.0.0:

Seems like you are minifing your bundle without ng-annotate.
try adding  { ... mode: 'development' ... }
to your webpack config file

@AlonMiz works GREAT.
Thank you very much!


Session secret hardcoded, checked into repo

Hi,
Not sure if that is intentional, but it seems like you checked in your session secret into the repo: https://github.com/mrvautin/adminMongo/blob/master/app.js#L178
More information:
https://martinfowler.com/articles/session-secret.html

It’s intentional. It’s just an example.


Increase hotbar width / make it re-sizable to allow friendly names in the hotbar

What would you like to be added:

Modify the hotbar to allow a 15-charecter friendly name, so that users who have many clusters defined can scroll vertically and select the right one. Currently we have only 12 that you can add there.
Ideally allow a ICON/gif as well to the left/right of the charecter-string-friendly-name
And further, possibly make GIF/full-name display a user preference choice.
Also make the hotbar hidable
Eventually, allow the hotbar to have groups of clusters, that are collapsible & expandable to allow groupings for example "dev", "stage", "department1", "department2"

Why is this needed:
Some users have many k8s clusters in their environments, including groups of clusters like dev/stg/prod/department etc. Above features make it user friendly and convenient to manage. Current 12 in hotbar looks like a arbitrary limitation.
Environment you are Lens application on:
Mac

Kubernetes distribution: [EKS, AKS, GKE, Rancher, ...]
AWS/EKS, Dell/VMware/VxRails/TKG/TKGi

Desktop OS:
Apple MacOS Monterey/Ventura

Thanks we will take this into consideration.

I, too, would prefer to use a short friendly/name alias list rather than icons in the hotbar. Trying to trick the three-letter generator on top of the auto-icon isn't helpful.


Fix reading template in autoscale vm profile resource

If a template is available on multiple zones cloudstack will return the same template ID multiple times for each zone on a call to listTemplates.
This behavior causes GetTemplateByID function to fail when the template is in multiple zones because it ensures that the list contains a single entry.
This behavior caused autoscale vm profile read step to fail when the template was in multiple zones. The fix here is setting the zoneID alongside with the templateID on calls to GetTemplateByID.

Thanks @cezarsa! Merged the go-cloudstack PR and released a new version (v2.7.2). If you update this PR so is uses that new version, we should be good to go with this one 👍

PR updated to include latest go-cloudstack, unfortunately I had to let go mod use the latest commit hash instead of using the v2.7.2 tag because that's not possible without the module name itself including a /v2 suffix.


Update template to prevent version confusion

@paulomarg and I have both misread the example version number in tickets, let's change this to prevent that happening again.
Warn Checklist

[ ] This changes the interface and requires a Major/Minor version change.
[ ] I have :tophat:'d these changes by using the commands I changed by hand.
[ ] I have added a dependancy to the project.
[ ] I have considered any potential impact on node-themekit

@paulomarg good idea, updated.

That's perfect, and even though I suggested the ` I think we might not want to add them - people might copy them and the command won't work as expected, we're even actively dropping those in other repos. Sorry!


Dev To Master

Wait for this bugfix and merge after
https://github.com/CoveoWhisper/NLPAPI/pull/18


fix: decoder component expansion on handling edge case

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (190e0e4) to head (e85a983).

Additional details and impacted files
@@            Coverage Diff            @@
##            master      #484   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           42        42
  Lines         3848      3853    +5
=========================================
+ Hits          3848      3853    +5

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


[master] Godot crash on Linux

Tested versions
Launch Godot.
I compiled Godot master from git using this settings:
       _,met$$$$$gg.          binogure@binogure
    ,g$$$$$$$$$$$$$$$P.       -----------------
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux trixie/sid x86_64
 ,$$P'              `$$$.     Host: A520 AORUS ELITE
',$$P       ,ggs.     `$$b:   Kernel: 6.11-amd64
`d$$'     ,$P"'   .    $$$    Uptime: 8 hours, 35 mins
 $$P      d$'     ,    $$P    Packages: 4712 (dpkg)
 $$:      $$.   -    ,d$$'    Shell: bash 5.2.37
 $$;      Y$b._   _,d$P'      Resolution: 2560x1440, 2560x1440
 Y$$.    `.`"Y$$$$P"'         DE: Cinnamon 6.2.9
 `$$b      "-.__              WM: Mutter (Muffin)
  `Y$$                        WM Theme: cinnamon (Default)
   `Y$$.                      Theme: Adwaita [GTK2/3]
     `$$b.                    Icons: gnome [GTK2/3]
       `Y$$b.                 Terminal: terminator
          `"Y$b._             CPU: AMD Ryzen 7 5800X (16) @ 4.851GHz
              `"""            GPU: NVIDIA GeForce RTX 3070
                              Memory: 18014MiB / 64226MiB
gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Using git bisect, it seems that this commit causes the crash:
be86ce3103d92e4f7a625cbf11866266473ac99c
System information
Linux binogure 6.11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11-1~exp1 (2024-09-19) x86_64 GNU/Linux
Issue description
Launch Godot and it crashes on a SIGSEGV:
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.4.dev.custom_build (be86ce3103d92e4f7a625cbf11866266473ac99c)
Dumping the backtrace. Please include this when reporting the bug to the project developer.

Steps to reproduce
Launch Godot on Linux
https://github.com/user-attachments/assets/3406bc5a-0f10-402b-9353-ccde9003e852
Minimal reproduction project (MRP)
N/A

Using git bisect, it seems that this commit causes the crash:
be86ce3

That sounds surprising, this commit is just removing some unused headers. If the code compiles, it should be equivalent to what was before.

Would you mind trying to build the binary on your computer using our own linux toolchain?
https://github.com/godotengine/buildroot
You can just get a pre-build version from the "obtaining a toolchain" part of the document.
This will tell us if this is a Debian problem, or a Debian GCC problem.
Thanks!

Just sharing some more info:
ldd --version
ldd (Debian GLIBC 2.36-9+deb12u7) 2.36
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

I pulled the latest master, and compiled it. Still crashing on Linux, just opening Godot crashes.
Since I started compiling the master branch and have reverted this commit: be86ce3103d92e4f7a625cbf11866266473ac99c
I'm gonna wait for it to end before trying anything else. If it works, then I'll tell you, if it does not, I'm gonna try with gcc 13.

Would you mind trying to build the binary on your computer using our own linux toolchain?
https://github.com/godotengine/buildroot
You can just get a pre-build version from the "obtaining a toolchain" part of the document.
This will tell us if this is a Debian problem, or a Debian GCC problem.
Thanks!

Using this toolchain solve the issue too. So I guess I can't use gcc older than v13. It might be useful to update the documentation about building Godot for Linux and to make it matches with the toolchain tools versions:
https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_linuxbsd.html

I suspect it might be an incremental build issue, where SCons might not properly trigger rebuilding all files that need to be built, and some old object files are reused and linked into a broken executable.
Does the problem fix itself if you do a clean build from scratch with Debian's GCC? You can clean everything in a Git clone with git clean -fxd, though note it will remove any .gitignored files, including potential IDE config files in that folder, etc. Alternatively you can clean with scons [options] -c.

I suspect it might be an incremental build issue, where SCons might not properly trigger rebuilding all files that need to be built, and some old object files are reused and linked into a broken executable.
Does the problem fix itself if you do a clean build from scratch with Debian's GCC? You can clean everything in a Git clone with git clean -fxd, though note it will remove any .gitignored files, including potential IDE config files in that folder, etc. Alternatively you can clean with scons [options] -c.

The first build was a clean build not an incremental one.

As requested, a git clean and scons -c to produce a fresh build (sorry for the delay):

Still crashing indeed.

I'm also seeing crashes when godot is built on debian (gcc (Debian 12.2.0-14) 12.2.0), also tried with a clean build, same thing.
Stack trace for project settings:
Thread 1 "godot.linuxbsd." received signal SIGSEGV, Segmentation fault.
0x0000555558ac55ae in Node::is_inside_tree (this=0x0) at scene/main/node.h:489
489		_FORCE_INLINE_ bool is_inside_tree() const { return data.inside_tree; }
(gdb) bt
#0  0x0000555558ac55ae in Node::is_inside_tree (this=0x0) at ./scene/main/node.h:489
#1  0x000055555b73ad0d in Window::set_title (this=0x0, p_title=...) at scene/main/window.cpp:281
#2  0x000055555a73e253 in ProjectManager::ProjectManager (this=0x5555640d1b60) at editor/project_manager.cpp:1142
#3  0x0000555558867679 in Main::start () at main/main.cpp:4290
#4  0x000055555878d7b0 in main (argc=1, argv=0x7fffffffdd68) at platform/linuxbsd/godot_linuxbsd.cpp:84

Stack trace with -e --path path/to/project:
0x0000555558799c22 in std::__atomic_base<unsigned long>::fetch_sub (__m=std::memory_order_acq_rel, __i=1, this=0x3f7ffffffffffff0) at /usr/include/c++/12/bits/atomic_base.h:628
628	      { return __atomic_fetch_sub(&_M_i, __i, int(__m)); }
(gdb) bt
#0  0x0000555558799c22 in std::__atomic_base<unsigned long>::fetch_sub (__m=std::memory_order_acq_rel, __i=1, this=0x3f7ffffffffffff0) at /usr/include/c++/12/bits/atomic_base.h:628
#1  SafeNumeric<unsigned long>::decrement (this=0x3f7ffffffffffff0) at ./core/templates/safe_refcount.h:87
#2  CowData<char>::_unref (this=0x5555637a8e18) at ./core/templates/cowdata.h:273
#3  0x00005555587ced4d in CowData<char>::operator= (this=0x5555637a8e18, p_from=...) at ./core/templates/cowdata.h:180
#4  0x00005555587c91aa in CharString::operator= (this=0x5555637a8e18, p_str=...) at ./core/string/ustring.h:244
#5  0x000055555cfbc693 in ShaderRD::initialize (this=0x5555637a8e10, p_variant_defines=..., p_general_defines=..., r_immutable_samplers=...) at servers/rendering/renderer_rd/shader_rd.cpp:774
#6  0x000055555cffe73f in RendererRD::GI::init (this=0x5555637a84b8, p_sky=0x5555637a7b80) at servers/rendering/renderer_rd/environment/gi.cpp:3443
#7  0x000055555cfb37a4 in RendererSceneRenderRD::init (this=0x5555637a7970) at servers/rendering/renderer_rd/renderer_scene_render_rd.cpp:1471
#8  0x000055555cfa7ca7 in RendererCompositorRD::RendererCompositorRD (this=0x555561fae800) at servers/rendering/renderer_rd/renderer_compositor_rd.cpp:348
#9  0x00005555587cea3d in RendererCompositorRD::_create_current () at ./servers/rendering/renderer_rd/renderer_compositor_rd.h:142
#10 0x000055555cda9215 in RendererCompositor::create () at servers/rendering/renderer_compositor.cpp:42
#11 0x000055555ceba9eb in RenderingServerDefault::_init (this=0x555561825140) at servers/rendering/rendering_server_default.cpp:216
#12 0x000055555cebae46 in RenderingServerDefault::init (this=0x555561825140) at servers/rendering/rendering_server_default.cpp:255
#13 0x000055555885e1f9 in Main::setup2 (p_show_boot_logo=true) at main/main.cpp:3156
#14 0x000055555885b81e in Main::setup (execpath=0x7fffffffe0d5 "/media/SSD/Code/git/godot-dev/bin/godot.linuxbsd.editor.dev.x86_64", argc=3, argv=0x7fffffffdd40, p_second_phase=true) at main/main.cpp:2685
#15 0x000055555878d77c in main (argc=4, argv=0x7fffffffdd38) at platform/linuxbsd/godot_linuxbsd.cpp:74

Using llvm (Debian clang version 14.0.6) works fine, so indeed, it seems we broke builds with gcc 12.

The stacktrace sounds relevant for you @RandomShaper @hpvb
Still very puzzled at how a simple cleanup PR removing unused headers would cause this, but if it's a compiler bug, who knows... Maybe it was only working up until now by pure chance
Would be good to try to narrow down further what part of be86ce3 triggers this. From reading the diff I'd guess the removal of Semaphore in ResourceLoader + its use of some forward declares may be playing nasty?

@xsellier can you tell us how exactly you build the engine? The exact scons command you use, and the versions for gcc, linker, etc you use?
This does seem like a toolchain bug of some kind, but I'd like to know exactly what the bug is, we might be triggering it elsewhere too.


Bug: Memory Leak in DuckDB Postgres Extension

Kùzu version
master branch
What operating system are you using?
Ubuntu 22.04.5 LTS
What happened?
The DuckDB postgres extension can leak memory as it does not call PQclear on PGresult pointers in certain cases (such as whenever it is used to execute a COPY FROM). This can be caught in our CI when we run the test postgres~test~test_files~postgres.ScanPostgresTable with LeakSanitizer enabled. It can also be caught if we run the same test with Valgrind, below is the error message:
==401623== HEAP SUMMARY:
==401623==     in use at exit: 1,912,987 bytes in 24,775 blocks
==401623==   total heap usage: 2,868,613 allocs, 2,843,838 frees, 2,111,961,701 bytes allocated
==401623==
==401623== 648 bytes in 3 blocks are definitely lost in loss record 1,036 of 1,225
==401623==    at 0x484880F: malloc (vg_replace_malloc.c:446)
==401623==    by 0x26E280B3: PQmakeEmptyPGresult (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E344EE: pqParseInput3 (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E2B5A8: PQgetResult (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DEA5FB: duckdb::PostgresConnection::ExecuteQueries(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DD63CA: duckdb::PostgresTransaction::ExecuteQueries(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DC0A04: duckdb::PostgresSchemaSet::LoadEntries(duckdb::ClientContext&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DAA6B9: duckdb::PostgresCatalogSet::TryLoadEntries(duckdb::ClientContext&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DAACFA: duckdb::PostgresCatalogSet::Scan(duckdb::ClientContext&, std::function<void (duckdb::CatalogEntry&)> const&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DA86D3: duckdb::PostgresCatalog::ScanSchemas(duckdb::ClientContext&, std::function<void (duckdb::SchemaCatalogEntry&)>) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x1D3FF082: duckdb::Catalog::GetAllSchemas(duckdb::ClientContext&) (in /home/kuzu/duckdb/build/src/libduckdb.so)
==401623==    by 0x1D35875F: duckdb::DuckDBTablesInit(duckdb::ClientContext&, duckdb::TableFunctionInitInput&) (in /home/kuzu/duckdb/build/src/libduckdb.so)
==401623==
==401623== 6,792 (648 direct, 6,144 indirect) bytes in 3 blocks are definitely lost in loss record 1,186 of 1,225
==401623==    at 0x484880F: malloc (vg_replace_malloc.c:446)
==401623==    by 0x26E280B3: PQmakeEmptyPGresult (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E32C65: getCopyStart (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E33FDC: pqParseInput3 (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E2B5A8: PQgetResult (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E2BBC2: PQexec (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DE964A: duckdb::PostgresConnection::PQExecute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26DEBB24: duckdb::PostgresConnection::BeginCopyFrom(duckdb::PostgresBinaryReader&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E0C00D: duckdb::PostgresLocalState::ScanChunk(duckdb::ClientContext&, duckdb::PostgresBindData const&, duckdb::PostgresGlobalState&, duckdb::DataChunk&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x26E0DFB3: duckdb::PostgresScan(duckdb::ClientContext&, duckdb::TableFunctionInput&, duckdb::DataChunk&) (in /home/kuzu/.duckdb/extensions/ff3d6071e0/linux_amd64/postgres_scanner.duckdb_extension)
==401623==    by 0x1DA08D1C: duckdb::PhysicalTableScan::GetData(duckdb::ExecutionContext&, duckdb::DataChunk&, duckdb::OperatorSourceInput&) const (in /home/kuzu/duckdb/build/src/libduckdb.so)
==401623==    by 0x1DBD67EB: duckdb::PipelineExecutor::FetchFromSource(duckdb::DataChunk&) (in /home/kuzu/duckdb/build/src/libduckdb.so)
==401623==
==401623== LEAK SUMMARY:
==401623==    definitely lost: 1,296 bytes in 6 blocks
==401623==    indirectly lost: 6,144 bytes in 3 blocks
==401623==      possibly lost: 0 bytes in 0 blocks
==401623==    still reachable: 1,894,651 bytes in 24,765 blocks
==401623==         suppressed: 10,896 bytes in 1 blocks
==401623== Reachable blocks (those to which a pointer was found) are not shown.
==401623== To see them, rerun with: --leak-check=full --show-leak-kinds=all

There is an issue for this open in duckdb's repo, we should keep track of this.
Are there known steps to reproduce?
Run the test postgres~test~test_files~postgres.ScanPostgresTable with LeakSanitizer enabled or with valgrind.

We use duckdb as an intermediate when sccanning from postgres. Duckdb leaks memory since it doesn't clean the PGResult. To fix the memory issue, we may have to change the duckdb's postgres extension.


Only perform certain actions with managed storage if the VM is s…

…tarted up in a new cluster (not if it is just started up on a new host in the same cluster).
Description
Example: A VM that uses managed storage is stopped. The VM is then started on a different host in the same cluster. The Start operation fails.
To get around this issue, you must either start the VM up on the same host or on a host in a different cluster.
The reason is due to a slightly erroneous check in VolumeOrchestrator.prepare.
To solve this issue, we should be checking if the cluster ID changes, not if the host ID changes.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

How Has This Been Tested?
I noticed that I could not start a stopped VM that uses managed storage on a different host in the same cluster as the host it was originally running on.
After I changed the code (this PR), I re-tested the scenario. I can now start the VM up on a different host in the same cluster as the host it was originally running on. Also, I can still start it up on the same host as it was originally running on or on a host in a different cluster.
Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@blueorangutan package

@mike-tutkowski a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

I plan to write a Marvin test for this, but - in the meanwhile - wanted to get this PR opened so reviewers could provide comments on the production-focused code.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1803

@mike-tutkowski a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@mike-tutkowski a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1812

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1815

@mike-tutkowski a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@mike-tutkowski a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1843

@blueorangutan package

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1862

@blueorangutan test

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2457)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 107728 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2501-t2457-kvm-centos7.zip
Intermitten failure detected: /marvin/tests/smoke/test_certauthority_root.py
Intermitten failure detected: /marvin/tests/smoke/test_internal_lb.py
Intermitten failure detected: /marvin/tests/smoke/test_primary_storage.py
Intermitten failure detected: /marvin/tests/smoke/test_public_ip_range.py
Intermitten failure detected: /marvin/tests/smoke/test_routers.py
Intermitten failure detected: /marvin/tests/smoke/test_snapshots.py
Intermitten failure detected: /marvin/tests/smoke/test_templates.py
Intermitten failure detected: /marvin/tests/smoke/test_usage.py
Intermitten failure detected: /marvin/tests/smoke/test_vm_life_cycle.py
Intermitten failure detected: /marvin/tests/smoke/test_volumes.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermitten failure detected: /marvin/tests/smoke/test_host_maintenance.py
Smoke tests completed. 59 look OK, 8 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_add_primary_storage_disabled_host
Error
0.60
test_primary_storage.py

test_01_primary_storage_nfs
Error
0.12
test_primary_storage.py

ContextSuite context=TestStorageTags>:setup
Error
0.22
test_primary_storage.py

test_04_restart_network_wo_cleanup
Failure
4.00
test_routers.py

test_02_list_snapshots_with_removed_data_store
Error
1.17
test_snapshots.py

test_04_extract_template
Failure
128.40
test_templates.py

ContextSuite context=TestISOUsage>:setup
Error
0.00
test_usage.py

test_08_migrate_vm
Error
16.92
test_vm_life_cycle.py

test_06_download_detached_volume
Failure
137.58
test_volumes.py

test_01_cancel_host_maintenace_with_no_migration_jobs
Failure
1.14
test_host_maintenance.py

test_02_cancel_host_maintenace_with_migration_jobs
Error
2.34
test_host_maintenance.py

I doubt this Jenkins error has anything to do with this PR:

T E S T S
Running streamer.ByteBufferTest
Tests run: 400, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.082 sec - in streamer.ByteBufferTest
Running streamer.BaseElementTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.116 sec - in streamer.BaseElementTest
Running common.ClientTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.423 sec - in common.ClientTest
Running rdpclient.MockServerTest
Error in mock server: Received fatal alert: handshake_failure
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2038)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1135)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
at streamer.debug.MockServer.run(MockServer.java:122)
at java.lang.Thread.run(Thread.java:748)
Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.461 sec <<< FAILURE! - in rdpclient.MockServerTest
testIsMockServerCanUpgradeConnectionToSsl(rdpclient.MockServerTest)  Time elapsed: 0.456 sec  <<< ERROR!
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.Handshaker.activate(Handshaker.java:529)
at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1492)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1361)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
at rdpclient.MockServerTest.testIsMockServerCanUpgradeConnectionToSsl(MockServerTest.java:166)
Results :
Tests in error:
MockServerTest.testIsMockServerCanUpgradeConnectionToSsl:166 » SSLHandshake No...

Going to open a new PR for this for 4.11.1.

@mike-tutkowski a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.


Move //gn/* to //*

Problem
To avoid clashing with automake's artifacts dir, certain common
directories were placed inside //gn. This required GN to look up all paths
twice, once at the normal location and once inside //gn.
By convention, the build system shared files are placed at //build and
non-shared files are //build_overrides. This allows dropping CHIP
into other projects as a submodule, as long as they follow the same
conventions.

Summary of Changes
Move //gn/build to //build now that automake is removed.

@saurabhst @hawk248 @BroderickCarlin @chrisdecenzo @jelderton