Using Filament with GLFW and shared context exits with BadMatch on Linux

Describe the bug
I'm embedding Filament into an GLFW based application on Linux (Linux arch680 5.2.1-arch1-1-ARCH #1 SMP PREEMPT Sun Jul 14 14:52:52 UTC 2019 x86_64 GNU/Linux). When sharing the GL context that's created by GLFW the application exists with a BadMatch error, see this output.
To Reproduce
I should create a test repository... hopefully I've got time to do that, but for now:

Compile filament as described in the readme.
Create a simple GLFW app.
Initialize filament like in this test app.
Run the application.

Expected behavior
A GLFW app that renders a triangle via Filament. I'm still diving into the code / documentation on how to correctly initialize and use filament in GLFW. I based my code on this example.
Desktop (please complete the following information):

OS: Arch Linux
GPU:  NVIDIA GTX 960
Backend: OpenGL

Additional Info
I think the BadMatch is caused because the GL context is created with a GLXFBConfig that doesn't match with the GLXFBConfig of the shared GL context. I've updated PlatformGLX.cpp  in such a way that it uses the GLXFBConfig from the shared GL context when it was given by the user.

Hi @roxlu, this isn't an issue specific to GLFW, it's more of a feature request for our context creation strategy on X to be more flexible.  Your tentative modifications to PlatformGLX.cpp seem reasonable to me; by querying the shared context, we can create a matching one.
Curious what others on the team will think.  Can you make a pull request?  That way it will be easier for my colleagues to look over your changes.

This is tricky because arbitrary user configs may not work. We could document what Filament expects.

Good point, Filament doesn't really care if they have stencil or depth but we do require an OpenGL 4.1 context.
@roxlu, with GLFW you should be able to set up context-related window creation hints to create a compatible context.  Check it out:
https://www.glfw.org/docs/latest/window_guide.html#window_hints_ctx
Try setting GLFW_CONTEXT_VERSION_MAJOR to 4 and GLFW_CONTEXT_VERSION_MINOR to 1.

Note that GLFW_SAMPLES should be 1, (Filament does AA in an offscreen buffer.)

@prideout
Thanks for your feedback. I created this pull request, please let me know if I'm doing this correctly.

Try setting GLFW_CONTEXT_VERSION_MAJOR to 4 and GLFW_CONTEXT_VERSION_MINOR to 1.
Note that GLFW_SAMPLES should be 1, (Filament does AA in an offscreen buffer.)

Yes I was using those indeed:
  glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
  glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
  glfwWindowHint(GLFW_SAMPLES, 1);

When I use these glfwWindowHints I'm getting the same issue.
@romainguy and @prideout thanks, I indeed think that having a list with the required context attributes would be very useful. Also having some super tiny examples would probably make it a lot easier to get a general idea how Filament works. The current documentation is amazing, but I'm talking more about guides/styles that speed up the process of learning how to use Filament.


[Feature request]Optimization: The data is too large

Is your feature request related to a problem? Please describe.
An excel document (200K) with more than 1,000 rows, after being stored as a luckysheet, the db field reached more than 13 million characters (more than 60 times enlarged).
Describe the solution you'd like
The style of each cell is stored separately and takes up a lot of space. Consider separating repeated cell configurations
问题：
一个1000多行的excel文档(200K)，存储成luckysheet后，db字段达到了1300多万个字符(扩大了60多倍)。
解决计划：
每个单元格的样式都是单独存储的，占用了很大空间。考虑分离重复的单元格配置

Duplicate of #418


All frame are !RawJpegFrame

Hi,
My goal is to save timed screenshot from rtsp stream camera.
I tried your MjpegSnapShotsMaker and SimpleRtspPlayer, I test many rtsp stream.
For example in VLC this : rtsp://rtsp.stream/pattern works well.
But when I try the example MjpegSnapShotsMaker I see that after the frame is received in the code:
(Program.cs - Line 62)
                   rtspClient.FrameReceived += (sender, frame) =>                     {                         if (!(frame is RawJpegFrame))                             return;
RawJpegFrame is always false.
I honestly don't understand how this property works so I will be grateful to anyone who can send me some suggestions.
I play with VS2019 .NET 4.6.1 in W10

Camera streams can be MJPEG or H264. I think you are getting H264 format frames. Check it out in debug.
Try https://github.com/inzi/rtspcapture/tree/Working/RTSPSnapshotMaker for your target

Same problem for me. Have you found a solution that works @lemorlenny ?

All of my frames are of type Audio,


feat: Allow policy authors to write policies that perform image verification using sigstore

Move LatestVerificationConfig from policy-fetcher to the sdk, so it can be used in the policies
Invoke wapc verify image call from the host
Fix kubewarden/policy-server#99

superseded by https://github.com/kubewarden/policy-sdk-rust/pull/33


Suggestions for this doc

For subchapter:
Convert the virtual disk to a fixed size VHD
Please note that as is described
https://docs.microsoft.com/en-us/previous-versions/azure/virtual-machines/windows/sa-upload-generalized
It exist s the command: Add-AzVhd
but this one does not create the VHD disk marked as HyperVGeneration V2., even if the original VM is at this version.
This has impact when trying to run the VM at an Azure VM.
Here my equivalent code to achieve the objective:
$vhdSizeBytes = (Get-Item $path).length
$diskconfig = New-AzDiskConfig -SkuName $DiskSku -UploadSizeInBytes $vhdSizeBytes -Location $location -OsType 'Windows' -CreateOption 'Upload' -HyperVGeneration "V2"
New-AzDisk -ResourceGroupName $resourceGroup -DiskName $name -Disk $diskconfig
$diskSas = Grant-AzDiskAccess -ResourceGroupName $resourceGroup -DiskName $name -DurationInSecond 86400 -Access 'Write'

Optimizations links:
Please note as well that a link to teams optimizations for VMs will be also very good to increase the value of this document.
https://docs.microsoft.com/en-us/azure/virtual-desktop/teams-on-avd
If there exists other optimizations, it is my request for you to link them here as well.

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

ID: 1b9c0d7a-bbf5-eccc-f2ca-a825bf42c82f
Version Independent ID: 58aa93af-4030-1541-a14c-c66c683ccf7c
Content: Prepare a Windows VHD to upload to Azure - Azure Virtual Machines
Content Source: articles/virtual-machines/windows/prepare-for-upload-vhd-image.md
Service: virtual-machines
Sub-service: disks
GitHub Login: @genlin
Microsoft Alias: genli

Hi @J1Yesid,
Thank you for your feedback. We will investigate and update the thread further.

@J1Yesid
The document you are referring to is no longer updated.

You need to refer to the below links which are linked to actual document
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/upload-generalized-managed
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-upload-vhd-to-managed-disk-powershell


Explore robustfill to improve change format

The idea here is to let the instruct Optimus how to format a string. For example a user could input something like
+52 1 55 55555555 to transform a list of numbers<PHONE_NUMBER>,<PHONE_NUMBER> to +52 1 888888888, +52 1<PHONE_NUMBER>
Here an implementation using pytorch
https://github.com/yeoedward/Robust-Fill

Closing. Out of scope.


[Bug]: INTERNAL FAILURE! Please upload the log file"C: Users lenovo Downloads MLInstaller 23-7-11 15-33-05.596.log'when requesting support.

All of the following criteria must be met

[X] All Requirements must be installed.
[ ] Full Latest.log file included. If no file exists then leave this unchecked and state so.

All of the following are optional to answer

[X] Tried reinstalling the Game.
[X] Tried reinstalling MelonLoader.
[X] Tried restarting PC.
[X] Was able to see the Start Screen.

Describe the issue.
每当我尝试将MelonLoader安装到BONEWORKS上时，它只会说内部故障，并在我的下载
中创建一个.txt文件[MLInstaller_22-1-18_13-38-40.771.log]
日志文件中内容为：SHA512 Hash from Temp File does not match Repo Hash!
Did you attach your log file?

[ ] Yes, I attached my log file to the text box above.
[ ] No, I could not find a log file at {Game_Directory}\MelonLoader\Latest.log

duplicate with #490


Feature request: glfwGetX11Compositor

I've been writing code for the Raspberry Pi recently, and found that their official operating system comes with a desktop compositor enabled that has a large negative effect on OpenGL performance (of the order of 20ms per frame!).
What I'd like to be able to do is detect if a system has a compositor enabled, and display a warning message recommending that the user disable it for maximum performance. Is this something glfw could support? I tentatively propose something like this to be exposed by the X11 section of glfw3native.h:
GLFWAPI Window glfwGetX11Compositor(void)
{
    _GLFW_REQUIRE_INIT_OR_RETURN(None);
    return XSetSelectionOwner(_glfw.x11.display, _NET_WM_CM_S0);
}

It probably doesn't work as written; I understand from the documentation we need a different Atom depending on which screen we are using, but I'm not familiar enough with X11 programming to know how to achieve that.
Aside: I see glfw tries to get the window manager to bypass any compositor when making a window fullscreen, but that mechanism doesn't seem to be working on the standard Raspberry Pi OS setup...

I understand from the documentation we need a different Atom depending on which screen we are using

We already have this atom as _glfw.x11.NET_WM_CM_Sx, as it was needed for window transparency.

Aside: I see glfw tries to get the window manager to bypass any compositor when making a window fullscreen, but that mechanism doesn't seem to be working on the standard Raspberry Pi OS setup...

Unfortunately all we can do within the scope of X11 is make the suggestion.
If we add this, I think it should be platform-independent. All the logic for detecting this on platforms where a compositor is not guaranteed is already in GLFW. It was added with framebuffer transparency.

We already have this atom as _glfw.x11.NET_WM_CM_Sx, as it was needed for window transparency.

I saw that existed, but didn't know what the "x" at the end meant... so my function should just look like this?
GLFWAPI Window glfwGetX11Compositor(void)
{
    _GLFW_REQUIRE_INIT_OR_RETURN(None);
    return XSetSelectionOwner(_glfw.x11.display, _glfw.x11.NET_WM_CM_Sx);
}

If we add this, I think it should be platform-independent. All the logic for detecting this on platforms where a compositor is not guaranteed is already in GLFW.

I wasn't sure how possible it would be on other platforms, but that sounds good. Would the API expose a boolean check (e.g. "is there a compositor?") rather than a handle?

so my function should just look like this?

Yup.

Would the API expose a boolean check (e.g. "is there a compositor?") rather than a handle?

Yes, that seems best.


Add a database via superset_config.py script

I'm running superset in a docker container with my config in superset_config.py script.
Currently, there's just one database wired to the app which contains superset's default schema.
In order to build charts, I'd like to know if there's a way to add a new database via the superset_config.py  in a similar manner as we do with the examples database instead of doing so through the UI.

There's no way to add a database on the config (unless you write some code around it). Yet, we will soon implement an API endpoint to support this

After a bit of digging around I found the command superset set_database_uri -d <db_name> -u <db_uri> useful. I'm running it after superset db upgrade and init commands in a bash script within the Superset container and it adds a new database entry for me. Is that okay?

Oh yes, totally forgot that one, yes it's fine


Move merging of workflow section into webhook

Currently, the merging of workflow section is done in controllers of related CRs. We want to move the merging logic into webhooks to make the process cleaner.
Depends on: #160

I have added a new version of this patch that can also work with structures by calling the function for adding values from TempestRun section recursively. There is maybe needed a bit more generalization to get the functions working for all resources, but for Tempest this version should work.


Fixes sea-orm-cli exit status

PR Info
Fixes issue #1342
Bug Fixes
If Command::new child process exits with non 0 exit code then propagate error.
Changes
changes 2 files
sea-orm-cli/src/commands/migrate.rs and sea-orm-cli/src/commands/generate.rs

Thanks @billy1624 for helping me with the PR.

Happy to help! Feel free to pick another issue to work on :)
See you around


