[Feature] Persistent output nodes

It would be useful to define nodes that can not be removed from the graph using the editor. This would allow us to define "output" nodes that exist in every graph and serve as a reliable entry point for every graph (similar to the material output node of shader graph).
This feature could be implemented using a virtual property in BaseNode
public virtual bool IsPersistant => false;

or even a custom attribute, however, a virtual property would allow runtime changes to the persistence of the node and would work better with inheritance.

I'd also like this!

I'd also like this!

Hello,
In this example, I'm using the Capabilities of graphview to create such behavior (for an Output node that the user can't delete): https://github.com/alelievr/Mixture/blob/master/Packages/com.alelievr.mixture/Editor/Views/OutputNodeView.cs#L23
Do you think you could use this feature for what you need or does the API needs to be on the node part and not the view?

Hello,
In this example, I'm using the Capabilities of graphview to create such behavior (for an Output node that the user can't delete): https://github.com/alelievr/Mixture/blob/master/Packages/com.alelievr.mixture/Editor/Views/OutputNodeView.cs#L23
Do you think you could use this feature for what you need or does the API needs to be on the node part and not the view?

Thanks! I did not know about Capabilities.Deletable. I think setting the flag in the view is just fine for most cases. Having it as part of the BaseNode api would just be more convenient.
I think it would be great to include an example for this in the project or mention it in the docs since this is a common behavior seen in many different node based systems.
Feel free to close this issue or keep it around/reopen if you think it could be added to the api in the future :)

Thanks! I did not know about Capabilities.Deletable. I think setting the flag in the view is just fine for most cases. Having it as part of the BaseNode api would just be more convenient.
I think it would be great to include an example for this in the project or mention it in the docs since this is a common behavior seen in many different node based systems.
Feel free to close this issue or keep it around/reopen if you think it could be added to the api in the future :)

It makes sense to add this API in the BaseNode class so I added it here: https://github.com/alelievr/NodeGraphProcessor/commit/03452ed5ebc5eac0a7bced8f825b1013b43a1d63
Along with an output node example :)

It makes sense to add this API in the BaseNode class so I added it here: https://github.com/alelievr/NodeGraphProcessor/commit/03452ed5ebc5eac0a7bced8f825b1013b43a1d63
Along with an output node example :)


Add module path for di injector

Previous calls of helper.requireWrapper() didn't designate required module path, so the default ones are the path of on-core/di.js and its parent directories. Modules can be successfully injected when on-core is a real module under RackHD/on-http/node_modules/on-core, but will throw error about failure to find modules when using "npm link" in on-http to create a symbolic link of on-core to the local source code, since in the latter case, the working directory is RackHD/on-core/lib/di.js, and nodejs cannot find  modules in RackHD/on-http/node_modules.
So __dirname is added as a parameter in helper.requireWrapper() to ask di.js to find modules in current directory in on-http.

:+1:

Thank you! I made these changes in my local branch is well to work around the issue. I didn't catch that it was because of npm link though, that explains how it passed tests.
:+1:


[Help Wanted] How to turn on Options for Sphinx site

Can anyone help us turn on the "Options" for exporting to PDF and EPUB?
Not sure if this requires custom work, help would be appreciated from anyone might be familiar with Sphinx
Example below of what we're looking for from MongoDB documentation as an example.

Hi, @it33.
I think the "Options" is just linked by generated PDF and epub files.
In our Makefile, It is possible to generate.
How to make
Mac OS X
epub
$ make epub

$ open build/epub/Mattermost.epub

PDF(with LaTeX)
Install TeX Live (for Mac):
$ brew install cask mactex

Open new Terminal, and type this command.
You need to wait for a loooooong time... (I wasted 2 hours)
$ sudo tlmgr update --self --all

Generate:
$ make latexpdf
(press 'r' is error-skip)

$ open build/latex/Mattermost.pdf

In other approach, I had tryed to generate PDF with rst2pdf.
But, It is not good.
(*.md file is not supported, and there were some problems with the library dependencies.)
It is easy to generate this documents.
But It is difficult to generate "beautiful" documents, I think.
I hope this will help!

Looking at the source of the generated page for this, it looks like it's purely custom by the folks at Mongo.  Are you looking for a quick-coolness factor, or are you looking to solve a problem.  If the later, what are the requirements and Im sure I can whip up something identical.

Hi @terukizm,
Thanks for your comment, I'm sorry I missed it for some reason. It's very helpful. We'll work on converting the docs to .rst to support PDF based on your advice.
Hi @shieldsjared,
The key feature for us was to export to PDF, and to EPUB would be nice-to-have. We weren't aware this UI was custom, we though it was a setting that was flipped on. I'll update the title to emphasize this.
Our understanding is PDF would only work with Sphinx's RST format, and we've been starting the process of migrating our .md files to .rst. After the PDF export is enabled we have to continue that work.
Options might be:
1. Quick fix with link
A great addition would be to have a "PDF" link at the top of the page next to the "Edit on GitHub" PR you're working on when the file is .RST.
2. Full menu
So similar to screenshot, with some changes:

No need for version dropdown
Have PDF option with either "PDF (beta)" or "PDF" with the option only showing when file is .RST.
If it's easy, the same thing for EPUB, but not necessary
Report a Problem linking to: https://github.com/mattermost/docs/issues
Edit on GitHub to the other PR you're working on?

^ This is pretty complicated and I'd worry about a custom control needing tweaks here and there after it's created. It is slightly more useful with the addition of Report a problem link and has a coolness factor,
Totally up to you which you feel might work?
Thanks again for all your help, tens of thousands of people use docs.mattermost.com every month and your improving the experience for every one of them!

@it33 - going to digest this a little bit and see how some others have done their Report a Problem links. If I werent an engineer and noticed an issue on a page, my initial reaction wouldn't be to click an "Options" flyout...
This actually makes me wonder if this could be a great use case for the site chat feature that's been voiced.
...just thinking out loud...
I'm going to experiment with the PDF and see how ready the docs are, as-is. I find it crazy that Sphinx won't translate the markdown into PDF... Somebody else has to have run into that wall and solved it already.

Good news, @it33 : I spoke too soon... After spending more than a few minutes researching Sphinx and the RTD themes (again, i took this stuff on knowing zilch), the options pane IS built-in, and can be customized however you want it.  Here's a screenshot after minimal massaging of the built-in template (which was tailored for use on RTD).  Would you want to go-live with this without the PDF/EPUB options, and add that as a feature down the road, or would you prefer waiting until at least one option is available?

Thanks @shieldsjared!
I think every little bit helps, at least the "Report a Problem" link gets created.
We can open a new ticket to add PDF and EPUB independently to the options dialog later,
Thanks again for your help!!

Excellent. I'll submit very minor PR to make this happen tomorrow.
Get Outlook for iOS
On Wed, Aug 10, 2016 at 12:27 AM -0500, "it33"<EMAIL_ADDRESS>wrote:
Thanks @shieldsjared!
I think every little bit helps, at least the "Report a Problem" link gets created.
We can open a new ticket to add PDF and EPUB independently to the options dialog later,
Thanks again for your help!!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Closing as solved. Thanks @shieldsjared!


Chromebrew still not working

Fixed with the official fakemurk patch to enable cros_debug and confirmation that it doesn't trip anything in GAC.


[Forge] Universal Bone Meal + Right Click Harvest can cause duplicating sugar cane

https://github.com/Fuzss/universalbonemeal/issues/6

I can fix this once universalbonemeal updates to 1.20.2, I've chosen not to maintain versions lower than that except for critical bugs at this time

This might be fixed, I don't remember the cause but I recently changed some sugarcane code around

Assuming it is, please reopen if not


[WIP] Create unit tests with jest

Currently working on unit tests with jest. This is just a very basic attempt. I made my own mock file system so there may be alot of bugs. But with the system I believe we can keep track on what files are built.
I'm also attempting to mock out the fs-extra-promise and walk-sync so that we don't write/read from disk.
Rationale for using jest is:

comes shipped with mocking
by Facebook so it should be maintained
faster than mocha (which does not come with mocking)

Things to note:

Every module you want to mock needs a __mocks__ folder in the same directory as the module (except node_modules)
I'm using path module to resolve paths instead of mocking.\
I can't accurately copy directories and their contents with my system. problem arises when copying assets. I can tell that the directory is copied but I don't know what the sub files/directories are.
I'm not sure if I'm doing things right, and I'm not sure what items to test for. Do let me know.

I have added some comments in 64b2e9a. I'm not very sure about my naming choice so do let me know if arguments/explanation/method names can be worded better. Thanks!

I think this is a good start to ensuring Markbind is sufficiently covered by tests.
However, what would be the benefit of implementing our own mock file system? It seems that there are already packages for mock file systems such as mock-fs. Perhaps it would be better to use this in place of fs to mock out fs-extra-promise and walk-sync?

Hi @danielbrzn, I've looked into those mock file systems and actually tried to implement it with no success. So i decided to stick to my solution for now. It also adds another dependency to our project. However, using a existing, well written mock file system will be less buggy. Just that we still have to implement our own code as mock-fs, memfs does not implement fs-extra and fs-extra-promise methods. I think I can try to get it to work again later. For now my focus is to mock Page, Site, and Markbind.

I've updated the test to use memfs instead as following all the errors specified in the fs docs is too tedious/risky.

Moved to MarkBind/markbind#178


[Question] MS Edge legacy: after scrubbing audio disappears for few seconds

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
v2.5.9
Please ask your question
Hi,
Recently we found an issue in legacy MS Edge browser: after scrubbing in Edge browser audio disappears for few seconds. After that it restores and there are no issues with audio.
It can be reproduced on a shaka demo page with any test assets, for example:

https://shaka-player-demo.appspot.com/demo/#audiolang=en-US;textlang=en-US;uilang=en-US;asset=https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd;panel=HOME;build=uncompiled
https://shaka-player-demo.appspot.com/demo/#audiolang=en-US;textlang=en-US;uilang=en-US;asset=https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd;panel=HOME;build=uncompiled

It was observed that this issue is reproduced only in MS Edge legacy browser and only without headphones.
This issue was not observed in other browsers, including the new MS Edge on Chromium.
We've also checked this behavior on other streaming platform (Netflix, youtube, Dash player demo page ) in legacy MS Edge and seems like this issue is not reproduced on them.
Windows version:
Windows 10 Enterprise
Version: 1803
OS build: 17134.1184
MS Edge version
Microsoft Edge 42.17134.1098.0
Video with reproduced issue can be found here:
https://drive.google.com/open?id=1J-_RISS_cuOZOfsCBm_uflMqZImf7YXv
As we know only the latest version of the MS Edge browser is supported by the shaka-player. But lots of our users are still using the legacy Edge browser. Maybe you can advise us something to look into so we can proceed with the investigation and make our custom fix.
Many thanks in advance!