Edit: Changed spellings of worry and definitely

Found mistakes of two words corrected it 👩💻

Fixes Issue

Closes #<issue_number>
Changes proposed

Screenshots

Note to reviewers

Thank you for your concern, We will fix when original documentation start. This are just temporary but not your contribution (open source)


Add flanger to functional.py

Hi ,
Regarding the issue ( Reducing dependency in Sox - #260  ),
This pull request is new version of existing pull request #629
@mthrok I have made the changes to batch and torch script test .
Now taking random input generated from a seed

Thanks, looks like there is something not working for 2D input. The tests are failing. Could you take a look at it?

@mthrok , Fixed the issue , now all checks passed

@cpuhrsch -- you mentioned offline performance improvements. can you point them here?


Lecture Series on HTML

Awesome Lecture Series on HTML with code of every Tutorial.

@yashovardhanagrawal, As suggested by you I have made the Changes and uploaded the Content to Google Drive and Added the link to that in readme.md.
So i will create another Pull Request for that.

@art-hack no need to create a separate PR, just commit the changes in the branch from which you have sent this PR, it will be automatically reflected here.


Support VoIP

Set up a call stack to be able to support VoIP in ios Vector

Done in https://github.com/vector-im/vector-ios/commit/072eb1cc0558ef0b602f0a58c72d57f2c33723c5


Add Sample for Context Menu with Extended View Support

Closes #267

This is a really nice sample, thank-you @DarkCreekWay! Thanks so much for contributing!

Great that you like it. Kudos to @Countryen for bringing up the initial code in the related issue.


Feature Request: Replace Python Generator with Rust/Cargo

Appreciate all the work for certain! Would be awesome if the generate was callable from cargo instead.  Maybe even as a single binary.  This way, perhaps, could cargo install the generator, and then generate the files directly inside an existing project.

Well, obviously a typesafe Rust generator would be nice to have. The main reason I wrote it in Python was speed of development, which was definitely a plus, although it already catches up in some places (as you have seen in the issues you filed - thank you again).
One aspect going in favor of a rust generator now would be that we can already generate the whole Discovery schema with the existing generator and bootstrap a typesafe Rust compiler this way. And we already have the target in mind, i.e. what the generated code should (or could) look like.
I will take a look at the PR you've filed.

I left some comments on #4 -- what do you think, are you interested in collaborating on this? Or do you have a different idea of how to achieve it?

Yes would like to help where I can.  I would suggest we first try and get a working port of the existing code, then optimize. I have very little experience with parsers and what not on rust.

I saw your updates, and agree that a port of what we have is probably the fastest way forward to get what you asked for initially (calling it in the build process, IIRC).
So while completely refactoring and being fancy is maybe not productive, I think we can still put a bit more attention to making the code more understandable than I did in the first version :-) (should be a low bar)


Updated nouns.rst to map resource (noun) with action (verb)

The nouns.rst has been restructured to show the action (verb) that a resource could perform.

Creating a new PR


Consider adding payment method support on podcast:funding

It should be possible to note which payment method types are supported for a given method of funding. Users are strongly motivated to use payment methods which are well-supported in their area. PayPal availability, for instance, may drive South American users to make contributions. Credit Card support may drive US and UK users to make contributions. Some countries may have very high non-card payment method adoption (iDEAL, SEPA, FPX, WeChat Pay, etc.).

While it could be useful, I'm not sure that's such a good idea. There are hundreds of payment methods out there and they likely come and go as well. I wouldn't trust podcasters to correctly set the payment methods their payment provider supports. Such data would have to be manually updated by creators and would quickly get out of date (thus unreliable).

There are hundreds of payment methods out there and they likely come and go as well.

Yeah, this is what makes me hesitant to put limitations around this tag. I think the only thing we can specify with any certainty that will work is URL.

Getting too specific on this tag seems risky for an additional reason - that it brings attention to this in the eyes of the app stores.  Right now it's largely ignored.  But, the more specific the payment data on this tag gets, the more likely they are to see it as an unauthorized in-app payment.

I'm not sure I'd be concerned about app store fallout here, there's a lot of indirection here that Apple would be hard pressed to argue past. In fact, it could have the opposite effect if Apple Pay and friends were formally recognized.
I don't have especially strong feelings here, but experience has proven that payment methods drive adoption around features that move money.

Do you have a more formal idea of how that would look that you could post?  I'm interested in what you have in mind.

I think the design of the tag should be expanded to be a composite tag, which would allow it to be extended in the future more easily, and enable folks (e.g., RadioPublic) who already extend this functionality to write their own extensions on top of <podcast:funding>:
<podcast:funding href="...url...">
  <podcast:fundingCta>Donate</podcast:fundingCta>
  <podcast:fundingPaymentMethod type="paypal" />
  <podcast:fundingPaymentMethod type="card-payments" />
</podcast:funding>

Perhaps something like podcast:fundingPaymentMethod would be more useful outside of this spec and be its own sub-spec, but having the root tag be a wrapper that accepts other tags would enable this.

I like this.  We can look at doing this in phase 2 in a way that doesn't break simplicity for those that just want the dead simple href/slogan version.


Automate the EventWrapper DynamoFormat using shapeless

So we don't have to add another case every time we add a new event type we want to consume.
Also:

bump Scala to 2.11.9
Move all Dynamo formats into one file, so we only need one import

Tested manually in UAT, looks good.

This PR was successfully deployed to production by CircleCI build 177 at 2017-04-13 09:59 BST.


How to set Rocketmq  enabled: false in application.yml

Which Component
spring-cloud-stream-binder-rocketmq
Describe what problem you have encountered
How to set Rocketmq  enabled: false in application.yml ?
The console println log:
[NettyClientSelector_1] INFO  RocketmqRemoting - closeChannel: close the connection to remote address[] result: true
Describe what information you have read

hi, what did you mean about the enable?
Enable RocketMQ Binder or Enable Binding, pls describe it clearly. Thanks

hi, what did you mean about the enable?
Enable RocketMQ Binder or Enable Binding, pls describe it clearly. Thanks

I haven't config the spring.cloud.stream.bindings AND spring.cloud.stream.rocketmq , But the console always print the log:
[NettyClientSelector_1] INFO RocketmqRemoting - closeChannel: close the connection to remote address[] result: true
How to make the Rocketmq  not startup

Did you mean adding spring-cloud-stream-binder-rocketmq dependency and do not want to startup RocketMQ Connection?

try this configuration:
spring.cloud.stream.bindings.<youtbindingname>.consumer.auto-startup=false

Why did I configure it and it didn't work

try this configuration:
spring.cloud.stream.bindings.<youtbindingname>.consumer.auto-startup=false


Added 500px to Demo

I Added 500px to Demo. They use a OAuth1 authentication method.
Please & Thank you,
Fareed

thanks

@FareedQ did you try it,that's not compil...


[Cleanup] change all direct print to LOG_* macro

This PR changes all direct printf/cout calls and original logging schema to LOG_* macro for code cleanup. In addition, direct assert calls change to PL_ASSERT macro.

Coverage decreased (-75.9%) to 0.0% when pulling 2f504fd7c1f9d9fd6b4b9220c470579889fb5b9c on ksaito7:cleanup into 292a96d0f5df5d3e42bb633af2431b72c938e497 on cmu-db:master.

Coverage decreased (-75.9%) to 0.0% when pulling f6258a2c35b808e6dc4a34efcb3a18a787e63105 on ksaito7:cleanup into 292a96d0f5df5d3e42bb633af2431b72c938e497 on cmu-db:master.

Coverage decreased (-75.9%) to 0.0% when pulling a46174e2e1dd76ba53817d142aae813ba1e1d2f6 on ksaito7:cleanup into 292a96d0f5df5d3e42bb633af2431b72c938e497 on cmu-db:master.

Coverage decreased (-75.9%) to 0.0% when pulling a46174e2e1dd76ba53817d142aae813ba1e1d2f6 on ksaito7:cleanup into 292a96d0f5df5d3e42bb633af2431b72c938e497 on cmu-db:master.

Coverage decreased (-75.9%) to 0.0% when pulling 1423d810daa353a039c34a97efec95dd6f97356e on ksaito7:cleanup into 292a96d0f5df5d3e42bb633af2431b72c938e497 on cmu-db:master.

Coverage decreased (-75.9%) to 0.0% when pulling 969c5042b7c34f050c77741bc24f870b56ce6455 on ksaito7:cleanup into 292a96d0f5df5d3e42bb633af2431b72c938e497 on cmu-db:master.

Coverage decreased (-0.2%) to 75.616% when pulling 774a3cb325c7d86d189cff41365683d006c1f9da on ksaito7:cleanup into 292a96d0f5df5d3e42bb633af2431b72c938e497 on cmu-db:master.

I resolved the conflicts by hand on Github but it doesn't look like that triggered the build.

Coverage decreased (-75.9%) to 0.0% when pulling cd1490fa3fb3c0fe646a6652c489dfa1921be8b7 on ksaito7:cleanup into 94434353ab96c140c7a7badc26dd5f1e64ff897d on cmu-db:master.

Rebased + merged manually.


Requirements for cmg connection point role?

Hi! I deployed the cmg connection point role (only) to a new site server (MECM 1910 (5.0.8913.1000)). The connection point just stayed disconnected from a functioning cmg. The log file sms_cloud_proxyconnector.log showed: "missing role certificate. reload in next cycle" every 60s. I ended up installing the mp role as well on the same server, and the cmg cp started working as intended. The certificate store on the site server has now a "cloud proxy connector" certificate under SMS\Certificates, which wasn't there before I installed the mp role. I've removed the mp role and its prerequisites and the cmg cp is still working. We're using "enhanced http" mode for client communication.
Is it not supported to run the cmg cp role independently?

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