Can you try testing in older release branches of Shaka Player to see when the issue was introduced?  You can find an index of releases here: https://index-dot-shaka-player-demo.appspot.com/
Thanks!

Hi, @joeyparrish , sure,
We've made the check on the asset "Sintel" and the next results were observed:

this issue is reproduced on all the versions of shaka 2-x -x.
this issue is not reproduced on the versions of shaka-player 1-x-x

By the way, many thanks for the provided link to the page with all the shaka-player versions, it is really helpful 👍

Thanks for the info.  We will see what we can do.  Unfortunately, we already upgraded our Windows 10 lab machine to Chromium-based Edge, so we can't test this directly right now.  I'll try to find a way to get access to Edge legacy again.

It turns out that reverting to legacy Edge was very easy.  So we should be able to reproduce this issue soon.

great, thank you for looking into this issue

reproduced under my MS Edge too,
Microsoft Edge 44.18362.449.0
Microsoft EdgeHTML 18.18362
OS: Win10,
good for 1.6.5 https://v1-6-5-dot-shaka-player-demo.appspot.com/
reproduced from 2.0.0 https://v2-0-0-dot-shaka-player-demo.appspot.com/demo/
manifest
https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd

Hi @joeyparrish
We faced the same issue,
Did you have a chance to check it?

Unfortunately, we are all on lock down due to COVID here in the Seattle area, and our office is closed.  We don't have physical access to our testing lab at the moment, and an audio issue isn't something I can debug remotely.  I don't have local access to Edge while I'm working from home.
Please accept our apologies for the delay.  In the mean time, you might consider adding an interstitial dialog to your app asking users of legacy Edge to upgrade to the new Edge or another evergreen browser.  Legacy Edge is no longer being actively supported by Microsoft, and at some point we will have to drop support as well.

Hello Joey,
This behavior was tested with v2.5.15 and v3.0.3 shaka and this issue still observed.
Shaka 3.0.3 video with this issue:
https://drive.google.com/file/d/1JbZYo7sql7X1htBbucegB3VXtGhHn1ea/view?usp=sharing
MS Edge version
Microsoft Edge 44.18362.449.0
Thanks.

Quick update, though it's not much of one:
I still have not found time to debug this in person in the lab.  I'm the only person on my team with physical building access, and I'm juggling a lot right now.  We can all access the lab and legacy Edge remotely, but without sound, that doesn't help on this issue.
According to latest data on https://caniuse.com/usage-table, some 17% of Edge usage is still legacy Edge, though that is only 0.45% of overall browser share.  In the past, we have made support decisions based on a 1% threshold.
So although we would really like to be able to help...

I have no immediate access to legacy Edge in person to debug, making this very hard to look into
Usage of legacy Edge is globally very low, making this low priority
Legacy Edge is no longer supported by Microsoft, making this low priority again
The most likely cause of this issue is a bug in a now-unmaintained, closed-source browser, making this unlikely to be resolved
The problem resolves itself shortly after seeking, and only affects users without headphones, making this seem to be a very low severity bug

Combined, sadly, it seems best to close this issue.  Please accept our apologies for not being able to do more.


Fix web_server break device card

Typo from a refactor, previously the property was called entry, but I changed it to device for consistency. Forgot to rename it here

Still seeing this issue on the latest dev as of right now.  This is what my dashboard shows:


Limit position setpoint maximum distance from quad

The actual position controller was not designed to take position setpoints very far from the quadcopter. Currently when we give it a 5 m setpoint the quad will agressively tilt in the direction it wants to go. This results in poor optical flow and loss of precision which would add up with time...
The firmware needs to store the actual setpoint but limit the error in position to a smaller value such as 1m. This would have be tunable with a new parameter.

Doubt this issue is valid anymore, if our problem was the agressivity of the quad on far off setpoints, we can play with MPC_TILTMAX_AIR https://pixhawk.org/firmware/parameters


consistency marketplace and github

Deleted/renamed files

@maassenbas let's keep the meta data in version control so we can keep track of changes.


mock what happens in the container when it receives the sbom and sarif from the workflow

Originally, the workflow was using the anchore actions and supplying files to the imagecov action.
This has changed so that the customer workflow only needs to build the docker image and pass the tag to the imagecov action.
The imagecov action creates the finding.zip which will get uploaded to the service


Version 1.95 Chrome Freezes When Debugging with an breakpoint set in VS Code with ng test

Type: Bug
Description
When using VS Code to debug a project with Chrome attached, Chrome completely freezes if a breakpoint is set in VS Code. In the Sources tab in Chrome's DevTools, "Debugger paused" appears, but Chrome becomes unresponsive. If I use the debugger keyword directly in the code instead, debugging works as expected.
Steps to Reproduce
Run ng test on an Angular project.
Start a VS Code task to attach to Chrome’s JavaScript (for debugging).
Set a breakpoint in VS Code.
Observe that Chrome freezes completely when the breakpoint is setted, not hitted(need to refresh de page).
Observed Behavior
Chrome becomes entirely unresponsive when paused at the breakpoint set in VS Code. It only works correctly if the debugger keyword is used in the code.
If i remove the breakpoint and refresh the page will work normally.
Additional Information

This issue persists across multiple versions of Chrome, Chrome Canary, and Chromium.
Downgrading Chrome versions is the only workaround.
No Karma configuration adjustments have resolved the issue.
Reviewed all installed extensions and found none that should impact this behavior.
Apparently i can debug the web but not the tests.
No errores on Dev Tools.

Downgrade to 1.94 fixes the problem.
Karma config on chrome:
customLaunchers: {
ChromeDebugging: {
base: 'Chromium',
flags: ['--remote-debugging-port=9222']
}
},
reporters: ['progress', 'kjhtml'],
autoWatch: true,
browsers: ['ChromeDebugging']
Launch task attach:
{
"type": "chrome",
"request": "attach",
"name": "Attach to Karma Chrome",
"port": 9222,
"webRoot": "${workspaceFolder}",
"sourceMaps": true
}
Extensions

Extension
Version

angular.ng-template
18.2.0

bradlc.vscode-tailwindcss
0.12.12

dbaeumer.vscode-eslint
3.0.10

dsznajder.es7-react-js-snippets
4.4.3

eamodio.gitlens
15.6.2

formulahendry.auto-rename-tag
0.1.10

gruntfuggly.todo-tree
0.0.226

mechatroner.rainbow-csv
3.12.0

ms-vscode.js-debug-nightly
2024.10.2117

mutantdino.resourcemonitor
1.0.7

nrwl.angular-console
18.29.1

redhat.vscode-xml
0.27.1

ritwickdey.liveserver
5.7.9

syler.sass-indented
1.8.31

Is not working on any chrome version*.
Im using W10 Pro.
If i'm missing any information please let me know.

/jsDebugLogs