ID: 7fb371d2-b1f1-68ca-ed95-abf37e3ecf28
Version Independent ID: cd7fc055-b430-3a4a-1002-c69087f30714
Content: Set up cloud management gateway - Configuration Manager
Content Source: sccm/core/clients/manage/cmg/setup-cloud-management-gateway.md
Product: configuration-manager
Technology: configmgr-client
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

Thanks @mbiebric for taking the time to share this with the Configuration Manager documentation team. I’m sorry that you’re having problems, and I want to make sure it gets to the right people that can help. There are a couple of options available to provide the best level of support for this:

Post on Configuration Manager forums. These are moderated by our community MVPs who are very experienced, knowledgeable, and helpful.
Use Microsoft Support to search for the issue, or open a case with professional support.
Contact your Microsoft Premier team, such as a Premier Field Engineer or Technical Account Manager.
I'm closing this issue as there's nothing actionable for docs at this time.

One quick thought, see the article on CMG certificates, specifically this section on the Client authentication certificate. It has a note about how that cert is required on the CMG connection point.

Thanks for the quick reply. The issue is resolved in my case, but I wonder whether it's a bug. I'll try the TechNet/Tech Community forum.
Regarding the doc you referring to, it states:
"If clients use Azure AD authentication, or you configure the management point for Enhanced HTTP, this certificate isn't required."

I found a way to make this occur on a stand alone server and speed the process. It appears there is a 6 hour window before the Cloud Proxy Certificate is issued and communication occurs. In SCCM Open "Configuration Manager Service Manager" and find your primary Under Components I cycled SMS_CERTIFICATE_MANAGER and SMS_CLOUD_SERVICES_MANAGER and the certificate instantly appeared in my stand alone Cloud Connection Point. You will also notice that on that server the mpfdm.log will show errors as that server is trying to reach back to the primary to verify the files from the connectors outbox hits the primaries inbox. If you create a SQL logon for the Cloud Connector machine with public and read rights to the database, specifically the primary, it clears those errors up.


datachannel intermittently closes with an error

First, I want to say thank you for building nice project! I have an issue that datachannel intermittently closes with an error.
Webrtc: 0.1.1
Rust: 1.55 stable
Case 1.
[2021-10-05T17:11:04Z WARN  webrtc_sctp::association] [] failed to read packets on net_conn: Alert is Fatal or Close Notify
Case 2.
[2021-10-05T17:16:18Z WARN  webrtc_sctp::association] [] failed to handle_inbound: chunk too short
In my case, I used datachannel with max_retransmits = 0, ordered = false. These errors occurred even without heavy load. When I use other webrtc libraries (pion, aiortc, werift), I don't have the issue that datachannel closes

Thanks for reporting this issue. Do you have webrtc-rs log ? You can take a look examples to see how to enable webrtc-rs log


MPEG-4: ProRes RAW support

Fix #1008.
Looks like there are 2 flavors or RAW (RAW and RAW HQ), @retokromer any idea if aprh 4CC is for RAW or RAW HQ (or both)?

From https://forum.blackmagicdesign.com/viewtopic.php?f=2&t=71762&start=50#p402542, now trying to bet with aprh for "RAW HQ" and aprn for "RAW".

As long as I know aprh = RAW HQ and aprn = RAW.

As long as I know aprh = RAW HQ and aprn = RAW.

Yes, I confirm, the files I have seen so far are that way. I don’t have seen yet any aprx, aprs or apro, mentioned in the referenced Blackmagic Forum.

Yes, I guess it’s the way to go.

For référence RAW and RAW HQ are mentioned here but not the others.


Add missing external reference type release notes to proto schema

fixes #266

Closed as https://github.com/CycloneDX/specification/pull/531 was merged.


update arch diagram

new architecture diagram and accompanying steps
simple readme changes

Suggestion:  s/Diction/Dictation/


Multi GPU

Are there any examples I can refer to for multi-GPU operations and reductions? e.g.: Tensor Parallelism

No example right now. You can use p2p memory addressing in Triton by just providing to the kernel a base pointer to memory on another device. Feel free to raise an issue if P2P doesn't work in Triton; we'd address it quickly


remove all occurances of Rinkeby from the repo

boba_rinkeby: {
      url: 'https://rinkeby.boba.network',
      bridgeCounterpartUrl: 'https://rinkeby.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', // public RPC
      accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
    } as any,

Issue Type

[x ] bug report
[ ] feature request

Current Behavior
Search for https://rinkeby.infura.io/v3/
Expected Behavior
No more Rinkeby :-)
Steps to Reproduce

Suggested Fix

Also remove ropsten.infura.io

Sure thing, any testnet I should add?
Are we going for Sepolia once we are ready?

Just FYI @InoMurko would replace then all occurrences (config files, code, markdowns etc.) with just mainnet.
Is that what you want?


Fixed bugs for version 0.4.0.

Closes #580.

The pull request title should be modified too, describing what is really done in this PR.

bors r+


pgrok: init at 1.3.3

Description of changes

pgrok is a self hosted ngrok alternative written in go.
https://github.com/pgrok/pgrok
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg build pkgsLLVM.pgrok


Simply setting the defaultUrl-option in the CHROME viewer (PR 12470 follow-up)

This should really have been done as part of PR #12470, since it's now possible to directly set the defaultUrl-option without having to fallback to var-usage.

/botio-linux preview

Looks good!


Notional Line Finder Doesn't Belong Here

Notional line finder uses scipy yet wouldn't account for maybe 1% of use of this library.
Propose creating a 3.0.0 that removes the line_finder package from the library so that packages that use the rmq or rounding functions don't have to dep on scipy and numpy.

Apps that do rely on the line_finder can pin the dep to the 2.something version.


Incorrect CPU usage detection on shared hosts

The worker currently monitors CPU usage and shuts down if the usage exceeds a certain threshold. It determines CPU usage using the function psutil.cpu_percent(0.5), as shown here: livekit worker code. This method works well on dedicated hosts, but on shared hosts (e.g., Render.com), it returns the CPU usage of the entire base system rather than the specific instance container. If the base system is shared among multiple containers and is under heavy load, the worker may incorrectly interpret this as high CPU usage for its instance, leading to unnecessary shutdowns.

More insight: https://stackoverflow.com/a/46213331/5522263


Deploy BCDP on laptop to test

Subsumed into https://app.zenhub.com/workspaces/unity-analytics-6230deb25d28ca001efd6d6f/issues/unity-sds/unity-analytics/10


Portable linux version starts a new X11 session

VS Code Version: 1.67
OS Version: 5.4.48-gentoo
Window Manager: dwm

When running code the effect is the same as running code; startx(with normal code)
Steps to reproduce:

get https://update.code.visualstudio.com/1.67.1/linux-x64/stable

su
chown root chrome-sandbox
chmod 4755 chrome-sandbox
exit
./code

An older version of vscode doesn't have this bug. The one that worked I deleted, when I downloaded the new one. I tried running versions 1.0 - 1.4, but I'm getting error while loading shared libraries: libnotify.so.4: cannot open shared object file: No such file or directory

Please install the missing dependencies, they are required by the runtime.


Use RUN instead of ADD

Using ADD automatically invalidates the cache of subsequent command in the docker build, even if the version has not changed.
I recommend using RUN with curl so that the cache is only invalidated when the version in the URL actually changes.
https://docs.docker.com/engine/reference/builder/#add

Thanks for your suggestion; however, I'd rather not implement this change.
I've explained in https://github.com/krallin/tini/issues/103 if you'd like to check this out.
Cheers,

I completely understand the desire to make README instructions work by default for the broadest possible audience and having curl installed is an extra step. That said, most people have to figure out how to install some software in their docker image, so it doesn't feel like a big leap to me to ask them to install curl. Fair enough if you disagree, this is your project and thank you for making something so useful.

RUN is a much superior approach when build performance and a minimal number of layers are desirable (in fact, that's often how I install Tini myself when I use it in production) .

Given the fact that you agree the documented approach isn't ideal for production, how would you feel about adding a separate section/note at the bottom of the readme that discusses the ADD cache footgun and has a single example with using RUN curl... (instead of changing it everywhere like I did in this PR)?


Implement rand traits for Rng

In order to use the hardware RNG with external code that accepts implementations of RngCore and CryptoRng, these traits should be implemented for the Rng struct.

Looking at Espressif's documentation about the ESP32 RNG, I learnt that the system has one random number generator, that produces randomness of different quality depending on conditions:

real random data when any of WiFi, Bluetooth or the special bootloader entropy source is enabled
pseudo random data if not

Hence, the CryptoRng trait must only be usable if one of the above conditions is true. I wonder what would be the best way to do this?

let the CryptoRng impl check the conditions, and return an Err if hardware-backed randomness cannot be guaranteed
let the CryptoRng simply turn on the bootloader entropy source

I guess the first option is better since the behavior for the second option might be somewhat surprising. (We could have it in the docs but often people only look into the docs if something isn't working as expected)

We have implemented the necessary trait(s) in #1122, however (as is already documented) we have not met the necessary preconditions to produce true random numbers. Should we consider this issue closed regardless, or should we keep it open until this changes? I think it's fine to close, but just want to double-check with others.
CC @bjoernQ @MabezDev

however (as is already documented) we have not met the necessary preconditions to produce true random numbers. Should we consider this issue closed regardless, or should we keep it open until this changes? I think it's fine to close, but just want to double-check with others.

AIUI, that means the CryptoRng trait should not be implemented now, only Rng should be implemented now.
This issue should be closed IMHO, and a follow-up issue to implement CryptoRng should be opened.


Hard to see the dialog prompting to refresh the blob editor in HC modes

Storage Explorer Version: 1.5.0
Platform/OS Version: Windows 10/ MacOS High Sierra/ Linux Ubuntu 16.04
Architecture: ia32
Build Number: 20181025.6
Commit: a287009c
Regression From: Not a regression
Steps to Reproduce:

Switch theme to HC modes.
Check 'Use AzCopy for Improved Blob Upload and Download'.
Upload one blob  -> After succeeding, check the dialog prompting to refresh the blob editor.

Expected Experience:
Easy to see the dialog in HC modes.
Actual Experience:
Hard to see the dialog in HC modes.

This is pretty suggestive. Our color usage is very limited in HC themes. We're using the same colors as the "infobar" anyway. Won't fix.


Find process got stuck in the background and led to high CPU usage

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[ ] Linux
[x] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[ ] bash
[ ] zsh
[x] fish

Problem / Steps to reproduce
After using fzf in shell, a process of find is left behind and consumes a whole core of cpu

This seems to be a process run by fzf. Once it gets hung there, even kill -9 does not work on it. I can only restart my whole machine. After restarting, I cannot reproduce this problem. But it might happen again unless I figure out what's the problem. Appreciate if you could provide some clues.
Another question, in the shell, I use Ctrl-T to call fzf. When this bug happens, it won't go back to shell prompt after ESC. fzf does quit but I have to Ctrl-C to get back to shell. Not sure if this is related but feels suspicious.

I'm not sure what's going on there. But I guess you'll have better luck if you build fzf from the latest source which includes #2382.

Thank you. I will give it a try, though it's different in my case where find instead of fzf does not quit properly.

So, does anyone still care about this issue now? I am a NeoVim user and I experience high CPU usage too when scrolling on the result list.


fix pipeline

fix error caused by https://github.com/Azure/azure-sdk-for-python/pull/27994

/check-enforcer override


[Feat]: support CVE scans using SBOM when available

Is your feature request related to a problem? Please describe.
zot has support for OCI artifacts (v1.1.0) and when a SBOM is pushed, we can leverage the SBOM scanning ability from trivy to do:

a lightweight scan
CVE scans even when storage is remote (since no unpacking is needed)

Describe the solution you'd like
If remote storage is detected and a SBOM artifact is found, then use that for CVE scans.
Describe alternatives you've considered
No response
Additional context
No response

trivy sbom <sbom-file>

If an SBOM is available via referrer for an image, then "download" it
Else, cannot scan the image
If 1. then CVE scan against SBOM

^ first cut.

Hi @rchincha
I am willing to work on this issue.
From what I can understand, we have a ScanImage method which has been implemented for trivy.
I think the following logic flow will satisfy this requirement:

Check if we have remote storage.

If not, proceed to scan as already implemented.
If we detect remote storage, check for presence of SBOM as reference.

If we have SBOM as reference, proceed to scan using the SBOM with trivy - to be implemented
If not, proceed to scan the image as already implemented.

Please let me know if I can proceed with the implementation.


ETA calculation update

Background
We need to significantly improve the accuracy of our estimated times to provide users with a clear countdown. Achieving a 99% accurate estimation, whether the path is slow or fast, within 20-30 seconds is crucial.
Current data of the accuracy of our estimated times [NEED TO ADD]
The new estimation time should be calculated based on:

[As is] The current liquidity level of the router on the directional chain.
Past 20 transfer statistics (#5966) for actual time durations.
Router activity calls, including:
a. A list of recently initiated transfers and their associated router addresses.
b. The duration of inactivity for the router.

Other ideas:

Transfer size
Transfers initiated in the past 3-4 days on currently active routers only
The available router's liquidity must be adjusted by the volume of transfers currently in processing
Difference between estimated and actual time on this route (past 3-4 days)
Dummy variable - actual errors

Product Spec: https://www.notion.so/connext/1-ETA-f434c48e3054455da73dc3a560875c32?pvs=4#b1f5b5132d2b41c3aa6b54706dda9924
Linked Issues & Documentation
Connected to #5966 and #5736

Current
This is what our estimates currently include.
1) Query idle router liquidity
Current idle liquidity of the asset across all routers on the destination chain is the liquidity that should be available for use in fast path. Idle liquidity is the amount deposited - amount removed - amount in flight. Notice this already subtracts in flight liquidity (liquidity that is currently unavailable because it was used to boost a previous transfer and the funds have yet to reconcile for the router).
Multiple routers can provide liquidity for a single transfer - this is limited to 3 by the network right now. So the max available router liquidity at any time is the idle liquidity of the top 3 routers.
We query our DB for this idle liquidity which refreshes its view every 15 seconds. This can be improved by reading from another indexing layer like a subgraph or reading from a node directly via RPC call. These options will introduce other tradeoffs like cost, uptime, and speed of the estimate being returned.
2) Factor in router availability
Routers can provide idle liquidity but experience downtime. When routers are down, we have an incomplete view of the useable idle liquidity that can be used for fast path. We currently use the following logic as a proxy for router availability, overriding a "fast path" estimate if a majority of the recent transfers have actually been slow.

If estimated latency is "fast path", check the status of the last N=20 transfers within the last 3 hours
If >50% of these transfers were completedSlow, then display a "slow path" estimate instead

3) Display time ranges
Along with the fast/slow determination, we also provide a median and a range for fast/slow paths for the last N=20 transfers of each type.

If estimated latency is "fast path", then display the median times for the last N fast transfers rounded up to minute precision
If estimated latency is "slow path", then display the median times for the last N slow transfers rounded up to hour and minute precision

Improvements to consider

Exclude idle liquidity of routers that haven't boosted any transfers in the last X days from 1)

For Chimera, there should be router telemetry endpoints where down routers can more easily be identified

Specify a tighter range of historical transfers to look at for 2) and 3). e.g. exclude transfers that are 20% more/less than the amount being estimated for (right now we look at last N transfers of any amount)
Express estimates with confidence intervals based on historical data. e.g. there is a 95% chance this transfer will take M minutes


brew.sh: tweak lsb_release parameters.

Fixes #12642

Review period will end on 2021-12-30 at 13:08:16 UTC.

Review period skipped due to critical label.


UI does not reload the page when behind an Authelia

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I have the web UI behind authelia and when the session has expired authelia will respond to traefik with a denied request if not verified.
I used "install app" in chrome on android to add the web UI to my phone home screen. I'm not exactly sure of the flow other than it appears that the web UI doesn't reload the page when the connection is 401 and because of that I can't re-authenticate within the same app.
Clicking return or refresh doesn't change anything the error remains the same.

Describe the solution you'd like
A clear and concise description of what you want to happen.
I'm not sure of the technical parts I assume it needs to reload the page but I'm not sure if because I installed it as a web app that it makes it harder for it to do a refresh and redirect to the authelia login page.
The redirect to the login page is automatic when trying to access a page behind traefik as it handles that using the forward authentication capabilities.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I have to go to some other app behind authelia or directly to authelia to sign in then I come back to the zwave web UI and it's working without a reload.
Additional context
Add any other context or screenshots about the feature request here.
I'm sure this isn't just an issue with Authelia and is likely an issue with all authentication providers that sit in front of the zwave web UI.

Could be a duplicate of: https://github.com/zwave-js/zwave-js-ui/issues/3427 ?