I have the same issue that launching Chrome causes Chrome to freeze/never stop loading when a breakpoint is set anywhere in VS Code.
Without any breakpoints set in VS Code, launching Chrome works as normal.
This is what's output in the Debug Console,
Created TensorFlow Lite XNNPACK delegate for CPU.
[33626:63747:1031/071043.913755:ERROR:ffmpeg_common.cc(970)] Unsupported pixel format: -1
Attempting to use a delegate that only supports static-sized tensors with a graph that has dynamic-sized tensors (tensor#58 is a dynamic-sized tensor).

Added the trace logs for the Chrome process.
vscode-debugadapter-a1e6a441.json.gz

Hello, I have the same issue when debugging (Launch) with Chrome/Edge a Vue3 typescript SPA application. I had to downgrade to 1.94.

Same issue here with Nextjs 14 on Vscode 1.95

Thanks, this issue should be fixed in js-debug-nightly already. I'll present it as a candidate for a patch release as well.

Another (possible) side-effect of this bug is that if you terminate Edge using the debugger's "Stop" button (instead of closing the browser), then the next time you launch an Edge debug session, you'll get an annoying "Restore Pages" prompt from Edge, because it thinks it wasn't shut down properly.  Reverting to VSCode 1.94 eliminates that nuisance as well.
It may be a separate problem... I'm just guessing it's related.

Is the fix included in the @id:ms-vscode.js-debug-nightly? I installed it and problem is still there.

I'm also seeing this repro in js-debug-nightly

Please collect a log file on nightly using these instructions if you still see this:

If you're able to, add "trace": true to your launch.json and reproduce the issue. The location of the log file on your disk will be written to the Debug Console. Share that with us.
⚠ This log file will not contain source code, but will contain file paths. You can drop it into https://microsoft.github.io/vscode-pwa-analyzer/index.html to see what it contains. If you'd rather not share the log publicly, you can email it to<EMAIL_ADDRESS>

I'm also seeing this also in js-debug-nightly. The team was unable to work today.

Still witnessed this issue today using js-debug-nightly. @connor4312 I sent you my logs, thanks a lot for your commitment. Please mail me if I can provide you with anything else to support your efforts.

Should be fixed in the just-published nightly

I confirm this is working for me. Thanks!

Trying it out in Code - Insiders
Version: 1.96.0-insider (Universal)
Commit: 231d37338a58ff22c223a7ed7d4c1e7142c513d2
Date: 2024-11-04T14:19:41.196Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Darwin arm64 23.6.0

Problem still exists. Having a breakpoint anywhere in the code when launching Chrome debugging causes Chrome to never stop loading.
Not having a breakpoint when launching works. Adding a breakpoint after launching and reloading Chrome triggers the same problem.
Trace:
vscode-debugadapter-7d1eeb1e.json.gz

@alkstal see my previous comment https://github.com/microsoft/vscode/issues/232651#issuecomment-2450365808

Sorry. I missunderstood "Should be fixed in the just-published nightly" and what nightly was in this context.

@alkstal
In VSCode, when you debug something running on nodejs or the sort, it uses a built-in extension named ms-vscode.js-debug (JavaScript Debugger). That extension follows the version of VSCode, and as of now, that is 1.95.1. The debugger bug was fixed in the nightly version of that debugger extension. Nightly is basically the latest dev build, they run a pipeline each day to deploy the latest code, often including various fixes that have not yet made it into the official release.
That being said, the bug should be fixed in official of VSCode 1.95.2 I believe.
Meanwhile, if you want the workaround fix using nightly, follow these steps:

Disable the VSCode extension "JavaScript Debugger" (ms-vscode.js-debug)
Install and enable the VSCode extension "JavaScript Debugger (Nightly)" (ms-vscode.js-debug-nightly)
Place a breakpoint
Run the code

Your breakpoints should now work.

@alkstal
In VSCode, when you debug something running on nodejs or the sort, it uses a built-in extension named ms-vscode.js-debug (JavaScript Debugger). That extension follows the version of VSCode, and as of now, that is 1.95.1. The debugger bug was fixed in the nightly version of that debugger extension. Nightly is basically the latest dev build, they run a pipeline each day to deploy the latest code, often including various fixes that have not yet made it into the official release.
That being said, the bug should be fixed in official of VSCode 1.95.2 I believe.
Meanwhile, if you want the workaround fix using nightly, follow these steps:

Disable the VSCode extension "JavaScript Debugger" (ms-vscode.js-debug)
Install and enable the VSCode extension "JavaScript Debugger (Nightly)" (ms-vscode.js-debug-nightly)
Place a breakpoint
Run the code

Your breakpoints should now work.

Did not work for me, Chrome is still frezzing after installing Extension "JavaScript Debugger (Nightly)" in VSCode 1.95.1
In the meantime, I've deactivated Update: Mode to none in File > Preferences > Settings, and I've installed VSCode 1.94.2 (https://update.code.visualstudio.com/1.94.2/win32-x64-user/stable)
Debug is working again !
(I'll check for VSCode 1.95.2 in a couple of days)

Verification steps:

Open wasm.zip
Set a breakpoint in helloworld.cpp and don't have the DWARF extension installed. (disabling does not work, must not be installed) You won't actually hit this breakpoint, but having a breakpoint is necessary.
npx serve to serve on port 3000
Try starting and stopping debugging several times

On current stable, you will soon get stuck in a loading state (shows NaN/NaN/ progress)
With the candidate, you should see "Hello world" logged correctly each time

I had downgraded to 1.94 to get around this issue, so when I saw 1.95.2 was released with this problem apparently fixed, I upgraded again. I set a breakpoint and ran my application, but Chrome stopped at the same place and I couldn't continue. My setup is Vue/Vite, similar to #232702 in setup and result, so this issue is not fixed for me.
Version: 1.95.2 (user setup)
Commit: e8653663e8840adaf45af01eab5c627a5af81807
Date: 2024-11-07T11:07:22.054Z (18 hrs ago)
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.19045

The same issue persists for me on version 1.95.2.
Version: 1.95.2 (user setup)
Commit: e8653663e8840adaf45af01eab5c627a5af81807
Date: 2024-11-07T11:07:22.054Z (19 hrs ago)
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.19045

Can also confirm that the problem still remains for me in 1.95.2.
Version: 1.95.2 (Universal)
Commit: e8653663e8840adaf45af01eab5c627a5af81807
Date: 2024-11-07T11:07:22.054Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Darwin arm64 23.6.0

For what it's worth, I am running a Nuxt 3 project.
Also instead of regular VS Code I've been using VS Code - Insiders with the nightly js-debug package on the side and there it works without issues. I don't know what the difference is between the two applications but that might also be interesting to know.

Same Issue for me too. I just sent you to the email de logs

Can confirm, the debugger issues persist on VSCode 1.95.2 using the built-in JavaScript Debugger. Using the Nightly debugger is still a viable workaround on my end.

Folks hitting this on 1.95.2 should continue to use js-debug-nightly https://github.com/microsoft/vscode-js-debug/?tab=readme-ov-file#nightly-extension


Support member access on parameter and constant introduced in entity equality

Entity equality introduces member access expressions on what may be a
parameter or a constant. Identify these cases and transform them into
a new parameter (for access of a parameter) or evaluate the constant.
Fixes #15855
Notes (additional comments inline):

For now the logic is implemented in RelationalSqlTranslatingEV. In theory it should be moved to an earlier, independent visitor in the optimization phase, this way this can be used for non-relational. However, that would require distinguishing between ParameterExpressions that correspond to closures (which we're looking for) and all other lambda ParameterExpressions (which we don't care about). In other words, ParameterExtractingEV made our job difficult by replacing constant expressions with TypeAttributes.NestedPrivate to ParameterExpression. We could go around this by having ParameterExtractingEV inject a special, custom ParameterExpression which we could easily identify later - not sure if that's a good idea. We can always revisit all this later.
For now, when a member access is encountered on a parameter, we generate a new parameter appending _<member name>, e.g. @__local_0_CustomerID. We could go the extra mile to make this @__local_CustomerID_x if it's important - ideally that would mean the QCC has access to the QueryContext (to see how many parameters are on it), or we can code-generate calculating it in runtime, which seems bad.
In theory we could encounter nested member access on parameter (e.g. captured.x.y), but I don't think anything in our pipeline can currently generate this. Entity equality will always tack key properties on an entity that was parameterized up-front by ParameterExpression (so one level only). Assuming global filters are only parameterized for a simple tenant ID on the context, it's simlarly impossible. So I'm leaving this problem out of scope unless you have an example where it's important.
The current ParameterExtractingEV, as it's used by #16327 for query filters, seems like it could use some refactoring :) Basically the same visitor is used in two modes - when used in the frontend _generateContextAccessors is false and it produces actual parameter value. When used for query filters, that flag is true and instead it produces lambdas... This is why #16327 added Dictionary<string, object> to QCC but it always contains lambda values. I'd like to take a look and see if it could be cleaner, i.e. two subclasses - one for the frontend and another for the filters.

Need to update PR for Cosmos (always forget that), will do that tomorrow.

Thanks for guidance @smitpatel, all makes sense - was mainly confused around identifying the parameter, and about the possible need to perform the logic generically for other possible visitors which may produce property access. The new version performs everything with EE.

QCC should not have direct access to QC. For that purpose, we use different prefix. QueryFilter got own prefix. Since the functionality of runtime parameters from query filter and EE is merging, we can determine a runtime parameter prefix and use it. The numbering will auto-adjust since QCC has size.

Makes sense. I still propose to keep the EE and query filter parameter prefixes distinct, to help debugging where the parameters came from. We can keep "__" for regular parameters, and have "EE" and "QF" for entity equality and query filters, respectively. How does that sound?

Refactoring has low value. When it produces lambdas for query filter, it still evaluate partial expressions to generate constants. So evaluating subtree part is not going away regardless of it generating contextAccessor

My problem here is mainly with the fact that ParameterExtractingEV populates parameterValues sometimes with values, and sometimes with lambdas. I can take a quick look at this when I start looking at #16327, no need to discuss this now.

Also fixes https://github.com/aspnet/EntityFrameworkCore/issues/14645

Also resolves https://github.com/aspnet/EntityFrameworkCore/issues/14644 since parameters are added to parameter values before we go through translation/SQL generation phase.

Want to give this a last quick look @smitpatel? If not I'll merge.

Windows build failed with the following, merging:
      System.InvalidOperationException : Internal connection fatal error.
      Stack Trace:
           at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
           at Microsoft.Data.SqlClient.SqlDataReader.TryCloseInternal(Boolean closeReader)
           at Microsoft.Data.SqlClient.SqlDataReader.Close()
        /_/src/EFCore.Relational/Storage/RelationalDataReader.cs(134,0): at Microsoft.EntityFrameworkCore.Storage.RelationalDataReader.Dispose()
        /_/src/EFCore.Relational/Query/Pipeline/QueryingEnumerable.cs(172,0): at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalShapedQueryCompilingExpressionVisitor.QueryingEnumerable`1.Enumerator.Dispose()
           at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
           at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
        /_/test/EFCore.Specification.Tests/TestUtilities/QueryAsserter.cs(403,0): at Microsoft.EntityFrameworkCore.TestUtilities.QueryAsserter`1.AssertQuery[TItem1,TItem2](Func`3 actualQuery, Func`3 expectedQuery, Func`2 elementSorter, Action`2 elementAsserter, Boolean assertOrder, Int32 entryCount, Boolean isAsync, String testMethodName)
        /_/test/EFCore.SqlServer.FunctionalTests/Query/SimpleQuerySqlServerTest.Where.cs(1057,0): at Microsoft.EntityFrameworkCore.Query.SimpleQuerySqlServerTest.Where_not_in_optimization3(Boolean isAsync)
        --- End of stack trace from previous location where exception was thrown ---


New target_type structure

Hello,
We are using target_type (from core/targets.py) to define the target type (HTTP, SINGLE_IPv4, SINGLE_IPv6, RANGE_IPv4, etc...).
It's best to improve the URL section to detect the URL types such as (ssh, ftp, smtp, etc..) to make it work better!
Regards.

Means like "ftp://". So that our scanning and bringing data from 21 port is specially targeted.

an example ==>   ftp://linux.org.

Hey,
Yes, I meant like ftp://anywebsite or ftp://anywebsite:5000 to specify the port.
Regards.


Fix meld package that broke the hicolor icon theme.

This breakage was cause by the package outputing its own
version of index.cache to share/icons/hicolor.
Used the hicolor_icon_theme hook to perform automated cleanup.

Thanks.


custom_headers overwritten?

I have a hard time wrapping my head around this ensure block
https://github.com/chingor13/json_api_client/blob/a42c6fd66a7a64b3f961c8936534d6436d2c9e1b/lib/json_api_client/resource.rb#L151
Is it supposed to read like this?
self._custom_headers ||= {}

Otherwise, wouldn't custom headers be ignored?

The with_headers class method is meant to temporarily set extra headers only within the context of the block provided. The way it's currently implemented, you cannot nest these.
Example:
MyResource.with_headers({'X-Foo' => 'Bar'}) do
  # makes a request to /my_resources with a X-Foo=bar header
  MyResource.all
end

If we use self._custom_headers ||= {}, we wouldn't reset the headers afterwards and it would even leak between requests.

makes sense, thank you Jeff!


Highlighted menu item seems to be one item above what is current

This doesn't happen on all my content, but if you load this page I'm working on:
https://developers.theapartmentnetwork.com/
You will see that if you click "/Availability" in the menu, that it scrolls down but that the item above in the menu is still highlighted.

Hello @arkid , glad to see my little work on a project!
I made a small fix for your problem, all you have to do is update js/script.js file.
Don't forget to refresh your cache.
Please let me now if its ok for you!

Thanks so much, seems to work! :)


Introduce HttpProvider

Changes:

extract resources provider from Lockable

Provider (abstract)
ProviderList  (when resources is given as plain list of objects)
ProviderFile (when resources are given as file)
ProviderHttp (when resources are given as http url)

support http resources provider

possible to give resources as http url, like http://localhost/resources

Internal changes:

Lockable._resource_list reload list from file/http and return list of resource objects
Constructor (re)load resources

Ready for review?

there is coverage decrease but Im not sure where it comes since it doesn’t happen in my machine… have to figure out still

Smoke tests of HTTP provider are positive. Noticed one possible issue though. Is it expected that lockable --resources http://localhost:3000/resources --requirements '{"online": true}' --hostname nuc01.maas ls leads two 4 separate get requests to server?


If 'Label' and 'Value' are not identical Answer is not displayed on Summary

Expected behaviour
Should still display and not be affected if they are different
Actual behaviour
If they are different does not display Answer on the Summary
Steps to Reproduce the Behaviour
Technical information
This should not affect what gets displayed on the Summary page.
Potential fix somewhere in the code we use the label and not the value
Browser
All of em
Operating System
All of em
Screenshot

Does this affect all answer types?

@jonnyshaw89 just checked with different label and value for the Radio answer type and it still got displayed on the Summary page.

So we think this is specific for Checkbox?

By the looks of things "Yes"


ManyToMany join table model generates empty inputs

Bug description
When I define models with ManyToMany relation and separate join table (it's happening when introspecting the existing database), Prisma client generates empty inputs for update many operations on that join table model:

How to reproduce

Generate Prisma client from schema below.
Then try to make updateMany operation - you're not allowed to pass any keys to data object:
await prisma.studentClass.updateMany({ data: {}, where: { classId: 1 } });

Expected behavior
When mutation input has no fields, the whole operation should be not available as it makes no sense.
It should be removed from DMMF so other prisma ecosystem tools don't suffer from this issue.

Prisma information

model Student {
  id           Int            @id @default(autoincrement())
  name         String
  StudentClass StudentClass[]
}

model Class {
  id           Int            @id @default(autoincrement())
  name         String
  StudentClass StudentClass[]
}

model StudentClass {
  studentId Int
  classId   Int
  student   Student @relation(fields: [studentId], references: [id])
  class     Class   @relation(fields: [classId], references: [id])

  @@id([studentId, classId])
}

Environment & setup

OS: Windows 10 x64 @ WSL2 Ubuntu 20.04
Database: PostgreSQL
Node.js version: 14.13
Prisma version:

@prisma/cli          : 2.9.0
@prisma/client       : 2.9.0
Current platform     : debian-openssl-1.1.x
Query Engine         : query-engine 369b3694b7edb869fad14827a33ad3f3f49bbc20 (at<EMAIL_ADDRESS>Migration Engine     : migration-engine-cli 369b3694b7edb869fad14827a33ad3f3f49bbc20 (at<EMAIL_ADDRESS>Introspection Engine : introspection-core 369b3694b7edb869fad14827a33ad3f3f49bbc20 (at<EMAIL_ADDRESS>Format Binary        : prisma-fmt 369b3694b7edb869fad14827a33ad3f3f49bbc20 (at<EMAIL_ADDRESS>Studio               : 0.296.0
Preview Features     : connectOrCreate, atomicNumberOperations

I can reproduce this. I agree this is confusing for link tables to empty input. We should fix this.

@pantharshit00 Any news about fixing that issue? 🤔

We candidated this again for 2.19 again. Looks like this was missing the label so didn't get picked up earlier

Folks using typegraphql-prisma are running into this quite a lot.
Issues:

https://github.com/MichalLytek/typegraphql-prisma/issues/19
https://github.com/MichalLytek/typegraphql-prisma/issues/76

Yes, @matthewmueller is right, this is very problematic for typegraphql-prisma users.
Is there any news about the fix?

Hello, there are any idea when this issue will be solved?

I can confirm this is happening with any kinds of M:N relationships.
Right now this is blocking me from migrating from TypeORM to prisma, because it, in turn, causes a roadblock for typegraphql-prisma's type generation process.

Unfortunately, we can't dedicate time to filtering out empty input types in the near future. Is it possible for you to filter these types somehow on the application layer to make it play nice with graphqljs?
The issue is not as simple as it seems because filtering empty input types implies that certain arguments (like data) are not always present on the input types anymore, breaking certain assertions in the query core that, while not hard to fix individually, require a great deal of diligence to get right in total.

The issue is not as simple as it seems because filtering empty input types implies that certain arguments (like data) are not always present on the input types anymore

That's also my concern and a hard thing to do right by myself.
I believe it should be solved on Prisma level because those empty types allows users to try to do impossible things like updateMany for custom N-M relations:
await prisma.studentClass.updateMany({ data: {}, where: { classId: 1 } });

In the example above, data is always of an empty object type.

Bump! It's been a half-year since the last comment 😛
It's a pretty urgent issue I believe, and the workarounds are hard to achieve. 😞

Bump it's a problem that I have encountered.. Are there any updates on this?

Solutions?

Has there been any movement on this? So far there has been only one model that is affected by this issue, but it would be great not to have to worry about it. The workaround that I use is to patch the model with a dummy value right after the Prisma schema is generated. I use a script that runs the command npx prisma db pull,  then the script uses sed to find the model in the schema and inject the dummy value. This works pretty well.

I'm hitting this issue as well generating a schema against a large legacy database with a lot of many-to-many join tables.  Are there any updates on this issue?
@andrewleverette - Interesting workaround, would you be willing to share your script that you use?

I can confirm that this issue is reproducible on the 2.9.0 version you were using. Given your schema, the generated types are:
export type StudentClassUpdateManyMutationInput = {}

export type StudentClassUpdateManyArgs = {
  data: StudentClassUpdateManyMutationInput
  where?: StudentClassWhereInput
}

StudentClassUpdateManyMutationInput is empty.
And at runtime, the updateMany call throws an error:
><EMAIL_ADDRESS>dev /Users/danielstarns/code/clones/prisma/reproductions/reproductions/gh-4004
> pnpm ts-node ./index.ts

Invalid `prisma.studentClass.updateMany()` invocation in
/Users/danielstarns/code/clones/prisma/reproductions/reproductions/gh-4004/index.ts:61:29

{
  data: {
    studentId: 3
    ~~~~~~~~~
  }
}

Unknown arg `studentId` in data.studentId for type StudentClassUpdateManyMutationInput. Did you mean `select`? Available args:
type StudentClassUpdateManyMutationInput {

}

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>dev: `pnpm ts-node ./index.ts`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/danielstarns/.npm/_logs/2022-09-13T14_44_55_034Z-debug.log

However, if you use the latest version of Prisma the generated types are:
StudentClassUpdateManyMutationInput still empty, but we now generate the StudentClassUncheckedUpdateManyInput type.
export type StudentClassUpdateManyMutationInput = {}

export type StudentClassUncheckedUpdateManyInput = {
  studentId?: IntFieldUpdateOperationsInput | number
  classId?: IntFieldUpdateOperationsInput | number
}

/**
 * StudentClass updateMany
 */
export type StudentClassUpdateManyArgs = {
  /**
   * The data used to update StudentClasses.
   *
   **/
  data: XOR<StudentClassUpdateManyMutationInput, StudentClassUncheckedUpdateManyInput>
  /**
   * Filter which StudentClasses to update
   *
   **/
  where?: StudentClassWhereInput
}

And now longer throws a runtime error.
I have written a reproduction here for internal use, https://github.com/prisma/reproductions/tree/main/gh-4004
For users having this issue I suggest you update to a newer version of Prisma.


Rethink the credential we used in JAVA test source code and recording files

Current Status
We already setup the cred scan steps in aggregate-report, and we can check the error report here: link
However, team keeps checked in new files containing new keys which failed the pipeline.
Open Issues to address
We have the suppression file to suppress some of the existing issues.
It is a huge effort if we suppress all newly detected keys in suppression file, since most reported cases are false positive. However, blindly suppress the key probably hide the real issues. Therefore, we have to rethink how we generate those keys and reuse them as many as possible.
Facts
Currently, we basically have 3 types of errors:

Placeholder key/secret in test src code. E.g password = "123".
We'd better to reuse the fake key inside of the suppression file instead of generating new ones for new tests.
Files only which contain the key, mostly appears in keyvault and identity. E.g client.jks, pemCert.pem
If any new service needs to reuse the same key, it is better to move the key files into some common space, so we do not need to suppress them one by one for each service.
(Important) SAS, share key, web hook token, hashkey etc
For this category, we saw a lot of random generalized key/secret/token. Team is better to review how each service generates those keys, and whether we can share the same type of key for all services, so that we can reuse and suppress certain amount of keys only. Can we reuse redact string instead of real ones?

The credscan work is done. Closed the issue.


LT: Add NAAT and RAT test certificates

Changelog:

Added NAAT (Nucleic acid amplification with probe detection) and RAT (Rapid Antigen Test) test certificate variants.
Reissued vaccination and recovery certificates.

Changes by: @karalgie @Tomas-Alb

Android 1.11 🆗

iOS <IP_ADDRESS>(7) 🆗


Why the channel changed after first downsample

From the supplementary of your technical report

Why the channel changed?
Thanks!

Hi,
Thanks for pointing it out. It was a typo. The conv number of channels should've been 32 instead of 16 in the 256 layers. Sorry about that!

Thanks!


Update CI doc based on #58

Update CI doc based on #58

@fmuyassarov Can you please add the same thing in metal3-io/project-infra jenkins doc file ? thank you

@fmuyassarov Can you please add the same thing in metal3-io/project-infra jenkins doc file ? thank you

done


johndanz/ch11899/use-new-ledger-libs-that-don-t-dep-on-node

https://app.clubhouse.io/augur/story/11899/use-new-ledger-libs-that-don-t-dep-on-node-hid
Adjusted package.json to allow for node 10.
removed ethereumjs-ledger (rip) for the ledgerjs lib
Adjusted approval/fillOrderOnly detection/notification text

Coverage increased (+0.001%) to 63.831% when pulling 9d8a4cb441821c4f1626543dfa9a5364dd3996c3 on johndanz/ch11899/use-new-ledger-libs-that-don-t-dep-on-node into 53db7937ef5af11fcb2589121cca34e0aa31c629 on master.

Nice!


Improve EnvelopeMapping

There is confusion when setting resourcesPathPrefix and envelopePath for EnvelopeMappings on each extension.ts (VS Code channel) file. Although this confusion is "undone" in VsCodeKieEditorControllerFactory and no issues are seen, this is still incorrect.
To avoid such confusion, I'm adding an args object to the EnvelopeMapping constructor so that auto-completion can guide with named parameters when creating EnvelopeMappings.
I also fixed the @kie-tools-examples/webapp during the validation of these changes.
We should probably revisit [1] because this is another potential point for confusion.
[1] https://github.com/kiegroup/kie-tools/blob/main/packages/editor/src/embedded/embedded/EmbeddedEditor.tsx#L89

cc @yesamer


Updates wpcli pull to include rsync if port is set

I need this too, hope the PR can be processed soon. Thanks.

@pablojmarti Looking good! =)

@pablojmarti @wkw Released and published.
https://rubygems.org/gems/capistrano-wpcli/versions/0.1.5


Update play, play-test to 2.7.5

Updates

com.typesafe.play:play
com.typesafe.play:play-test

from 2.7.4 to 2.7.5.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.typesafe.play" } ]

labels: library-update, semver-patch

Coverage remained the same at 91.379% when pulling 0ad2049fbf8149a2c7e70d22eb3b2f397cad5076 on svc-as24-fizz-readonly4:update/play-2.7.5 into d7b2aa05674e8f964c84fe4bd6640131b02eaace on AutoScout24:master.


Automate generating stripe fixtures

@rishig This is ready for a review.

ok, I see a few issues with the current approach:

Clearing and setting up the database before each generated fixture (i.e. the role of setUp). If it were just the billing tables, we could just delete() the billing tables before each run, but the billing code also affects the Realm table, the UserProfile table, and possibly others in the future. Not impossible to fix, but definitely messy.
The fixtures here are too generic; e.g. we don't want to expand extra fields of the stripe object if the actual code wouldn't have had access to the expanded fields; we don't want to add a coupon for fixtures where the user would not have had a coupon, etc.

I'm thinking a more maintainable approach might be to bake the fixture generation into test_stripe itself.
So test_initial_upgrade will look like
    @mock.patch("stripe.Customer.create", side_effect=mock_create_customer('initial_upgrade'))
    @mock.patch("stripe.Subscription.create", side_effect=mock_create_subscription('initial_upgrade'))
    def test_initial_upgrade(self, mock_create_subscription: mock.Mock,
                             mock_create_customer: mock.Mock) -> None:
        ...

And then
mock_create_customer('initial_upgrade') will either read from a fixture file or write to it based on some constant declared at the top of the file (like GENERATE_FIXTURES)

mock_create_customer('initial_upgrade') will either read from a test-specific fixture file or write to it based on some constant declared at the top of the file (like GENERATE_FIXTURES).

One way to implement this could be
def mock_create_customer(test_name: str):
    get_mock_data(stripe.Customer.create, test_name)

And then get_mock_data can handle all the logic of reading and writing to the file, replacing stripe_customer_ids, etc.

Merged, after a couple of changes. Nice work! This is probably the technically most complicated code I've reviewed or worked on with Zulip. I've also come over to calling setup_stripe from the tests, and using call_count.
Closing this, since as a next step I think I'll want to migrate a few tests myself to see if we want to add an easy way to reuse fixtures.
Thanks @hackerkid!


MM-23699: Remove backbutton for when invalid callback url

Summary
OAuth2.0: Incorrect Callback URL during authentication allows user to go "Back to Mattermost" in the authentication window. This PR removes the "Back to Mattermost" button.
Ticket Link
https://mattermost.atlassian.net/browse/MM-23699
Related Pull Requests
https://github.com/mattermost/mattermost-server/pull/15001
Screenshots

/update-branch

/update-branch

/cherry-pick release-5.27


avoid ResourceWarning in DataBody.__aiter__

Avoid a ResourceWarning by avoiding an async generator

fixes #301

Checklist:

[ ] Add tests that demonstrate the correct behavior of the change. Tests should fail without the change.
[ ] Add or update relevant docs, in the docs folder and in code.
[ ] Add an entry in CHANGES.rst summarizing the change and linking to the issue.
[ ] Add .. versionchanged:: entries in any relevant code docs.
[x] Run pre-commit hooks and fix any issues.
[x] Run pytest and tox, no tests failed.

tests are tricky for this, as it only causes the warning on quart-trio

Thanks


Serverless Observability Open Source Section

This is a part 2 of serverless observability best practices guide. It focuses on using ADOT Lambda Layer for instrumenting AWS Lambda functions.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@poprahul , we are unable to merge this due to some on-going internal discussions. Let's chat about this.


adding new functionality suggested in #107

locate_columns() allows users to manually locate separators between columns. It adopts the approach of the "reduced" widget from the related function locate_areas(). The output can be used as the columns argument in extract_tables().
#107
Please ensure the following before submitting a PR:

[x] if suggesting code changes or improvements, open an issue first
[x] for all but trivial changes (e.g., typo fixes), add your name to DESCRIPTION
[x] for all but trivial changes (e.g., typo fixes), documentation your change in NEWS.md with a parenthetical reference to the issue number being addressed
[x] if changing documentation, edit files in /R not /man and run devtools::document() to update documentation
[ ] add code or new test files to /tests for any new functionality or bug fix.
[x] make sure R CMD check runs without error before submitting the PR

I am not familiar with test files. Could anyone help me here? How do I test an interactive function?

I don't understand why build job 110.5 failed on travis. Any ideas?

Codecov Report

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

@@            Coverage Diff            @@
##             master     #108   +/-   ##
=========================================
  Coverage          ?   52.25%
=========================================
  Files             ?       13
  Lines             ?      666
  Branches          ?        0
=========================================
  Hits              ?      348
  Misses            ?      318
  Partials          ?        0

Continue to review full report at Codecov.

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

let me test how these changes go with tabula 1.0.5

hi @T-Engel
I will build again after fixing all the conflicts and try with gh-actions


Populating Values into Insert Row from Existing Grid

This may be a completely novice question, but I have a situation where I need to frequently enter similar types of data in the grid control.  Often the only difference between rows is a single field.  I'm looking for a way to click a row or initiate some type of action to have the data replicated into the insert row.
Any help or guidance on how to do this would be greatly appreciated.
Also, thanks a million for this awesome grid control, it's been wonderful to use so far!

You currently cannot pass default data into the insert row function, so you would have to set the values external of the JsGrid library.
You could add a parameter to the internal _insert function but it might be more trouble than its worth

@bojansoldan, did you manage to find a solution finally?
Have you tried to follow @richraid21's advices?

@richraid21 @tabalinas I am looking for kinda the same here I guess #936 please help me sort this out and the light at the end of the tunnel LOL. TY (BTW this is awesome so far!!)


Python examples in Windows

Description
Example python scripts do not run in Windows, process exits with the following error:
import pyclariuscast
ModuleNotFoundError: No module named 'pyclariuscast'
I cannot find this pyclariuscast module.
What has been tried:

Run from within an IDE (Python3.11 through PyCharm) and from the terminal (Python3.10 through PowerShell).
I followed issue #145 and have included the .lib and .dll files in the same folder as the scripts.

To Reproduce
Steps to reproduce the behavior:

Download cast-11.2.0-windows.x64 release.
Download cast-master.
Copy cast.dll and cast. lib from the Windows release into the examples/python directory.
Run pysidecaster.py/pycaster.py/pyimu.py script, either in an IDE or from the terminal.
Error is displayed.

Environment:

SDK variant [e.g. python wrappers, iOS Framework]: Python scripts.
Development platform [e.g. Linux, Xcode]: Windows 11.
SDK version: 11.2.0
Clarius App version: NA

Other

I have attempted to run the Linux version with no luck either using WSL and various python versions. The scripts cannot locate the libcast.so and pyclariuscast.so files even once they have been moved into the same directory as the python script. This is not my main concern, as I would prefer to have this running in Windows.
It is possible that I may just not know how to use .dll files. If there is a specific resource I need to use to get the example python scripts running in Windows could that please be supplied?
It is mentioned in the examples/python README.md that the pyclariuscast wrapper has been made to make this process easier. Where is this wrapper?

Hi thanks for reporting it seems some files are missing in the released archives, we will look at it.

Thanks!

Is this fixed ?

It does not look like it. The last commit in the python examples is still from 5 months ago.

Hi we have updated the Windows asset for Clarius Cast v11.2.0 here, it now contains the missing python libraries pyclariuscast.pyd. You can download it here: https://github.com/clariusdev/cast/releases/download/v11.2.0/cast-11.2.0-windows.x86_64.zip.
Let me know if this works for you, thanks for your patience.

Things seem fine now, thanks a bunch!

Good then I will close the ticket, don't hesitate to re-open it if needed. Thanks again for reporting the issue!


[Popper] Display property not applied correctly when keepMounted is set

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
When keepMounted is true and transition is true

On Popper initialization it is visible.
It has these styles:

    position: fixed;
    top: 0px;
    left: 0px;

and it does not have display: none. So if you have some element under Popper you will not be able for example click on that element.

After showing and then hiding Popper these styles are removed:

    position: fixed;
    top: 0px;
    left: 0px;

and also  Popper does not have display: none.
Expected Behavior 🤔

On Popper initialization it must not be visible and it should have display: none.

When hiding Popper it should also have display: none.

Steps to Reproduce 🕹
codesandbox
Steps:

open codesandbox
find button with label Not clickable on init. This button shows I'm clicked! message when it is clicked.
try to click on it. No message is shown because of Popper component which is above this button.

Steps:

open codesandbox
you can see text to the right of the button it is to the right of the button.
find button with label Toggle Popper. This button shows and hides Popper.
click on it twice(show and then hide Popper)
now text to the right of the button is under the button but should be to the right of the button.

Your Environment 🌎
Any browser.
Dependencies list is shown in the attached codesandbox example.

@siriwatknp could you please look at this issue?
Here is sandbox from documentation. Just add keepMounted to Popper component in this sandbox and you will see that you can't click the button.

Got fixed in #29233. Issue was not linked in the PR.


SRL output has an empty argument

For the sentence

`` We just do n't think that the levels of profitability are as high as the projections the company has put together . ''

the output is as follows:
think ARG0 We
think DIS just
think NEG n't
think ARG1 that the levels of profitability are as high as the projections the company has put together
put ARG1 the projections the company has put together
put ARG0 the company
put ARG2

The last line has nothing in the argument, which looks like a bug.
CC: @nschneid

Thanks! That's definitely a bug, I'll look into it.

I couldn't reproduce this with the latest version of the code, so hopefully it's fixed.


Update all files to new header

Wie sollen wir den header der Dateien gestalten?
Aktuell steht überall:
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 16 12:40:23 2020
developed by Felix Panitz* and Peter Stange*
* at Chair of Building Energy Systems and Heat Supply, Technische Universität Dresden
"""

Modern Header Practices for Python Files
Introduction
When structuring Python files, it's important to follow modern conventions to ensure clarity, maintainability, and compatibility with professional standards. This guide outlines best practices for file headers, metadata, and documentation.

1. File-Level Docstring
Each Python file should include a concise docstring at the top, explaining its purpose and functionality. Avoid including personal details or timestamps directly in the file.
Example:
"""
Data processing utilities for energy system models.

This module includes methods for aggregating time series data and
generating visualizations. Part of the flixOpt package.
"""

2. Metadata in init.py or version.py
Project-wide metadata, such as authorship and licensing, should be stored in a top-level file like __init__.py or __version__.py. This ensures consistency and makes metadata easily accessible.
__author__ = "Felix Panitz, Peter Stange"
__copyright__ = "Technische Universität Dresden"
__license__ = "MIT"
__version__ = "1.0.0"

This approach avoids cluttering individual files with repetitive information while maintaining easy access to metadata.
3.  In Python 3, UTF-8 is the default encoding, so these lines are unnecessary unless compatibility with legacy systems is required.
setup.py
Alternatively to storing version and author information in the package files itself, using setup.py is best practice

I would suggest we remove the whole author and time stamp stuff, as well as the utf8 stuff, and put everything in the setup.py (what we already have mostly).
Then we can use the file headers for its common purpose: information about the content of the file and its purpose in the package

Können wir gerne so machen. Allerdings ggf. besser in eine license.txt ablegen.

Gut, licence.txt ist gesetzt!
Der Rest kommt in setup.py.
Ich würde so oder so bald auf pyproject.toml updaten. Da ist dann alles auch besser strukturiert drin
https://packaging.python.org/en/latest/tutorials/packaging-projects/
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#writing-pyproject-toml
Denke das wird aber eher 1.0.1 oder so

Alles auf englisch.
Python Version 3.9 weg

Closed by #90


docs: optimization.realContentHash default value

According to https://github.com/webpack/webpack/blob/4baf1c075d59babd028f8201526cb8c4acfd24a0/lib/config/defaults.js#L1415C1-L1416C1, set optimization.realContentHash default value.

[x] Read and sign the CLA. PRs that haven't signed it won't be accepted.
[x] Make sure your PR complies with the writer's guide.
[x] Review the diff carefully as sometimes this can reveal issues.
[x] Do not abandon your Pull Request: Stale Pull Requests.
Remove these instructions from your PR as they are for your eyes only.

Thank you


Add QueueType model

This PR simply adds a model to type the possible queue types.
It also add some useful argument keys.
I was tempted to add the queue type as parameter of DeclarationQueueConfig with default as Classic.
The problem is that semantically, since it is part of the configuration, we should override the the args and this creates breaking changes.
We could consider to let the user override this config like this
    override def declareQueue(channel: AMQPChannel, config: DeclarationQueueConfig): F[Unit] =
      Sync[F].blocking {
        channel.value.queueDeclare(
          config.queueName.value,
          config.durable.isTrue,
          config.exclusive.isTrue,
          config.autoDelete.isTrue,
          Map(`x-queue-type` -> config.queueType.asString) ++ config.arguments
        )
      }.void

I would also add it to the DeclarationQueueConfig, but without the default value. I am fine with the breaking change :) Just add the Classic to DeclarationQueueConfig.default

I would also add it to the DeclarationQueueConfig, but without the default value. I am fine with the breaking change :) Just add the Classic to DeclarationQueueConfig.default

What if the user set a queue type in the args ? I mean if we override the value we introduce a breaking change
// without these changes - declared as quorum
.declareQueue(
  DeclarationQueueConfig
      .default(QueueName("QUEUE"))
      .copy(arguments = Map("x-queue-type" -> "quorum"))
)

// with these changes - declared as classic since we override the value
.declareQueue(
  DeclarationQueueConfig
      .default(QueueName("QUEUE"))
      .copy(arguments = Map("x-queue-type" -> "quorum"))
)

It isn't trivial to keep args open but synced with the queueType field

Oh, I can see it now, thanks for the clarification. In that case, do we event want to introduce this explicit implementation/configuration? The other config types corresponds almost exclusively with the underlying java library and queue type is only implemented via args there. Maybe some helper enum which will just wrap ("x-queue-type" -> "quorum") can be sufficient? What do you think?

Something like:
sealed trait QueueType extends Product with Serializable {
    def asString: String = this match {
      case QueueType.Classic => "classic"
      case QueueType.Quorum => "quorum"
      case QueueType.Stream => "stream"
    }

  def argument: (String, String) = "x-queue-type" -> asString
}

queue type is only implemented via args

Correct
Yes, unfortunately I think the best solution is just to let the user specify the args.
Eventually we could provide 3 new smart constructor for DeclarationQueueConfig to build the definition with this arg
DeclarationQueueConfig.classic()
DeclarationQueueConfig.quorum()
DeclarationQueueConfig.stream()

for sure you can then override the args and invalidate this semantic.
Not having the queue type explicit is IMH bad for usage purpose because you expect a way to declare the type of the queue.
Having just the QueueType.asArgument means that you have to know that that class and method exists, not much convenient I think.
We could treat the QueueType as optional.
And when we declare the queue in Declaration if we have both  QueueType and an arg for x-queue-type we raise an error. In this approach .default() set it to None
What do you think ?

Having separate constructors is definitely a good idea. I am just not a fan of raising errors, it would be better to somehow bake it in the domain. But it's tough when the underlying library looks like it looks like.

Not having the queue type explicit is IMH bad for usage purpose

Understand, but if you think about it, this decision (of bad UX) was made by the RabbitMQ team and it's well documented.
Anyway, I don't want to block it, so feel free to make the decision :)

this decision (of bad UX) was made by the RabbitMQ team and it's well documented

Idk, I have the feeling that this way to declare the queue type is something born after. At the beginning there was just classic then they added the quorum and the stream and this is a way to maintain the backward compatibility.
If you look  the exchange declaration is similar to what we are trying to achieve here.

I am just not a fan of raising errors
I'd prefer block inconsistency at the beginning to be honest. I'm updating the PR so maybe it's clearer what I mean

Time for a release? @geirolz Do you have rights to do it?

@matejcerny I've released your draft PR but you forgot to set the proper tag and I forgot to check so now we have 2 releases 5.1.3 and 5.2.0 that are equals. Not a big deal. The tag was 5.1.3 but the title was 5.2.0
Do you have discord or X for further direct communications ?

My X is at matej_cerny.
The draft release was made by a draft job, I've just changed the title as by default only the patch version is incremented. But its fine, I will delete the 5.1.3


Consider moving Vec2 re-export

I'm quite tempted to move the re-export of Vec2 up to the crate root - it's used in more modules than just graphics (notably gamepad sticks output a Vec2), so it seems kinda weird to have to grab it from there.
An alternative would be to export a tetra::math module (which could maybe come in handy if we want to add some more math utils?)

While I'm at it, I want to clean up the rest of the tetra::graphics module - there's way too many things that live in multiple places, and it makes it confusing to know where to look for things.
I think we maybe want to keep tetra::graphics::ui, tetra::graphics::animation and perhaps tetra::graphics::scaling, and then make the rest of the modules private/re-exported.

In general I want to strike a balance between not having to dig too deep into submodules to use stuff, without making the docs totally unreadable...

Yesterday I noticed that both use variants are possible.
use tetra::graphics::Vec2;
use tetra::glm::Vec2;
I was confused when the compiler complained that there was a double entry.
Is it the same and only exported again?
Right now I'm using the Vec2 from glm.

Yep, they're the same :)

I've renamed tetra::glm to tetra::math to better describe its function, and moved the export of Vec2 there. I've also added a bit of a 'cheat sheet' of the most common types and functions to the module.


Single-cell representation learning

Accumulated changes for single-cell representation learning.
@edyoshikun this PR include breaking API changes for image translation (#145).
Pending before merging this to main:

#159
#160
#164

#159 and #168 were still a bit broken. I'm merging now to prepare the branch point, but they should be fixed before merging to main.

To merge this branch and release candidate 0.3.0-rc1, we need to test the following:

[ ] Demos and notebooks that illustrate robust virtual staining: @ziw-liu @edyoshikun
[ ] Try training models with example configs: @ziw-liu
[ ] Fix any remaining bugs in representation learning code path.

Things I have tested with the current HEAD of this branch:

Train VS model with:/hpc/projects/intracellular_dashboard/viral-sensor/infection_classification/models/phase-to-sensor/2024_08_14_ZIKV_pal17_48h/fit.yml

Predict with VSCyto2D (reported in the VS preprint) with:/hpc/projects/intracellular_dashboard/ops/2024_09_19_tracking_accuracy_test/2-VS/tta/predict.yml

Imports paths in example VS notebooks and configs are correct

@mattersoflight I'm still working on #181 which will also introduce user interface changes. Should we do comprehensive release candidate testing after that?
Things need to be tested before release:
@edyoshikun or @mattersoflight:

[ ] End-to-end testing of the VS example notebooks.
[ ] (Optional) update the HF demo

@Soorya19Pradeep:

[ ] Training of new contrastive model
[ ] Prediction using model checkpoint we report in the paper.

@mattersoflight I'm still working on https://github.com/mehta-lab/VisCy/pull/181 which will also introduce user interface changes. Should we do comprehensive release candidate testing after that?

@ziw-liu I suggest merging this PR first, working on #181, and then doing the tests you outlined, so that everyone builds familiarity with revised CLI.

@mattersoflight Compared to the latest stable release (v0.2.1), the current HEAD of main adds a visualization script (#144) and a link to the demo (#172), so there should be no behavior change. If you still think we need a tag, I'm comfortable with just tagging v0.2.2 stable.

I have done one round of testing. The training is underway and the prediction using an earlier model checkpoint was completed.

As discussed, the HF model is pinned to use <0.3 versions and the gradio code is not exposed to the user, so we don't need to update this for now. The model weights are posted separately and point to the github.

@ziwen, I'm done testing the virtual staining end-to-end. I didn't run any of the representation learning. I really appreciate the new config files structure and CLI. This will work well with any type of custom dataloaders and models. Thank you


WIP: add HTTP Status checks to read operations

Resolves #
Problem

Solution

Checklist

[ ] I have run this code, and it appears to resolve the stated issue.
[ ] This PR does not reduce total test coverage
[ ] This PR has no user interface changes or has already received approval from product management to change the interface.
[ ] Make a changie entry that explains the customer facing outcome of this change

Superseded by PR #506


Wrong version number in js files

Prerequisites
Version: 0.14.0
Install: by npm
Operating system: Windows 10
Bits: 64 bits
Description
In begin of files:
dist\cjs\lucide.js
dist\umd\lucide.js
dist\umd\lucide.min.js

see:
/**
 * lucide v0.13.0 - ISC
 */

@SMAH1 I Found the issue, in the release workflow for github actions. I create a new version after the build.
I will move that step to beginning. Thanks for reporting this issue. Will be fixed in the next release.


[Feature Request]: Split into labextension(or + serverextension) and python package

Problem

I would like the package split into lab extension and python package since I use multiple envs for different usage, then the lab extension can be installed to the master env for visualization and the python package can be installed to the slave env to offer APIs.
Then the lab extension may only depend on jupyterlab, while the python package will depend on networkx etc.
Proposed Solution

I have no experience in developing experiencing in jupyterlab, maybe https://github.com/jupyter-widgets/ipyleaflet, https://github.com/matplotlib/ipympl can be examples?
Additional context

Hey @specter119, thanks for opening the issue.

I would like the package split into lab extension and python package

I don't really know if this is possible and I'm not sure on how to approach this, but if you figure out a way of doing this I'll happily review a PR!
Is there anything that prevents you of installing the same package on both environments?

I would like the package split into lab extension and python package

You mean to split up the python package into two separate python packages?
Is your goal to not depend on networkx in the base env or is it avoid jupyterlab in the other envs? For the latter note that the extension doesn't actually depend on jupyterlab. For the former I think this actually already achievable by only installing the npm package (the old way of installing extensions) with jupyter labextension install jupyter-cytoscape although this will require you to build jlab again. I think we would also need to push an update to the npm package.

My goal is avoiding jupyterlab in the other envs, it's heavy for a env offering kernel.

oooh that's actually great, because I think that what you want is already happening. That is pip install ipycytoscape does not depend on jupyterlab. It depends on jupyterlab-widgets which is suggestive of a dependency, happily however it does actually depend on jlab. See https://github.com/jupyter-widgets/ipywidgets/pull/2995 for discussion on this.
When you are installing ipycytoscape into the other envs are you getting jupyterlab pulled in as well? Because I think that that would be a bug.
For me in a fresh pip install ipycytoscape does not seem to pull in jupyterlab:
mamba create -n test python
conda activate test
pip install ipycytoscape

installs these packages:
ipython-genutils, traitlets, six, pyrsistent, attrs, wcwidth, tornado, pyzmq, python-dateutil, pyparsing, ptyprocess, parso, jupyter-core, jsonschema, webencodings, pygments, pycparser, prompt-toolkit, pickleshare, pexpect, packaging, nest-asyncio, nbformat, MarkupSafe, jupyter-client, jedi, decorator, backcall, async-generator, testpath, pandocfilters, nbclient, mistune, jupyterlab-pygments, jinja2, ipython, entrypoints, defusedxml, cffi, bleach, terminado, Send2Trash, prometheus-client, nbconvert, ipykernel, argon2-cffi, notebook, widgetsnbextension, jupyterlab-widgets, spectate, networkx, ipywidgets, ipycytoscape

@ianhi thanks in advance. @marimeireles  thanks all of you for development.
I think this issue can be close now, however, things talked here should be mentioned in the readme.

Hey @specter119 glad you found a solution with Ian! :)
Thanks for the kind words. Lots of ipycytoscape has Ian's contributions on it.
Please feel free to add this info to the README in a way you think it'll be useful to people.
Cheers!


Well I pretty much removed all the trickery and renamed all the classes too while at it.
And as we now have the subcommand loader, we can now warn in the class definition without it being triggered unless the command is being used.

kontena master user role add --help
 [error] Can't figure out command class name from path master/user/role/add_command - tried [:Kontena, :Cli, :Master, :User, :Role, :AddCommand]


Support other cloud providers as input when creating blobs

Is your feature request related to a problem? Please describe.
I've been struggling to find a way to transfer data from other cloud providers (AWS, GCP, Alibaba) to my Azure container DIRECTLY FROM THE URL. It is not always feasible to download and reupload data to the Azure container.
I am aware of AzCopy and the functionality (using the Put Block From URL method) it provides but I'd appreciate if there was a way for this to be done in Python.
Describe the solution you'd like
I would like functionality similar to AzCopy to be able to copy data to Azure directly from a URL using Python.
There is a upload_blob_from_url method in the azure storage SDK for Python but from the doc it looks like it only supports transfer from other Azure blobs.
Is there any way this can be done using an Amazon S3 URL? Also, it would be great if it could be as fast as AzCopy!
Describe alternatives you've considered
I have considered calling AzCopy using subprocess from a Python script but this isn't the cleanest approach.
Additional context
Add any other context or screenshots about the feature request here.

Thanks for the feedback, we’ll investigate asap.

Hi @DhruvDuseja Dhruv, thank you for your inquiry. From my own testing I was able to successfully use the upload_blob_from_url with a non-Azure Storage URL. However, I do not readily have access to test this with specifically an Amazon S3 URL, so please give that a try and let me know that doesn't work for you!
With that being said, another option is to try start_copy_from_url. I believe that something similar to the sample linked here may achieve what you are looking for using the start_copy_from_url API.
Please note that by default this operation is completed asynchronously, and its status can be checked by polling the copy status using get_blob_properties. You can also set copies to be synchronous (by setting parameter requires_sync=True), however this is limited to a file size limit of 256MB.
Hopefully one of the above recommendations can help unblock your workflow, and please let me know if you have any other concerns.
Thanks!

Thank you for the quick reply @vincenttran-msft! So I tried this out with my S3 URL and that worked fine.
I do have one more point of concern. It looks like AzCopy supports copying over a "directory" using the --recursive option, however, using upload_blob_from_url & start_copy_from_url seem to only copy files over and not directories. Can you please let me know if I've missed something here or whether this isn't currently supported?
Thanks!

Hi @DhruvDuseja, unfortunately we do not support that functionality (copying entire directories) in Python today. You would have to do that manually. Currently we offer AzCopy for that functionality or we are working on creating a library with this functionality in C#/.NET Azure.Storage.DataMovement.Blobs which is in beta right now.
Unfortunately, no plans to bring this functionality to Python at this time.

Got it @jalauzon-msft. Thanks a lot for the help and prompt replies, it is greatly appreciated!


Pagination for getting user followings is not working

Getting user followers pagination is working properly, but for followings it's not.
If I use pagination key I get from query then I still get the same results (accounts) as without pagination key.
For example. 2 queries with pagination
REQUEST: friendships/2063259783/following/?max_id=&ig_sig_key_version=4&rank_token=3735800075_5f8487d1-56ce-4da5-8357-49655c3dc428

Response: https://gist.github.com/MarkoSulamagi/9e63f97bc295d22a887b371f3f885148

REQUEST WITH PAGINATION KEY: friendships/2063259783/following/?max_id=AQCNkfknzi5bl2WZ-B-4KdHbBwQHryLFN3IoYiRlzglsihkWyNWHoA1z0w3ql-wsQI21JF4722QcrkI3OGVSJRXQmGl046vXei3wBtke4G2ETOP7DZIqxQwfR5ByBt8ZcC0&ig_sig_key_version=4&rank_token=3735800075_5f8487d1-56ce-4da5-8357-49655c3dc428

Response: https://gist.github.com/MarkoSulamagi/fa2e8da420f165576beb7c50489cfaa5

I tried to reverse engineer the Instagram Android APK to see if they made any simple changes to it, but to me it looks like they're using the API call the same way as this library does.
I'm a bit out of my depth here. I hope someone can help.

mgp25 managed to find the problem and fix it in his PHP library. I added the bugfix to this library as well and made a pull request:
https://github.com/danleyb2/Instagram-API/pull/5


Docker Restart Options

File: compose/reference/restart.md, CC @londoncalling
What are the options?  It feels like this is the place where they would be enumerated.

Hi @MarkDucommun , There is only one flag with a short and a long form (-t or --timeout), as documented in compose/reference/restart.md
However, in looking at the current Help on the command, I'm wondering whether --timeout has changed to --time?
victoriabialas at snapair in ~/repos/docker.github.io on master
$ docker restart --help

Usage:	docker restart [OPTIONS] CONTAINER [CONTAINER...]

Restart one or more containers

Options:
      --help       Print usage
  -t, --time int   Seconds to wait for stop before killing the container (default 10)

Can you verify, @shin- and/or @dnephin ? The --help on the command ^^ doesn't quite seem to match the docs. (I'm running 17.06.0-ce and docker-compose version 1.14.0, build c7bdf9e.)
cc: @mstanleyjones

@londoncalling you ran docker restart not docker-compose restart. The docs are correct.

@dnephin , right you are!
$ docker-compose restart --help
Restart running containers.

Usage: restart [options] [SERVICE...]

Options:
  -t, --timeout TIMEOUT      Specify a shutdown timeout in seconds.
                             (default: 10)

@MarkDucommun  closing this issue, as the docs already include the options you were looking for.

Just wanted to throw this out there,
I notice that the docker-compose restart command docs page has a rather low score at the time I'm writing this, (+36/-207) and I can't leave comments on the page directly, so I figured I'd just leave an idea here,
It's not really Docker's fault on this, but when you google something like "docker-compose restart", the first page that comes up is this: docker-compose restart, when I searched for that I was looking for the version 2 docker-compose.yml config file field restart. If I would've searched for "docker-compose.yml restart" it would've came up with the right page, but I didn't know docker-compose (the CLI utility) had a restart command at the time.
Now I know that the docker-compose restart page is referring to the docker-compose utility, not a field within docker-compose.yml, but it wasn't super clear at first and I was tempted to hit that dislike button at first because the page didn't seem to make any sense as its relation to docker-compose.yml.
My suggestion is, maybe add some kind of docker-compose restart disambiguation page, or make some kind of way for the user to navigate between configuration files and cli commands, because there's some name collision issues between docker-compose commands and docker-compose.yml fields (fields/commands named the same but with different parameters).
(FWIW, note that the v3 docker-compose.yml file format improved upon this significantly by calling the field "restart_policy" instead of "restart")


abi 1.2: action_results

Change Description

action_results describes the return type of each action:
      "action_results": [
         {"name": "act1", "result_type": "string"},
         {"name": "act2", "result_type": "uint16"}
      ],

Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[x] Documentation Additions

Whoops. Fixing via force push...

While merging PRs together I lost track of which one went into which one...
Fixed.


KeyboardAvoadingView padding calculation on keyboard type change is not correct

Describe the bug
There are two inputs with different keyboard types, and only one is rendered at a time. One input has the default keyboard type, while the other uses 'number-pad'. When we unmount the default text input and show the number input, KeyboardAvoidingView first sets padding as if the default keyboard is displayed, and then adjusts it for the number keyboard.
This transition creates a visible jump that only occurs on Android. In the attached GIF file, you can see that when switching to the numeric keyboard, the footer button is initially rendered higher before moving down.
This issue is easily reproducible with an app created using the latest Expo CLI.
Important: the issue is reproducible with a non-default keyboard. In the example, this keyboard is used. With the default keyboard, everything works as expected.
Code snippet
import { Button , View, TextInput, StatusBar} from 'react-native';
import { useState} from 'react';

import { ThemedText } from '@/components/ThemedText';
import { KeyboardAvoidingView, KeyboardStickyView } from 'react-native-keyboard-controller';
import { useSafeAreaInsets } from 'react-native-safe-area-context';

export default function HomeScreen() {
  const [isNumberFieldDisplayed, setIsNumberFieldDisplayed] = useState(true);
  const insets = useSafeAreaInsets()

  return (
    <View style={{flex: 1}}>
      <KeyboardAvoidingView keyboardVerticalOffset={StatusBar.currentHeight} behavior="padding" style={{flex: 1}}>
        <View style={{flex: 1, paddingTop: insets.top}}>
          <View style={{flex: 1}}>
            <ThemedText type="title">Welcome!</ThemedText>
              <View style={{flex: 1, backgroundColor: 'red'}}>
                <Button title="Change focus" onPress={() => {setIsNumberFieldDisplayed((prevValue) => !prevValue)}} />
                {!isNumberFieldDisplayed && <TextInput autoFocus placeholder="Type something here" placeholderTextColor="black"/>}
                {isNumberFieldDisplayed && <TextInput autoFocus placeholder="Type a number here"placeholderTextColor="black" keyboardType="number-pad"/>}
                <View style={{marginTop: 'auto'}}>
                  <Button title="Footer button" onPress={() => {}} />
                </View>
              </View>
          </View>
        </View>
      </KeyboardAvoidingView>
    </View>
  );
}

Expected behavior
Padding is changed like smoothly like it does on iOS.
Screenshots

Smartphone (please complete the following information):

Desktop OS: MacOS 15.0.1
Device: Pixel 8 pro (emulator)
OS:  Android 14
RN version: 0.74.5
RN architecture: old
Library version: 1.14.3

@davoam I think the issue is reproducible with default keyboard as well? See the video below:
https://github.com/user-attachments/assets/be26b695-32f8-47c1-aa12-6182730763ab
I think this problem is located in native code. Because let's say if QWERTY keyboard height is 312 and numeric keyboard height is 268, then when qwerty keyboard gets hidden and numeric keyboard appears, then we are still getting values from 0 to 312 (though we should receive from 0 to 268). And in the end of transition we get "resize" event, where we receive a correct height and we perform instant transition. Because of that you can see such jumps 🤔
For me it looks like it's Android OS bug, but I will see if such problem can be reproduced in native code or can be fixed within this library 👀

One potentail solution I'm thinking of is to store a map of key value where key is type of TextInput and value is height of the keyboard. In this case when keyboard animation gets interrupted an dinput type is different we can use a value from our map. But such code will add so more complexity 🤯
Is it possible to wait for keyboard hide and then trigger input unmount? Or maybe wait for a keyboard disappear and only when it's hidden request a focus to a new input? Or you can mount a new input, switch focus, and only when focus gets switched then you will remove previous field? What do you think about these approaches?

Thanks for the quick response, @kirillzyusko !
I tried closing the keyboard, waiting for keyboardDidHide event and focusing on number input. It does not work as well. There is still this bug. If I add 1-second delay for focus it works correctly (without a jump). If delay is less than 1 second there is still a bug.
Mounting new input is also not a good solution since these two inputs may be on different screens. It makes things complex.
So, as a temporary hack we used this 1-second delay. We close the keyboard, wait for keyboardDidHide event, redirect to another screen, wait one second and focus on input. Everything works correctly, with this sequence.
Here is the code when which works correctly, but if you change 1000 to 300, the problem appears again
import { Button , View, TextInput, StatusBar, Keyboard} from 'react-native';
import { useState, useRef} from 'react';

import { ThemedText } from '@/components/ThemedText';
import { KeyboardAvoidingView, KeyboardStickyView } from 'react-native-keyboard-controller';
import { useSafeAreaInsets } from 'react-native-safe-area-context';

export default function HomeScreen() {
  const [isNumberFieldDisplayed, setIsNumberFieldDisplayed] = useState(true);
  const insets = useSafeAreaInsets()
  const textInputRef = useRef<TextInput | null>(null);
  const numberInputRef = useRef<TextInput | null>(null);

  const onChangeFocus = () => {
    function toggleIsNumberFieldDisplayed() {
      setIsNumberFieldDisplayed((prevValue) => {
        const nextIsNumberFieldDisplayed = !prevValue

        setTimeout(() => {
          nextIsNumberFieldDisplayed ? numberInputRef.current?.focus() : textInputRef.current?.focus();
        }, 1000);

        return nextIsNumberFieldDisplayed;
      });
    }

    if (Keyboard.isVisible()) {
        const listener = Keyboard.addListener('keyboardDidHide', () => {
          toggleIsNumberFieldDisplayed();
          listener.remove();
        });
        Keyboard.dismiss();
    } else {
     toggleIsNumberFieldDisplayed();
    }
  }

  return (
    <View style={{flex: 1}}>
      <KeyboardAvoidingView keyboardVerticalOffset={StatusBar.currentHeight} behavior="padding" style={{flex: 1}}>
        <View style={{flex: 1, paddingTop: insets.top}}>
          <View style={{flex: 1}}>
            <ThemedText type="title">Welcome!</ThemedText>
              <View style={{flex: 1, backgroundColor: 'red'}}>
                <Button title="Change focus" onPress={onChangeFocus} />
                {!isNumberFieldDisplayed && <TextInput key="textInput" ref={textInputRef} placeholder="Type something here" placeholderTextColor="black"/>}
                {isNumberFieldDisplayed && <TextInput key="numberInput" ref={numberInputRef} placeholder="Type a number here"placeholderTextColor="black" keyboardType="number-pad"/>}
                <View style={{marginTop: 'auto'}}>
                  <Button title="Footer button" onPress={() => {}} />
                </View>
              </View>
          </View>
        </View>
      </KeyboardAvoidingView>
    </View>
  );
}

@davoam okay interesting - 300ms is a pretty big time interval, so it should work 🤯 I'll have a look again on this problem! It's weird, that you have to wait 1s!

@davoam what do you think about next API?
Just theoretically I can add KeyboardController.retain() method, which will hold a keyboard while you are switching the input.
So in your code you will need to make next modification:
<Button
  title="Change focus"
  onPress={async () => {
    await KeyboardController.retain();
    setIsNumberFieldDisplayed((prevValue) => !prevValue)}
  }
/>

And in this case the keyboard will not be automatically hidden, when you unmount/mount new fields.
The only one downside that I see is that this method will not be able to restore the internal state of the keyboard. I. e. if you switched to emoji keyboard, or applied force upper case mode or changed something else, then all these preferences will be lost when retain method get called.
From the other side you almost instantly change the input type, so such transition should be okay, I believe.
Anyway, let me know what do you think about it 🙌 Curious to know your thoughts 😊

@kirillzyusko, sorry for the late response. Looks good to me, it will even help to avoid unnecessary animation on keyboard hide/show.
Imagine a standard one-time-password (OTP) flow. When on one screen you enter a phone number and on another you enter OTP. When you switch from one screen to another, the keyboard gets hidden and opened again. We can keep showing it with this method.
But will it help to have correct height transition and avoid jumping on keyboard type change?

But will it help to have correct height transition and avoid jumping on keyboard type change?

Yes, the keyboard will be on hold until new input comes in. The keyboard height will be anyway different (because numeric keyboard are smaller than QWERTY keyboards), but I believe there will be an immediate transition and no jumpy/de-synchronized transitions.
Anyway, let me try to experiment with your code and with new method and see how it can solve the problem 👀

@davoam I did a quick PoC here: https://github.com/kirillzyusko/react-native-keyboard-controller/tree/feat/hold
This is how it works:
https://github.com/user-attachments/assets/fdd3d7a5-e404-4c2f-9c1e-291bb9cc13a3
Let me know what do you think about it 🙌

@kirillzyusko looks much better! Thanks a lot!

It seems like keyboard is a bit over "Footer button"
Is it possible to change height of KeyboardAvodingView with animation?

It seems like keyboard is a bit over "Footer button"

This is because I have a header + StatusBar and I used verticalKeyboardOffset only approximately. If you calculate it precisely then position will be perfectly correct.

Is it possible to change height of KeyboardAvodingView with animation?

I think that's what I used before, but then I decided to go back to non animated transition, if there is a non-animated keyboard animation. You can read more details here: https://github.com/kirillzyusko/react-native-keyboard-controller/pull/376
However for KeyboardAvoidingView maybe it makes sense to have "resize" keyboard events with animation 🤔 Need to think about, but from what I remember - animated "resize" transitions bring a lot of headache 😅

[!NOTE]
I also discovered that invisible TextInput inside KeyboardProvider breaks KeyboardToolbar functionality (just because we'll always have an invisible TextInput). So probably I need to develop KeyboardToolbar.Exclude component first and then go back to this hold method 🙂

Let me know if you have any further questions 😊


Create Database Dialog does not show Error

If I want to create a new Database the Dialog does not tell me that I have two different Passwords if I click on create

Same at changing the Password

At least there occure some Messages in the Background

I will take a look at the creating Database at the moment

If I try to close the Dialog without having same Passwords it is not possible

Now;

Closing works now too

Well done, looks very good👍


Bugfix: init.sql

@JonMike8 Nice job, next time please try to stick to conventional commits https://www.conventionalcommits.org/en/v1.0.0/

Merged


Proposal: Product Offer blocks

I think this is already addressed, what do you think @lucis ?

yeah, closing it