Unfortunately I have no solution for that yet, subscribe to that issue so you will get an update if I find one (closing this as it's a dup)


fix(stacking): fix "Assertion failed" error when calling .stack and .canStack

Description
When integrating the new @stacks/stacking npm package I am having an issue with the client.stack  and the client.canStack methods, both are throwing [Error: Assertion failed].
After some debugging, it looks like the error is coming from this call https://github.com/blockstack/stacks.js/blob/a6b7da0586caa893c7cdf2ef4a3011de3248afe8/packages/stacking/src/index.ts#L319.
hashMode returned by const { hashMode, data } = decodeBtcAddress(poxAddress); is 0 and calling bn.js new BN(hashMode, 10).toBuffer() to get the buffer on 0 is throwing an error
Related issue https://github.com/blockstack/stacks.js/issues/898.
Example:
Following the stacking tutorial and doing a simple operation like this:
const stackingClient = new StackingClient(
  "STRW09277YXKS1GZFT7QQSQ7GNWS2M4S3CG5V6ZT",
  new StacksTestnet()
);

const stackingEligibility = await stackingClient.canStack({
  poxAddress: "tb1qa96uwhml8rxfees4ggn98z55xlmdxnrxhe60n2jl29vyg5txcnts36xrr2",
  cycles: 1,
});

For details refer to issue #123
Type of Change

[ ] New feature
[x] Bug fix
[ ] API reference/documentation update
[ ] Other

Does this introduce a breaking change?
No
Are documentation updates required?
No
Testing information
Provide context on how tests should be performed.

Is testing required for this change?

I tested to manually patch the file in my project and the error was fixed with this change.

If it’s a bug fix, list steps to reproduce the bug

const stackingClient = new StackingClient(
  "STRW09277YXKS1GZFT7QQSQ7GNWS2M4S3CG5V6ZT",
  new StacksTestnet()
);

const stackingEligibility = await stackingClient.canStack({
  poxAddress: "tb1qa96uwhml8rxfees4ggn98z55xlmdxnrxhe60n2jl29vyg5txcnts36xrr2",
  cycles: 1,
});

Checklist

[ ] Code is commented where needed
[ ] Unit test coverage for new or modified code paths
[ ] npm run test passes
[ ] Changelog is updated
[ ] Tag 1 of @yknl or @zone117x for review

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix and refactor setByPath function

Landed in https://github.com/metarhia/common/commit/6b335a0f54d8858bdbb233b503c684d42c0cb530.


Let`s Be Rational

@jmmastey @djkotowski Here is an alternative to learning TDD. It's a lot simpler than data_science and easier to code closer to TDD. Instead of just deleting data_science I'm suggesting replacing it with this as an alternative to bridge DinoDex and Overlord.
Zamir

This doesn't look very TDD.  You're writing the implementation first based on an existing API spec, then the tests.  We want to teach that by using TDD and writing "the code we want to see", we can write clear, understandable code with an understandable API.

@djkotowski Let's discuss this in person first (within the context of the firm)

Apologies for not seeing this sooner, my notifications are turned off for pulls here because of the number of training reviews. Overall, I think it's a move in the right direction. Some good and bad things.
Good: First, this is not data_science, which biases me towards it immediately. Writing tests for already implemented code is a common activity, both at Enova and in the field. I'd be really interested to see a case where adding coverage to the existing code allowed the developer to refactor a shitty implementation. This is one of the major "aha" moments of TDD. Also, this could point to some smells like testing private methods while reinforcing operator overloading. Coders are likely familiar enough with fractions to need very little research to complete this.
Bad: This is not a lot less dry than data_science, so I'd probably grow not to like rational any better. The HTTP stuff is a bit contrived for my liking, and I'd prefer to give them even a half-assed rspec than a test script that a very junior person might mimic because they don't know better.
Overall: The suggestion of a "pick up this half implemented thing, test it, and finish it with TDD" could be a solid, fast, and educational exercise. Let me know what you two talk about today @djkotowski @zsyed1.

@djkotowski @zsyed1 did you end up discussing this?

@jmmastey I've been making noise, but no decision has been made. I'm hoping @djkotowski just makes some alterations and we can push it through. I'm tired of pretending learners are actually doing TDD on this exercise. :last_quarter_moon_with_face:

I've been a bit busy with other projects at the moment.  Once I finish my production work, I can turn my focus back to Level UP.

@zsyed1 Let's run with our thoughts from this morning on tweaking this update. I'm going to close this for now so we can get our exercise count down. :)


Split optional dependencies in pyproject.toml

Takes the splitting of optional dependencies idea started in https://github.com/zarr-developers/VirtualiZarr/pull/87 to its logical conclusion.

[ ] Changes are documented in docs/releases.rst
[ ] New functionality has documentation

I could change the CI to use pip. I have been using UV a bit recently and it's been super promising for managing deps, but would be a bigger change.

without much context, obligatory pixi endorsement comment

I think the CI failure is because the mypy CI job is apparently the only one that uses pip to install currently

Also @norlandrhagen fastparquet is in the CI but doesn't seem to be used anywhere?

I think it's a hidden requirement of using the Kerchunk parquet format.

I think it's a hidden requirement of using the Kerchunk parquet format.

So does that mean we should have another writer split out in these dependencies?

without much context, obligatory pixi endorsement comment

emerging from a rabbit hole (thanks @cisaacstern 😂) I'm floating around this decision framework for feedback:

If you're starting a new Python package, use uv
If you need to manage multiple Python virtual environments at a time, also use hatch
If you need Conda-Forge in addition to PyPI distributions, also use pixi

More on topic, feel welcome to ping me if you'd like to assign any CI / packaging updates.

So does that mean we should have another writer split out in these dependencies?

Probably! Also, maybe for reading existing Kerchunk parquet refs.

Probably! Also, maybe for reading existing Kerchunk parquet refs.

Does reading existing Kerchunk parquet refs require the same additional dependencies? If so we could have kerchunk_format = ["fastparquet"] as another group?

Does reading existing Kerchunk parquet refs require the same additional dependencies? If so we could have kerchunk_format = ["fastparquet"] as another group?

I just checked, both reading the writing of Kerchunk Parquet refs require fastparquet.

In https://github.com/zarr-developers/VirtualiZarr/pull/309/commits/a633a0cadd7aca5ef5bd753f70ccd293f408b568 I embedded the pyproject.toml into the installation docs page so that the list of pip-installable optional dependencies always stays up-to-date. See
https://virtualizarr--309.org.readthedocs.build/en/309/installation.html

note to self: add various parallel options to the splitting here once #349 is in, because that adds optional dependencies on lithops and dask


cargo-risczero tool

Provided is the basic skeleton of a cargo extension tool. Currently it only supports the new subcommand to generate a risc0 project based on the templates/rust-starter that I ported from the stand-alone repo into this tree.
Running the tool while developing on it
cargo run -p cargo-risczero risczero new --template templates/rust-starter --dest /tmp/template-test my-project

Install the tool into $PATH from local source
cargo install --path risc0/cargo-risczero

cargo risczero new should normally default to pulling the template directly from our github repo + the encoded tag version, but until this PR lands you can supply the  --template templates/rust-starter flag to direct the tool at a local path for the template.
Also please note the comment about tempfile = 3.3 in the Cargo.toml. Had to adjust versions because with multiple bin targets in the workspace cargo needs to find a single version of the package across the whole workspace.
TODO

[x] Automatically select the crate version in the output template from current crates version
[x] Allow for a user to swap out the generated project to point not at crates.io but at github + branch/commit version
[x] Expand templates in the starter to do things like --std which automatically generates the starter project with std flags enabled
[x] Expand CLI flag descriptions.
[x] Tests for all new flags.
[x] cargo-generate leaks STDOUT during tests because of its use of indicatif, could be a issue long term.
Tracking the upstream fix here: https://github.com/cargo-generate/cargo-generate/pull/907
[x] Add a README.md to cargo-risczero crate root to make a mainpage for the crates.io landing page. @tzerrell I might ask you for a follow up pass on this.

Added a PR upstream to address the logging vs println! issues: https://github.com/cargo-generate/cargo-generate/pull/907

@flaub Looks like our license tool is complaining about the template files, I know there is a open question about if we apply our license to the templates. My gut reaction is no since a user will take the code and derive something from it so they should be able to license it however they need for their application.

It should be pretty easy to add ignores to the license check tool


Disabling start animation

Is there a way to disable the startup animation? I added the slider to a component that can toggle visibility, but everytime when open/close the component the slider is animating. The max bullet moves to it's position.
I couldn't find it in the docs, that's why I'm asking it here.

Thank you for the issue, I will be resolved as soon as possible.

Well, now no longer animated when initialized.
I pushed a new version in npm, you can try to update to the latest version @2.1.2.

@NightCatSama Sweet! Works like a charm now!


MonoMod causing TypeLoadException when running patched assembly in .NET

According to 'git bisect':
9fba1bfbdef469cb7693d38c2e7dca13e90ba061 is the first bad commit
commit 9fba1bfbdef469cb7693d38c2e7dca13e90ba061
Author: AngelDE98<EMAIL_ADDRESS>Date:   Thu Aug 6 21:58:48 2015 +0200

    Handle some specially named methods, i.e. .cctor

:040000 040000 28f7909ea52dbdda2d301ee802298ba704c3d39e e7bf0b6874d4c0aa937a8b56c08c7f8dd0ffa774 M  MonoMod

Confirmed working when running on Windows via mono, which makes everything even weirder. But well, MonoMod is named MonoMod, not .NETMod

Making, this codepath never run "fixes" this issue, but destroys patching constructors.

.NET is waay more unforgiving about (RT)SpecialName than mono. Had to remove the two flags when creating orig_s in MonoMod.


feat(settings): add app status screen in support

Description

Added App Status screen to Settings > Support > App Status.
Provides an overview of the user's Internet Connection, Bitcoin Node, LN node, Lightning channel, and Data backup.
Fixed a small duplicated check in backups by replacing it with the presumably intended key
remoteLdkActivityBackupSyncRequired → remoteLdkBackupLastSyncRequired

Linked Issues/Tasks
Add Support → App Status screen (Part of Design v45)
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactoring (improving code without creating new functionality)

Tests

[ ] Detox test
[ ] Unit test
[x] No test

Screenshot / Video
https://github.com/synonymdev/bitkit/assets/4588074/bcef96f2-7c6c-469f-942e-67443ebff004
QA Notes
The following states are supported:

Internet : 🟢 / 🔴
Bitcoin Node: 🟢 / 🟡 / 🔴
Lightning Node (LDK): 🟢 / 🔴
Lightning Connection (LN channel): 🟢 / 🟡 / 🔴
Full Backup: 🟢 / 🔴

Dev Notes
Open questions:

Should I remove translation strings for unsupported states?
Since they're computed I left them in the initial impl. but given the app won't require them, they could be removed.
Any suggestions are more than welcome 🙏

Can you please add an e2e test for it?

Can you please add an e2e test for it?

Thank you for your request @limpbrains, I'll add an e2e test 🙇🏻

Can you please add an e2e test for it?

Done, went the easy option 🙈


position (yoff) bug?

Hello.
First, thanks for this great work!
So, I'm testing the following example:
#include <stdio.h>
#include "pdfgen.h"

int main() {
    struct pdf_doc *pdf = pdf_create(PDF_A4_WIDTH, PDF_A4_HEIGHT, NULL);
    pdf_append_page(pdf);
    pdf_set_font(pdf, "Times-Roman");
    pdf_add_text(pdf, NULL, "This is text", 48, 0, 0, 0);
    pdf_save(pdf, "output.pdf");
    pdf_destroy(pdf);
    return 0;
}

and it generates the following page:

it is OK for x = 0, however, for the y = 0, it should generate as the following one:

what I'm doing wrong? :confused:

I don't think you're doing anything wrong. PDF documents have a coordinate system where 0,0 is the bottom left of the page, not the top left like on most graphics displays. So the output you're seeing looks right to me.

I'll close this off now, since I think it's probably behaving as expected. Feel free to reopen if I've missed anything or you think I'm mistaken. Thanks.

Thanks dude! :+1:

This is causing text added by pdf_add_text_wrap to go from bottom to top. Lorem ipsum became:
culpa qui officia deserunt mollit anim id est laborum.
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim

As you can see, it's the reverse. I don't think it's what users expect.

Can you post a snippet of the code you're running that causes that? I agree, it obviously should wrap down the page, but that's why the yoff position is reduced, not increased, at each line: https://github.com/AndreRenaud/PDFGen/blob/master/pdfgen.c#L1923
You can see the example code here: https://github.com/AndreRenaud/PDFGen/blob/master/tests/main.c#L81 which wraps down the page, not in reverse:


Adjust kured to use the new Microsoft Teams connector webhook URL format

As mentioned in #138 of shoutrrr the Microsoft Teams connector webhook URL format changed. Before it was https://outlook.office.com/webhook/{tokenA}/IncomingWebhook/{tokenB}/{tokenC} wheras of today, the base url is https://<tName>/....
Thus one should be able to also specify the <tName> i.e. something like this: teams: teams://tName/token-a/token-b/token-c
The new url is already reflected in v0.4.0 of shoutrrr

What's the problem? I have the impression that our code should be okay. Do we have an issue? We are using shoutrrr 0.4.3.

Not sure as the documentation states
teams: teams://token-a/token-b/token-c

I did not look at the code but if you say I actually can pass --notify-url=teams://tName/token-a/token-b/token-c, then no there is probably no issue.


Nuget package property updates

Let's cleanup and extend the nuget package properties:

[x] Point all of the project release notes at the neonKUBE releases page.
[x] Create README.md files for all projects.
[x] Point the nuget project URLs at the new README.md files.
[x] Point all licenses at the root LICENSE file.

DONE


[folly] Build error on x64-windows

Package<EMAIL_ADDRESS>Host Environment

Host: x64-windows
Compiler: MSVC 19.40.33811.0
vcpkg-tool version: 2024-08-01-fd884a0d390d12783076341bd43d77c3a6a15658
vcpkg-scripts version: 350898514 2024-08-23 (2 weeks ago)

To Reproduce
vcpkg install folly:x64-windows
Failure logs
-- Note: folly only supports static library linkage. Building static library.
-- Using cached facebook-folly-v2<IP_ADDRESS>.tar.gz.
-- Cleaning sources at D:/vcpkg/buildtrees/folly/src/<IP_ADDRESS>-e5ccd1ae16.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source D:/vcpkg/downloads/facebook-folly-v2<IP_ADDRESS>.tar.gz
-- Applying patch disable-non-underscore-posix-names.patch
-- Applying patch fix-windows-minmax.patch
-- Applying patch fix-deps.patch
-- Applying patch disable-uninitialized-resize-on-new-stl.patch
-- Applying patch fix-unistd-include.patch
-- Applying patch fix-fmt11-cmake.patch
-- Using source at D:/vcpkg/buildtrees/folly/src/<IP_ADDRESS>-e5ccd1ae16.clean
-- Found external ninja('1.11.0').
-- Configuring x64-windows
-- Building x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: "C:/Program Files/CMake/bin/cmake.exe" --build . --config Debug --target install -- -v -j17
    Working Directory: D:/vcpkg/buildtrees/folly/x64-windows-dbg
    See logs for more information:
      D:\vcpkg\buildtrees\folly\install-x64-windows-dbg-err.log

Call Stack (most recent call first):
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_build.cmake:74 (vcpkg_execute_build_process)
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_install.cmake:16 (vcpkg_cmake_build)
  ports/folly/portfile.cmake:69 (vcpkg_cmake_install)
  scripts/ports.cmake:192 (include)

D:\vcpkg\buildtrees\folly\install-x64-windows-dbg-err.log
Error: could not load cache

Using the latest version of vcpkg for local installation does not reproduce the issue.
Please try with latest vcpkg.
Or try:
vcpkg remove folly
vcpkg install folly[zlib] --binarysource=clear


Azure Functions outputs not supported?

We use outputs to Azure Functions in out Stream Analytics job. While doing the build either with MsBuild or SA.exe as described in this document, the resulting template is left empty where there should be the Azure Functions outputs:
"outputs": [
{
"name": "AlertHandler",
"properties": {}
},
{
"name": "TelemetrySaver",
"properties": {}
},
...
}
This basically prevents us from updating Stream Analytics through CI/CD pipeline.
Any advice?

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

ID: 33f0cd05-1526-e569-82ef-da3f262755f6
Version Independent ID: 158f4c1e-7a1a-5a03-e5b4-a8bbe0d7eb96
Content: Continuously integrate and develop with Stream Analytics tools
Content Source: articles/stream-analytics/stream-analytics-tools-for-visual-studio-cicd.md
Service: stream-analytics
GitHub Login: @su-jie
Microsoft Alias: sujie

@mrtaunus Thank you for the valuable feedback,we are investigating the issue.

@su-jie Can you please take a look at this?

I am OOF.
Joe, can you take a look?
Outlookhttps://aka.ms/qtex0l for iOS

发件人: ChiragMishra-MSFT<EMAIL_ADDRESS>发送时间: Thursday, February 7, 2019 4:50:42 PM
收件人: MicrosoftDocs/azure-docs
抄送: Jie Su; Assign
主题: Re: [MicrosoftDocs/azure-docs] Azure Functions outputs not supported? (#24364)
Assigned #24364https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F24364&data=02|01|sujie%40microsoft.com|4003a6adc845434d633e08d68cd95852|72f988bf86f141af91ab2d7cd011db47|1|0|636851262448687590&sdata=GwnVyMXydnXYqW3YxoJiBRvHiDcvbg8oOnl00iKq4c0%3D&reserved=0 to @su-jiehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsu-jie&data=02|01|sujie%40microsoft.com|4003a6adc845434d633e08d68cd95852|72f988bf86f141af91ab2d7cd011db47|1|0|636851262448687590&sdata=HRBZo4fL0Cd%2BhNi1zLu%2BVdPHTWBnyOcClULoXyEuZWY%3D&reserved=0.
―
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F24364%23event-2123417092&data=02|01|sujie%40microsoft.com|4003a6adc845434d633e08d68cd95852|72f988bf86f141af91ab2d7cd011db47|1|0|636851262448687590&sdata=IRhHl%2FW1Zezyc6IwfHNDv06kNccp7UPV1YdbdcSVlj8%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAXpw_i3u_Wjy0BNDVXcmxcXqaCkVCOAKks5vK-jigaJpZM4alTMD&data=02|01|sujie%40microsoft.com|4003a6adc845434d633e08d68cd95852|72f988bf86f141af91ab2d7cd011db47|1|0|636851262448697583&sdata=zvB%2BlXnGWTq0BBUGHRf644LWUP8aEnQjJWkRyKavXWk%3D&reserved=0.

what the version for your stream analytics nuget pacakge ? please update to latest nuget version and we should support this already

This was the problem. Somehow I had gotten a version 1.0.0 instead of the newest 1.6.0.
Sorry to have bothered you, my mistake!


broadpeak calling is off

The pipeline seems to be working fine generally, but I can't get any broadpeaks or gapped peaks after finishing the whole pipeline.
--------------------Stderr--------------------
INFO  @ Wed, 09 May 2018 06:23:35:
Command line: callpeak -t /pbtech_mounts/khuranalab_scratch_athena/fta2001/Flow/Flow/ATAC_ENCODE_Pipeline_mouse/1/out/align/rep1/Chr3164_EYFP-1_AT_A12_TGCTGGGT_IGO_08155_3_S34_R1_001.trim.PE2SE.nodup.tn5.tagAlign.gz -f BED -n /pbtech_mounts/khuranalab_scratch_athena/fta2001/Flow/Flow/ATAC_ENCODE_Pipeline_mouse/1/out/peak/macs2/rep1/Chr3164_EYFP-1_AT_A12_TGCTGGGT_IGO_08155_3_S34_R1_001.trim.PE2SE.nodup.tn5.pf -g mm -p 0.01 --nomodel --shift -75 --extsize 150 -B --SPMR --keep-dup all --call-summits
ARGUMENTS LIST:
name = /pbtech_mounts/khuranalab_scratch_athena/fta2001/Flow/Flow/ATAC_ENCODE_Pipeline_mouse/1/out/peak/macs2/rep1/Chr3164_EYFP-1_AT_A12_TGCTGGGT_IGO_08155_3_S34_R1_001.trim.PE2SE.nodup.tn5.pf
format = BED
ChIP-seq file = ['/pbtech_mounts/khuranalab_scratch_athena/fta2001/Flow/Flow/ATAC_ENCODE_Pipeline_mouse/1/out/align/rep1/Chr3164_EYFP-1_AT_A12_TGCTGGGT_IGO_08155_3_S34_R1_001.trim.PE2SE.nodup.tn5.tagAlign.gz']
control file = None
effective genome size = 1.87e+09
band width = 300
model fold = [5, 50]
pvalue cutoff = 1.00e-02
qvalue will not be calculated and reported as -1 in the final output.
Larger dataset will be scaled towards smaller dataset.
Range for calculating regional lambda is: 10000 bps
Broad region calling is off
Paired-End mode is off
Searching for subpeak summits is on
MACS will save fragment pileup signal per million reads
I've ran some debugged codes as suggested in other issues. The result is attached.
Thanks!!

The StdErr message of the whole pipeline is attached here.
Thanks!
ATAC_ENCODE_Pipeline_mouse.1.bsub.txt

This is by design. The broad and gapped peak implementation is very flawed
in MACS2 and gives incoherent results. So we don't support it any more.
We will be providing another strategy to call broad peaks in the near
future.
Anshul.
On May 13, 2018 9:48 PM, "fanying2015"<EMAIL_ADDRESS>wrote:
The StdErr message of the whole pipeline is attached here.
Thanks!
ATAC_ENCODE_Pipeline_mouse.1.bsub.txt
https://github.com/kundajelab/atac_dnase_pipelines/files/1999388/ATAC_ENCODE_Pipeline_mouse.1.bsub.txt
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kundajelab/atac_dnase_pipelines/issues/114#issuecomment-388696148,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAI7EdJNi5r2GukbGStewlJL5Xl7eG5fks5tyQylgaJpZM4T9Jqs
.


Improve plugin package test coverage

The plugin package is still missing some tests, coverage can be increased.
Required for: https://github.com/avelino/awesome-go/pull/2431

Just want to chim in on how to test these plugins.
You basically just need to do a [manual install] in your plugin directory and then set export LD_LIBRARY_PATH=$PWD, otherwise you'll get an error like this when running the tests: /tmp/go-build321691715/b001/file_picker.test: error while loading shared libraries: libflutter_engine.so: cannot open shared object file: No such file or directory .

A lot of the go-flutter code is about wiring together GLFW and Flutter, which cannot effectively be mocked. We could add "fake tests" to just add coverage, but that's not useful at all.

Not top priority, to me what's needs coverage is codec, and codec are pretty well tested.


⚠ gorzdrav.org has degraded performance

In 24d9e11, gorzdrav.org (https://gorzdrav.org) experienced degraded performance:

HTTP code: 200
Response time: 2569 ms

Resolved: gorzdrav.org performance has improved in 5ff0865.


Navigation from page broken

Page.svelte currently:

validates page if validation is enabled, jumping to error if found
triggers bespoke action (pagenext event) which is allowed to perform goto redirects
does a goto whereever is next in journey.json

What is happening is that the goto in the pagenext event is being ignored in production mode, presumably because the "normal" goto runs next and overwrites the in-play redirect.  There was a Sveltekit issue/PR talking about queuing redirects up recently, so I suspect I've fallen foul of these changes.
The solution is to go all in on bespoke actions.

Move all validation/routing logic out to common actions

expect parameters on these varying depending upon action type, currently access state/journey via store/import
this should make actions testable in isolation.  Alternatively allow state in actions but take stateless elements out as utilities which can be easily tested

If there's a site-specific action it should replace the common action

If we still need validation we call the page validator utility
If we still want to goto next page we call this utility, mirroring the common action.

This could result in more complexity, but the boundaries should be clear

This is seen when navigating from https://journeyasdatademo.azurewebsites.net/outcome to payment gateway


OSSM-3871 TestSMCPAnnotations flky test

Jira:
TestSMCPAnnotations is flaky because the second sub-test case is getting empty annotations, made some changes:

Improve clean up, it's flake test related but this will improve execution time
Added a length check to fail and retry in annotation is equal to zero

The retry in GetPodAnnotations() is not needed, because the pod already exists due to WaitDeploymentRolloutComplete.
But you might have a point with the SMCP not being ready. Actually, the SMCP will definitely be ready, because we wait for it to be ready, but I think it's possible that the injection won't work immediately. So, you should retry (but you should delete the app=env pod on every attempt)

@luksa Updated the PR

/test lint-2-4

tested with latest changes
--- PASS: TestSMCPAnnotations (34.98s)
    --- PASS: TestSMCPAnnotations/proxyEnvoy (19.08s)
    --- PASS: TestSMCPAnnotations/quote_injection (21.58s)
PASS
ok  	github.com/maistra/maistra-test-tool/pkg/tests/ossm	59.849s


Proposal: Put language packs into Windows Update layers

I've seen that there are multiple languages for the microsoft/windowsservercore base image available at Docker Hub.
As you replace the Windows Update layer on top of the base layer to minimize downloads, what about putting the language pack into these Windows Update layers so everybody pulls the 3,7GByte base image only once, regardless the language to be used.
docker pull microsoft/windowsservercore:10.0.14393.447
-> english base image
-> english windows update layer
docker pull microsoft/windowsservercore:10.0.14393.447_de-de
-> english base image
-> german windows update layer
Otherwise I soon have multiple base images expanded on my Docker host.

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


Prefer SNI hostname for dashboard API server URL

How to categorize this PR?

/area usability
/kind bug
What this PR does / why we need it:
Prefer SNI hostname for dashboard API server URL.
If no SNI is given, at least provide the CA bundle for the API server to prevent certificate verification issues.
Which issue(s) this PR fixes:
Follow-up of https://github.com/gardener/gardener/pull/9583
Special notes for your reviewer:
/cc @plkokanov @petersutter
Release note:

NONE

/approve


newbie fixes

@mjpan let me know if you want to fix the above, otherwise I'll just keep this closed - thanks as it is :)


Change build system to setuptools and automate publishing to PyPI

Making these changes in preparation to replace the Python ANTLR runtime with C++ to improve performance (#26).
Included changes:

Switch build system from flit to setuptools
Add a workflow for publishing the package to PyPI
Fix minor CI and mypy issues

Looking good already, thanks!
Do you have an idea on how we can test the newly created workflow?

I will add something similar to this job in tabmat - it uploads the package to TestPyPI. However, as discussed with Encho and Simeon it probably makes more sense to run it on each PR action (tabmat only runs it on releases).

Closing this external PR because it can not access repository secrets. A copy of this PR can be found here #27.


[Feature Request] Please make it possible to map additional key bindings to "cursorLeft", "cursorRight", etc.

Context

[X] This issue is not a bug report. (please use a different template for reporting a bug)
[X] This issue is not a duplicate of an existing issue. (please use the search to find existing issues)

Description
I can follow the instructions here . . .
https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-adding-an-action-to-an-editor-instance
. . . to add an action to my editor instance.
However, I cannot find a way to make my new key binding trigger the "cursorLeft" and "cursorRight" (etc.) actions.
I have tried . . .
ed.getAction("cursorLeft").run();

. . . but .getAction("cursorLeft") results in null.
My reason for this request is that I want to make it so that the I, J, K, and L keys can be used as if they were arrow keys.
As a make-do, I can use .getPosition() and .setPosition(), but that doesn't work well.
For example, trying to replicate "cursorRight" doesn't work well because my code doesn't know the length of the line that it is in; it doesn't know when it should wrap to the beginning of the next line.
Please let me know if I'm missing something!
Thank you.

That works!
Thank you so much for the speedy response!


Improve estimate of how much memory is used by an LfuCache

This PR improves the estimates that LfuCache uses to determine how big a cache entry is. Under heavy load, LfuCache would appear to leak memory. At least part of that apparent leak was that LfuCache underestimated how much memory cache entries use, which would lead to the cache growing much bigger than intended. In some cases, for example for small BTreeMaps, the estimate was off by more than an order of magnitude, which in practice has the same consequences as an actual leak.
With the tweaks to memory estimates, LfuCache now mostly overestimates the amount of memory an entry takes, though running the stress example still shows that overall memory usage can be a factor of 3 larger than the estimate that the cache tracks, for example, when caching strings less than 50 bytes long.
The PR also includes a small tool to show how cache estimates relate to actually used memory. You can run the tool with
cargo run -p graph --release --example stress -- \
      --niter 1000000 --print-count 10 --obj-size 50 --template string

which will perform 1M insertions of strings up to 50 bytes in size and print information about the cache about 10 times during the run. The information printed looks like
evicted:     59  dropped:     19 new_weight:   999991 heap_factor: 3.00

where evicted is the cache weight removed from the cache by the last call to LfuCache.evict, dropped is how much memory was actually freed, new_weight is the weight of the cache after the last evict, and heap_factor is the ratio of memory allocated by the cache divided by its weight.
The stress example defines tests for a few different data structures which can be selected with the --template option:

string: cache String of length obj_size
vec: cache Vec<usize> of length obj_size
hashmap: cache HashMap<String, String> with obj_size entries; keys and values are short strings of less than 10 bytes
valuemap: cache BTreeMap<String, q::Value> with obj_size entries, where entries cycle through the 9 possible kinds of q::Value

@lutter Looks like some tests fail as a result of these updates. You might just need to update the expected values according to to the new calculations.

Updating the test was a little tricky since it requires carefully calculated weights that we don't know a priori. But it looks like I parametrized everything successfully now.


Link DoD document with README.md

Link DoD document with README.md

This is already done - see https://github.com/RedHatInsights/insights-operator-web-ui/blob/master/README.md at the end


Let ruby-build try to build with the best compiler available to the system

https://p8952.info/ruby/2014/12/12/benchmarking-ruby-with-gcc-and-clang.html
According to this benchmark, building with Clang is preferrable on a number of server-oriented Linux systems.
CentOS 6 has GCC 4.4 and Clang 3.4, the latter wins.
CentOS 7 has GCC 4.8 and Clang 3.5, the former wins.
Ubuntu 14.04 is in the same situation as CentOS 7.

Pull request #707 fixes this issue for CentOS. Ubuntu and Debian will be added later.

Closing for the same reason as https://github.com/sstephenson/ruby-build/pull/707#issuecomment-70571673
Thanks for the suggestion, though! :dizzy:


Delete manifests/c/CiderCollective/Cider/<IP_ADDRESS>0 directory

Alpha version
Microsoft Reviewers: Open in CodeFlow

@wingetbot run


Build tuning

What I have done and why
It was pointed out in a discussion that NowInAndroid uses a 6GB heap size which seemed high. I did a couple perf runs with current settings and no build cache or config cache. I did this at a few heap sizes like 12G, 6G, 4G, and 3G. Only at 3G do we observe a regression in build speed which is pretty easily explained by the 27 seconds spent in garbage collection - the build process was encountering GC thrashing in attempting to complete the build.
I then changed the JVM arg settings to be what I would use for tuning and while the first build at 3G was only slightly faster the subsequent ones are proving to be just as fast as all the other higher heap size ones.
Settings changed so far is just to this:
org.gradle.jvmargs=-Dfile.encoding=UTF-8 -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -Xmx3g -Xms3g -XX:MetaspaceSize=1g
kotlin.daemon.jvmargs=<same as Gradle>

In this PR I also want to add jemalloc to the GitHub CI as that should give roughly 10% memory savings by fixing native memory fragmentation. I did this through a custom action that caches jemalloc.
I also tried out other heap sizes with the new configuration. Anything higher than 3G didn't make a performance difference and anything lower (2G) ran the risk of the build not completing.
I'm happy to alter anything about this contribution, the goal is to help show how its possible to reduce resource usage while increasing performance.

Could you split this PR into the gradle.properties updates and the jemalloc updates separately?
The gradle.properties updates look good to me and would approve, but would like to discuss the jemalloc change in more detail.

@alexvanyo sorry I didn't see your message, happy to split up the PR. Do you also want a separate issue?

I've removed jemalloc from this PR.

@kaeawc could you explain the reason for each new flag? I'm not sure they are doing anything worth including in this project. Also, since this project is meant as a showcase, many devs will likely copy/paste the code, it would be best to not add "magic" and unexplained JVM tuning. 🙏

@SimonMarquis of course!
Metaspace, CodeCache, and Heap are all separate memory stores in the JVM. This goes all the way back to JDK 8.
Regarding the removal of MaxMetaspaceSize and addition of MetaspaceSize as 256MB - I outlined my research on the topic here for why Gradle projects that target JDK versions newer than 17 should try removing it. Setting a maximum without understanding of what the maximum limits in a project others will copy is arguably worse than allowing users to run into classloader memory leaks that have mostly been fixed.
CodeCache has a similar story that I'm also putting together my research for. The default for a 64bit system of 48MB is small relative to the 64-96MB that starter Android projects could take up and benefit from performance from. CodeCache is meant to have a relatively small limit.
Lastly SoftRefLRUPolicyMSPerMB is a pretty straightforward option - based on whether the JVM is configured to run as client or server mode it will release soft references in a number of milliseconds per megabyte of current heap or maximum heap sizes. The default value is 1000, which means for projects with 4GB heap size the JVM will release soft references after 68 minutes (~1 hour). 8GB heaps would release it after 2 hours. Hopefully everyone's builds are faster than that, which means their builds never release any soft references. I have consistently seen setting this to 1 instead of the default of 1000 is a win for releasing memory which can then be used for Metaspace, CodeCache, or the Heap.

I'm gonna pause on merging this because the JVM args for Kotlin Daemon are not behaving as I expected, see https://youtrack.jetbrains.com/issue/KT-71564/Kotlin-Daemon-JVM-args-behavior-does-not-match-documentation

So after a lot of digging I found all the JVM inheritance and defaults for Kotlin daemon and have a fix up for Kotlin's documentation on the subject https://github.com/JetBrains/kotlin-web-site/pull/4454. Knowing that we should definitely also set the same args in both as that was the original intention, however I'm going to remove the CacheCodeSize and MetaspaceSize args.

-XX:MetaspaceSize Sets the size of the allocated class metadata space that will trigger a garbage collection the first time it is exceeded. This threshold for a garbage collection is increased or decreased depending on the amount of metadata used. The default size depends on the platform. Therefore we should just not set this value as setting it delays GC events on Metaspace which is a tiny performance win but making a very strange change to the JVM's behavior.
ReservedCodeCacheSize is already set by the Kotlin daemon and their setting is 320mb. I was previously under the impression that neither Gradle not JetBrains were setting defaults for the code cache, it would be confusing if we set one for an open source project like that that others copy.

I'll make those changes to this PR and then this is mergeable.

@kaeawc Did you actually measure performance of G1 vs ParallelGC? Because you replaced UseParallelGC with the default GC (which should be obsolete).
Previously benchmarks showed that ParallelGC actually performed best: https://dev.to/cdsap/jdk-17-using-parellgc-for-the-kotlin-process-in-android-builds-24af

Yes I have, both in this and other projects. It does result in a faster build time, but at the cost of larger memory footprint. The difference in speed is not very large in the latest JVMs and in a project like this that will be copied for its settings the community should not blindly follow ParallelGC when most projects will not have the resources to spend on huge CI runners and the most expensive developer machines.

G1GC is not obsolete. It is the default for a reason. Parallel used to be the default in JDK8 and prior versions, G1GC serves the widest number of applications the best, especially in the latest JDK versions.

@kaeawc Hmm, your results about GC seem not to match with the benchmarks I found so far.
In addition to the previously posted benchmark which uses NiA this one tested 3 different projects: https://bitrise.io/blog/post/switch-to-jdk-17-parallel-gc-and-speed-up-your-android-builds-by-9-20

when most projects will not have the resources to spend on huge CI runners and the most expensive developer machines

That's based on assumptions.

G1GC is not obsolete

I didn't meant G1GC itself is obsolete but the jvmArg -XX:+UseG1GC since it's default since Java 11. I would not expect adding arguments which match to the default.
Also another aspect: Google itself also recommends testing ParallelGC.
https://developer.android.com/build/optimize-your-build#experiment-with-the-jvm-parallel-garbage-collector
It could be confusing to find different GC without any explanation in the project.
Don't get me wrong. I really like this PR and thanks again for all the investigation and explanations in your blog posts. I am really into this whole build optimization topic.
Just the part about the GC felt short from my opinion.
Therefore I would suggest an follow up PR which either removes
-XX:+UseG1GC or reverts to -XX:+UseParallelGC.
Or we would maybe need some additional comments in the gradle.properties why choosing G1GC over ParallelGC even though there are benchmarks that suggest otherwise.

@G00fY2 I hear you on using something that is the JVM default. I think let's try to establish the goals more clearly and we can figure out which path is best to take. If we do remove it from the args I'd still like to call out in a comment that we're using G1GC.
@alexvanyo @dturner what are your goals be for NowInAndroid? Would you rather have the project be efficient on resources or speed, even if that speed is actually the same? I can redo the perf tests on this size project but also want to do them on a few other sizes to show what these settings look like when scaling over time.

@kaeawc Our goals for the NowInAndroid build are in order of priority:

reliability
simplicity of maintenance / easy to understand for developers
speed
resource usage

@dturner in that case, considering @G00fY2's comment:

Reliability - G1 is more likely to be reliable. As a codebase grows you'll hit heap size limitations faster with Parallel which will break a build.
Simplicity - I can either see removing G1GC from the list of options just so its shorter, but then as a developer you need to understand what the JVM defaults are for the JDK you're running your project against.  So if we remove it I think keeping it as a comment is worthwhile.
Speed - Profiled it again and the speed difference is not statistically significant for cached builds, but is significant (1 second) for clean builds in NowInAndroid. While Parallel is proven to be the faster option and recommended by Google, the docs there refer to this as "Experiment with the JVM parallel garbage collector" and "potentially improve build performance". I have seen cases where Parallel is not the best GC for speed and the cause is usually due to a lack of JVM tuning experience in a fast growing project. I think it is worth citing that link and noting that improved speed is possible.
Resource usage - G1 is better for this, but its at the bottom of the list.

Based on all that I think this project should keep G1GC arg even though its a default, comment about Google's recommendation for using Parallel.

@kaeawc I made these changes in one of my projects and now Android Studio spins up two Gradle daemons (filed an issue). Have you been seeing anything like that?
My project uses Gradle 8.11.1, Kotlin 2.0.21, and AGP 8.7.2

@eygraber just FYI I responded to the issue you filed - I haven't been able to reproduce. If you have a reproducible project you can share I'd be happy to help investigate further.

Thanks, I saw that. Trying to find some time to put a repro together.


Delete Indefinitely Files

Hello,
is there a way to somehow delete these Files manually?

Hello, on the latest version there is an admin panel that lets you delete those, and I've added a warning that non-password-protected files that are marked for keep indefinitely will only be deletable by an admin

Very nice! Thank you very much!


Update OSX joypad GUID to SDL uid conversion.

Should fix #39157.
Since I don't have controllers or even an macOS machine to test this with, I need help with testing.
cc @JohnCWakley

@madmiraal : I would be happy to test for you... I will clone the branch and give it a whirl...

Note that it's based on the master branch and you'll need the Vulkan SDK set up to build and run Godot on macOS.
But you can also apply those changes manually (or via git cherry-pick) on the 3.2 branch and it should work on 3.2.2-beta.

@akien-mga : Thank you for the note. I already have the vulkan sdk for my own research projects (it's soo verbose!)
@madmiraal : It still is not working and I know why. the sprintf call last argument is 0. The SDL sdk uses the HID Version Number here. I added a few lines to your branch, may I commit them? Or paste them here?

@JohnCWakley Thanks for testing and identifying the HID version number being needed too.

I added a few lines to your branch, may I commit them? Or paste them here?
Whatever is easiest for you.

I will commit my changes to your branch...

@JohnCWakley I've updated the commit and made you co-author. Test away.

@madmiraal : Thank you for making me co-author, I am honored. I've tested the changes and everything is working as expected.
There is one small caveat: I have an odd-ball controller who's vendor id is missing a leading zero, but that is another issue and I haven't fully investigated.

There is one small caveat: I have an odd-ball controller who's vendor id is missing a leading zero, but that is another issue and I haven't fully investigated.

@JohnCWakley It sounds like we're not quite there. The vendor id shouldn't need a leading zero. We should be creating the correct uid from the information available. What is the uid from Godot vs. the SDL tool?

@madmiraal I am still investigating this. It may have been my own mistake. I will follow up with you as soon as I have an answer.

@madmiraal I started with a fresh set of constants in my test code and everything is working as expected with the odd-ball controller I was using. I must have left out a zero when manipulating the GUID sections around to better understand them. My apologies. I believe this we are good to go.

Thanks to you both :)

@akien-mga it has been my pleasure to contribute to this amazing project!

Cherry-picked for 3.2.2.


PolicyBrain 1.2.1

PolicyBrain 1.2.1 will be released either tonight or tomorrow.  Issues to be tackled:

NA - ID_AmountCap_Switch not consistently set as 1/0 (resolved via #757)
#306 and #747 - Back-to-back quick calc submissions and correct description (resolved via #759)
#761 - warnings on taxbrain/file clear input files (resolved via #762)
#760 - File upload change start year directs to GUI input page (resolved via #766 and #767)

Some of the quick items from #769 can also be tacked on if there is timely feedback.  The file upload page will require some follow up PR's. Since #762 and #767 are ready to go and these are glaringly bad bugs, I plan to push these fixes up as soon as possible.
cc @GoFroggyRun @MattHJensen @martinholmer

I was thinking there might be a Tax-Calculator release in the next day or so.
Does that affect your thinking about the timing of the next PolicyBrain release?

Thanks @martinholmer. It looks like the only change that will require work on the PolicyBrain side is a new parameter, _CTC_new_refund_limited_all_payroll.  That should be an easy update. We can wait on the next Tax-Calculator release.

@hdoupe said:

It looks like the only change that will require work on the PolicyBrain side is a new parameter, _CTC_new_refund_limited_all_payroll. That should be an easy update. We can wait on the next Tax-Calculator release.

OK.  Thanks for the quick response.

PolicyBrain 1.2.1 has been released and is in production.

Closing #772


fix memory leak in pubsub

Motivation

Default publish payload previously not formatted as JSON (already merged)
one line addition to fix a minor memory leak

Modifications
Change summary
Please describe what changes are included in this pull request.

Update default publish payload using JSON formatted string (EDIT: has already been added)
fix minor memory leak
code quality improvements (EDIT: has been added from the sonarcloud PR)

Revision diff summary
If there is more than one revision, please explain what has been changed since the last revision.
Testing

verified using mqtt test client

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

merging PR with another, closing this one


chore: add bb-pilcom to rust analyzer

#7317  👈
master

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

Join @fcarreiro and the rest of your teammates on  Graphite

Benchmark results
Metrics with a significant change:

proof_construction_time_poseidon_hash_100_ms (16): 719 (-24%)
proof_construction_time_poseidon_hash_30_ms (16): 200 (-30%)
proof_construction_time_sha256_ms (16): 707 (-23%)
avm_simulation_time_ms (Token:mint_public): 66.6 (-87%)
avm_simulation_time_ms (Token:assert_minter_and_mint): 179 (+193%)
avm_simulation_time_ms (Token:transfer_public): 53.9 (+67%)
app_circuit_proving_time_in_ms (Token:transfer): 13,457 (+16%)
app_circuit_proving_time_in_ms (AuthRegistry:set_authorized (avm)): 1,362 (-18%)
app_circuit_proving_time_in_ms (FPC:pay_refund (avm)): 24,369 (+33%)
protocol_circuit_proving_time_in_ms (base-rollup): 89,259 (+16%)
protocol_circuit_proving_time_in_ms (root-parity): 40,726 (+20%)
protocol_circuit_proving_time_in_ms (public-kernel-setup): 44,023 (+20%)
protocol_circuit_proving_time_in_ms (public-kernel-app-logic): 43,293 (+16%)
protocol_circuit_proving_time_in_ms (public-kernel-teardown): 46,502 (+24%)
protocol_circuit_proving_time_in_ms (public-kernel-tail): 189,361 (+24%)
protocol_circuit_proving_time_in_ms (root-rollup): 23,638 (+21%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,711
1,545 (-1%)
:warning: 707 (-23%)
769 (-8%)
773 (-6%)

proof_construction_time_sha256_30_ms
11,734 (-2%)
3,227 (+2%)
1,406
1,450 (+1%)
1,481 (+1%)

proof_construction_time_sha256_100_ms
43,865
11,743
5,460
5,379 (-1%)
5,372

proof_construction_time_poseidon_hash_ms
78.0
34.0 (-3%)
34.0 (-23%)
58.0 (-11%)
87.0 (-3%)

proof_construction_time_poseidon_hash_30_ms
1,516
415
:warning: 200 (-30%)
227 (-14%)
267 (-8%)

proof_construction_time_poseidon_hash_100_ms
5,741
1,560
:warning: 719 (-24%)
781 (-11%)
795 (-5%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
1,412
1,412
1,412

l1_rollup_calldata_gas
9,476
9,466
9,452

l1_rollup_execution_gas
611,215
611,356
611,493

l2_block_processing_time_in_ms
750 (-2%)
1,424 (+1%)
2,706

l2_block_building_time_in_ms
20,363 (-4%)
41,620
82,543

l2_block_rollup_simulation_time_in_ms
20,363 (-4%)
41,619
82,542

l2_block_public_tx_process_time_in_ms
17,365 (-4%)
38,425
79,327

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
7,070 (+1%)
9,972 (+2%)

node_database_size_in_bytes
12,259,408
16,166,992

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Function
time_ms
bytecode_size_in_bytes

GasToken:_increase_public_balance
67.0 (-5%)
13,790

GasToken:set_portal
17.3 (+16%)
3,339

Token:constructor
93.2
23,692

FPC:constructor
67.8 (+4%)
13,592

GasToken:mint_public
52.2 (-2%)
10,158

Token:mint_public
:warning: 66.6 (-87%)
19,034

Token:assert_minter_and_mint
:warning: 179 (+193%)
12,925

AuthRegistry:set_authorized
32.9 (+1%)
7,812

FPC:prepare_fee
112 (-14%)
15,062

Token:transfer_public
:warning: 53.9 (+67%)
31,218

FPC:pay_refund
145 (+4%)
25,260

Benchmarking:increment_balance
2,192
15,267

Token:_increase_public_balance
56.9 (+4%)
15,006

FPC:pay_refund_with_shielded_rebate
116 (-3%)
26,347

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.168 (+11%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.4 (-1%)
16.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.599 (-1%)
0.514
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
48.2
75.8
131 (-1%)
245
472

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.492 (-1%)
0.466
0.451
0.443
0.441

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
59.5
112 (+1%)
183 (-1%)
352
695

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.503
0.501
0.484 (-1%)
0.477
0.476

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
72.7
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
133
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.517
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
74,057
667,850

Transaction size based on fee payment method
| Metric |  |
| - |  |