Fixes for current droidports/gmloader

use master/HEAD of droidports (faf3970 didn't build any more)
Sample games/apps were missing libc++_shared.so [1], apktool to the rescue
Using the optimized Spelunky APK
Disable mouse cursor visible on top left

Tested both sample games without flaws on a Rpi3 and Rpi4 with current RetroPie-Setup (86f65883).
[1] https://developer.android.com/ndk/guides/cpp-support#libc

Added addlib function (sudo ./retropie_packages.sh gmloader addlib <apk>) adds libc++_shared.so to other APK a user may deploy
Add RetroPie exit emulator button combo

I saw the link, but I don't feel much smarter. What is the libc++_shared.so for?

Some testing this morning:
I remembered (/slash rediscovered)  why I didn't use the "optimized" version of Spelunky initially -- it wouldn't run on faf3970, only gave segfault error. "Final" version is 10x the size, but at least it run.
faf3970 don't build in current Raspbian -- I didn't do a full system upgrade but I update all the package's depends, and got "cannot find source file lodepng/lodepng.h" error after cmake. Is this something that used to be provided at the system level by one of the depends, but no longer is?
I can get it to build if I clone lodepng (https://github.com/lvandeve/lodepng) inside the droidports repo before cmake.
However, then (as with the current master/HEAD version), none of the games will play without the libc++_shared.so file. Is this also something that used to be provided by a depend?
My old installed version of gmloader is still playing my old installed versions of the games no problem (no lodepng.h, no libc++_shared.so, just the app and the .apk). But when I build master/HEAD or clone lodepng and re-build faf3970, they won't load without the libc++_shared.so.
That's the part that's most weird to me. The faf3970 that built a year ago works just fine, but that same faf3970 built today, don't work without the extra file. So, like... is it a case of, this file used to be available "to the system" and so it was built-in to the executable at compile time but, no longer provided at a system level, the file is not currently built-in and so must be provided individually within each game? And if that's the case, can we put it back in the system/executable so we don't  have to pack it back into every game?
Tagging @JohnnyOnFlame in case they have any insights.

You have stale repositories, requiring libc++_shared.so is a change introduced two years later on cf97077 in order to support newer versions of the GM runner and provide a more accurate version of these symbols. Keep in mind I will not provide support for older versions.
libc++_shared.so can be sourced from NDK, here's one I use for Spelunky on RG35xx: libc++_shared.zip.
Here are the scripts and packaging I provide for Spelunky on RG35xx and locomalito games for the Evercade as examples on how to provide packaging and scripts for droidports.
Anything else I can do to help you migrate to HEAD?

Thanks for the prompt review @s1eve-mcdichae1. Will reflect your feedback in the next days.
Amending to @JohnnyonFlame: The libc++_shared.so has to be packaged to an APK if an APK binary relies on that lib, a system libc++ won't do it. This was introduced by "android development rules" (there might be an official name) a while ago and after the both sample APK/games provided with this script have been released and were no longer maintained. As gmloader plays by the android development book this adding/repackaging is needed. I got this libc copy from a NDK / Android Studio install.

It looks to work if libc++_shared.so exists in CWD so we don't need to pack it in each game, just copy it once to $md_inst and pushd there before launch.
is there an official online source the module can download this from, rather than distributing it along with?

I'm sourcing from my own NDK install but you could probably just use https://chromium.googlesource.com/android_ndk.git/+/refs/heads/main/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/

Looks like we also do not need the config-dir patch any longer, we can just define that with GMLOADER_SAVEDIR= at runtime.
Here's my current suggestions: https://github.com/Gemba/RetroPie-Extra/compare/fix_gmloader_scriptmodule...s1eve-mcdichae1:RetroPie-Extra:fix_gmloader_scriptmodule

Just remember to strip the binary, otherwise you're wasting ram/disk with debug nonsense. It goes from 4mb to 500kb.

Like this? https://github.com/s1eve-mcdichae1/RetroPie-Extra/blob/dfcdb823ab5a960f7260e45ceb990219fdff9a75/scriptmodules/ports/gmloader.sh#L31

Flags shouldn't matter at all, seems correct.

Incorporated the suggested changes. Factorized a small launcher. Unset execute bits on the lib as it is OS default.
Having to have the branch name in the repo url should be fixed in RetroPie-Setup itself. Either the parameter is mandatory or optional but not something else/depending on the function called. Will table it at RetroPie-Setup.
BTW: Do you know what the amr2 lines are for, when they where added and why?

https://github.com/Exarkuniv/RetroPie-Extra/pull/161/files#diff-a5d92dc54968117a93d91fe0ec5a499bb79a7f824cd5ab2e4dd9fd9dcfc00d4aR70-R79
What advantage does this extra script have over just putting a one-liner in the emulator command, as in:
https://github.com/s1eve-mcdichae1/RetroPie-Extra/blob/057bec48aebd655f9b03ca11bccba83e8cc68e7d/scriptmodules/ports/gmloader.sh#L71-L72
addPort "$md_id" "droidports" "Maldita Castilla" "pushd $md_inst; GMLOADER_SAVEDIR=$home/.config/gmloader/%BASENAME%/ ./gmloader %ROM%; popd" "$maldita_file"

https://github.com/Exarkuniv/RetroPie-Extra/pull/161/files#diff-a5d92dc54968117a93d91fe0ec5a499bb79a7f824cd5ab2e4dd9fd9dcfc00d4aR44-R46
I feel like sourcing this file should happen in the sources function. Reason: it's a (very) niche case but I can think of one situation where it would matter: an advanced user with knowledge of the various retropie_packages.sh functions, goes online and performs depends and sources, and later intends to run build, install, configure and clean while offline. If the file is sourced during install then it will fail when this user runs it from offline.
Are there any other modules that use an online feature outside of depends, sources and install_bin? Answering my own question, yeah this very module and many others often acquire gamedata in configure.
So it's not unheard-of, but install still feels like maybe only the 3rd best place to put it.
https://github.com/Exarkuniv/RetroPie-Extra/pull/161/files#diff-a5d92dc54968117a93d91fe0ec5a499bb79a7f824cd5ab2e4dd9fd9dcfc00d4aR47
While we're on this file, do we need to (un-)flag it? Seems to work fine either way so what's the rationale of changing from how it comes delivered?
Oh, I see Unset execute bits on the lib as it is OS default.
I'll take your word for it. I don't know what "should" be one way or another so I scanned my system and saw lots of .so files both with and without the x bits, so I eventually have just left the sourced file as-is, seeming that it doesn't matter either way.

https://github.com/Exarkuniv/RetroPie-Extra/pull/161/files#diff-a5d92dc54968117a93d91fe0ec5a499bb79a7f824cd5ab2e4dd9fd9dcfc00d4aR64-R65
I don't know if it's relevant, but the official RetroPie modules never quote chown $user:$user. It's a break from the common mantra of "always quote variables" but maybe since it's a username, it literally can't have spaces or any of the other special characters that would make the quoting matter? I dunno, but they never do it, so I never do either.
And again with the a-x; this time the files downloaded don't even have the bit -- is there a compelling reason to try and remove it, then?

Another thing that "I always do the way they always do," is single-quote the elements of $md_ret_files, at https://github.com/Exarkuniv/RetroPie-Extra/pull/161/files#diff-a5d92dc54968117a93d91fe0ec5a499bb79a7f824cd5ab2e4dd9fd9dcfc00d4aR39-R43
Something they never do, is mkdir build && cd build in one line like I have done. That's an artefact from when I was first learning how to even do a build, let alone make it into a scriptmodule, and someone recommended me these steps and they've been in here ever since. If we're "fixing" this (which I think is really only even broken if a build is failed or aborted before the clean step and in any case, the only remedy is to clean and start over anyway), then why don't we just make it two lines like every other module:
mkdir build
cd build

This doesn't introduce any additional failures and will yield success in some situations (build folder already exists but is still useable -- mkdir will fail but cd will still execute and remainder of build can continue from the correct location) that previously would not (mkdir fails and so cd is not attempted, and remainder of build is attempted from the wrong location.)

BTW: Do you know what the amr2 lines are for, when they where added and why?

They are for AM2R: Another Metroid 2 Remake, the whole reason I began looking at gmloader in the first place. It's a free fan-created game but Nintendo forced them to cease distribution, so you have to source the game yourself, but once you do, this creates a launch script for it. Those particular lines were added in efb4af4 when I rewrote the configure function to download the free games and write specific launch scripts for them (and for AM2R if provided), rather than only scan the directory and bulk-add generic-named scripts for whatever was present there before install.

BTW: Do you know what the amr2 lines are for, when they where added and why?

In case you're referring to:
if [[ -f "$am2r_file" || "$md_mode" == "remove" ]]; then
    addPort ...

...the idea is, if the file exists, do the function always. But even if the file doesn't exist, then if we are in remove mode, still do it anyway.
addPort in remove mode does: remove the specific emulator, if no emus left for this port remove the launch script, if no ports left at all remove the "Ports" system. They may have already removed their game file so it might not exist, but we still want to do the function just in case (it doesn't hurt anything because it'd happen anyway, if the file was still there. It just cleans up some loose threads that might otherwise be left behind.)

BTW: Do you know what the amr2 lines are for, when they where added and why?

In case you're referring to the purpose of:
if [[ -f "$am2r_file" || "$md_mode" == "remove" ]]; then
    addPort ...

[technical details I am aware of]

The question was why is am2r apk dealt with as it is not installed by this module?

Can you explain the benefit of the "gmlauncher" script versus just putting it in the emulator command as I had shown?

Just to keep us both busy I pushed a new version. I guess the majority of things are addressed.

The things I did not change are for reasons:

I did not find many libs on my Rpi setup with executable bit, the vast majority is non-executable marked. Check for yourself: find /lib/ -name "*.so" -type f -executable (and in /usr/lib)

I'll defer to you on this one (with long-winded dissent, to follow):

But like half of the ones in `/opt/retropie` where this one is going, do have it. (looks like it's mostly the libretro cores -- and I've just confirmed those too also work without it, but they still have it, in the official distribution -- and one of the mupen64plus libs.)
There are many (mostly in /lib) without the bit. There are a handful (mostly in /opt) that do have it. The file as downloaded, has the bit, and goes in /opt, where many others do have it.
I don't know what difference it makes in this case, if any. It's looking like no.
In the vein of KISS ("keep it simple, silly"), and lacking any compelling reason to alter the file from the state in which it is provided, I would be tempted to not to do so, and to leave the file as-is.
In the same vein, I would probably not-do the non-action of not-removing the bit from the downloaded apk files that already don't-have it.

The link to https://github.com/JohnnyonFlame/droidports is there to hint which library is expected and where.

Maybe to someone who knows more coding than I do, but I'll have to take your word for it again. The only thing I recognize in that excerpt is the filename, and that's only because we're already talking about it. But if you think it's useful to leave in, sure.

I prefer to have a launcher just for the DRY principle and the rule that code is more read than written and the addPort lines are shorter.

This is fine, I've come around on the launcher. Another benefit is just having a system-wide way to launch the app from outside of RetroPie, with the altered save dir and without having to manually enter from in the console.

I still would choose to leave the AM2R configuration as a "hidden Easter-egg" and not call it out with a comment.

The PR has unrelated commits now, can you rebase it with just the changes to this module?

Some more adaptions to reach consent.

Removed the gory details from the comments about libc++
let am2r as suprise in the scriptfile, FWIW for me it is not an easter-egg as this scriptmodule source code is available. I even assume it may raise the same question (why is this there without being referred to before) for next contributors being not involved now.
leave file permissions as is for the APK and lib. For the latter I did not check /opt, however if it is the "RetroPie-way" to have execute bit set/unchanged then let's keep it that way as it also reduces the scriprmodule length.

Almost there! I have only a couple tiny little minor cosmetic/syntax related nit-picky thoughts:
I see mostly if X; then or for Y; do on a single line, with no space before the semicolon. I would remove the newline at 55-56 and the spaces at 58, and 65.
And since we're on this module already, I've been wondering for a while now:
Is the disconnect between gmloader <--> droidports taking it too far? I had modeled it after like prboom <--> doom and eduke32 <--> duke3d but those have the benefit of name-recognition. "Droidports" isn't a popular game people have heard of like those are, and there's not likely to be other "droidports" emulators that can just be a drop-in replacement for gmloader, the way one might switch between console emulators. Even I find myself looking first for a "gmloader" romdir and config dir that aren't there, and I'm the one who made it that way.
Do y'all think it would be better to drop the "droidports" name and call those dirs "gmloader" like the module name? (Would change rom dir in apk_dir= and config dir in the addPort commands.)

Also:
Have you, or are you able to test AM2R on RPi3? When I first became aware of this project, there were some extra steps (scroll down to "extra steps") required to make it run on RPi3. I am not sure if this was needed for all of gmloader or just for am2r specifically, or whether it's still needed at all two years later, and, since I don't have a RPi3, I am unable to test it myself.

I see mostly if X; then or for Y; do on a single line, with no space before the semicolon. I would remove the newline at 55-56 and the spaces at 58, and 65.

These escaped during the merge. Thanks, done.

Have you, or are you able to test AM2R on RPi3?

I am not going to investigate into this. The rpi3 compliance is only checked for the two "shipped" APKs with this module.

Do y'all think it would be better to drop the "droidports" name and call those dirs "gmloader" like the module name?

If it should be changed remember to maintain compability to existing installations (even if these are currently only a few).
Updating the config folder is one, but what about any APKs the user added, their absolute path to the APK must also be updated.
Additionally to these considerations: I woudn't change it as anyone dealing with APK should be able to make the link to (An)droid. Thus droidports, even if not exactly like the module id should be easy to be identified as being related to this module.

I am not going to investigate into this. The rpi3 compliance is only checked for the two "shipped" APKs with this module.

Fair enough.
Line 57 escaped again.

so is this good?

Yeah looks good to me.


VSCode occasionally uninstalls after updating my OS

Issue Type: Bug
Three times over the past two months, I've had to manually reinstall VSCode after it was seemingly uninstalled when I updated my OS during selfhosting. It doesn't happen consistently but when it does, the VSCode icon that I have pinned to my Taskbar no longer displays properly and when I click on it, the system is unable to find VSCode to launch it. After I reinstall, my previous windows are restored to the state they were in previously.


Updated examples in README.md

@ocombe Please feel free to close it if it's not needed.  Just tried to improve the documentation.

The docs are getting a major refactoring already in #298. Thanks for the suggestions though.


⚠ Jenkins Plugins Artifactory has degraded performance

In 68bd518, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1420 ms

Resolved: Jenkins Plugins Artifactory performance has improved in e528132 after 18 minutes.


Improve hover UX so moving point diagonally from highlight to hover doesn't clear over

It woudl be nice if the hover UX allowed the pointer to go diagonally up and right where it comes off the highlighted text and makes it to the hover. As it is the hover disappears because there is an instant where the pointer is neither on the highlighted text nor on the hover box

This has been a known issue for UX design since in the 1980s in particular going from a menu item to a submenu item and there are various solutions.
I would be nice if hovers had some similar solution.  There is a settable delay before showing. Maybe a solution would be a delay for hiding as well?

That's a nice thing to have. The reason it's disappearing is because your mouse moved outside of the word, but I agree a delay might make this better.

Tested this today on stable 1.95.3(f1a4fb) on Windows 11 and issue seems to be fixed due to the fact that the hide delay of the popup is much longer now, making it much easier to interact with. Please reopen if the behaviour still causes issues for you.


Golang dep scan files

Since go's dependency management is based on pulling from git repos and doesn't have any metadata yet, we can only detect the license type for the happy cases by scanning the license files. So let's do that.

👍 Thank you!


[AIRFLOW-583] Fix decode error in gcs_to_bq

Dear Airflow Maintainers,
Please accept this PR that addresses the following issues:

https://issues.apache.org/jira/browse/AIRFLOW-583

Current coverage is 66.27% (diff: 100%)

Merging #1845 into master will increase coverage by 0.02%

@@             master      #1845   diff @@
==========================================
  Files           127        127
  Lines          9752       9752
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           6461       6463     +2
+ Misses         3291       3289     -2
  Partials          0          0

Powered by Codecov. Last update f3af6f4...deb4890

LGTM @jlowin ?

@alexvanboxel look OK to you?

Sorry for the delay, had a presentation to prepare. Makes sense, makes me think if it doesn't apply to a few other API calls.


changes done

done

donne

Nav bar, footer and other changes done

Have a look at the current version of the website and the issues. Your work is many commits behind

Sure I will look into it and do the commits. Sent from Mail for Windows 10 From: Smaranjit GhoseSent: 11 September 2020 14:26To: smaranjitghose/doc2penCc: Srishti Maggo; MentionSubject: Re: [smaranjitghose/doc2pen] changes done (#139) Have a look at the current version of the website and the issues. Your work is many commits behind—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

@srishtimaggo15 Kindly mention properly in the PR template about what all changes you have done in the PR along with the screenshot showing the changes.
Update that.
Also resolve the merge conflicts.
Okay I show you here what changes I have made.

I made changes in the nav bar , the logo and other fonts and also made the footer section.


What do I need auth.token for?

In sentry.properties there's a property auth.token. What do I need it for? Is it safe to bundle my auth token into the app?
Thanks!

The auth.token is used for uploading sourcemaps and debug symbols to sentry in order so we can symbolicate the crash correctly.
There is no need to bundle sentry.properties in your app.

Oh kk thanks. BTW what all permissions are needed for the access token?

Good question, I believe it's just project:releases but don’t pin me down to that 😅

#123

@HazAT created an access token with release rights only and it worked 👍
@suksoom ?

I cannot find a place to get the auth token in the sentry UI. Is it project based or in the org settings?

@tuneZola https://sentry.io/api/

@HazAT Where would this be stored at? I cannot find a list of keys in the Sentry UI.

Click on the little icon on the bottom left, and then on API


execution error: Finder got an error: Can’t get disk "Test DMG". (-1728)

Sometimes, I'm getting this error and background image was not set for dmg when this error occurs.
execution error: Finder got an error: Can’t get disk "Test DMG". (-1728)
DMG script log:
./create-dmg --volname 'Test DMG' --volicon Icon.icns --background DMGBackground.png --window-pos 200 120 --window-size 800 600 --icon-size 100 --icon 'Test DMG.app' 220 410 --app-drop-link 580 410 'Test DMG.dmg'
/Users/workspace/Test DMG.xcarchive/Products/Applications/
Creating disk image...
created: /Users/workspace/Utilities/InstallerScript/rw.Test DMG.dmg
Mounting disk image...
Unmounting disk image...
Mount directory: /Volumes/Test DMG
Device name:     /dev/disk1
Copying background file...
making link to Applications dir
/Volumes/Test DMG
Copying volume icon file 'Icon.icns'...
Running Applescript: /usr/bin/osascript **"/var/folders/sr/vch_50x104g461x64sbys3hc0000gn/T/createdmg.fI8bJ9Bm" "Test DMG"
/var/folders/sr/vch_50x104g461x64sbys3hc0000gn/T/createdmg.fI8bJ9Bm:85:89: execution error: Finder got an error: Can’t get disk "Test DMG". (-1728)**
Done running the applescript...
Fixing permissions...
Done fixing permissions.
Blessing started
Blessing finished
Unmounting disk image...
"disk1" unmounted.
"disk1" ejected.
Compressing disk image...
Preparing imaging engine…
Reading Protective Master Boot Record (MBR : 0)…
   (CRC32 $F4037986: Protective Master Boot Record (MBR : 0))
Reading GPT Header (Primary GPT Header : 1)…
   (CRC32 $BE188168: GPT Header (Primary GPT Header : 1))
Reading GPT Partition Data (Primary GPT Table : 2)…
   (CRC32 $055CBC10: GPT Partition Data (Primary GPT Table : 2))
Reading  (Apple_Free : 3)…
   (CRC32 $00000000:  (Apple_Free : 3))
Reading disk image (Apple_HFS : 4)…
   (CRC32 $330AA36B: disk image (Apple_HFS : 4))
Reading  (Apple_Free : 5)…
   (CRC32 $00000000:  (Apple_Free : 5))
Reading GPT Partition Data (Backup GPT Table : 6)…
   (CRC32 $055CBC10: GPT Partition Data (Backup GPT Table : 6))
Reading GPT Header (Backup GPT Header : 7)…
   (CRC32 $235739C8: GPT Header (Backup GPT Header : 7))
Adding resources…
Elapsed Time:  3.121s
File size: 4566212 bytes, Checksum: CRC32 $6A7A7124
Sectors processed: 57344, 20356 compressed
Speed: 3.2Mbytes/sec
Savings: 84.4%
created: /Users/workspace/Utilities/InstallerScript/Test DMG.dmg
hdiutil: internet-enable: enable succeeded
Disk image done

This happens quite often to me too. My workaround is to configure Jenkins to recognize the "-1728" error in the log and run the job once again.

Thanks Kaloyan-raev, I'm also doing the same workaround as of now however I want to know the cause of this error so that we can fix this error.

Been building with create-dmg for years and never experienced this error till today, running High Sierra 10.13.2 on apfs. Workaround was to do the same thing of just running it again.

This must be fixed with #55. Reopen if not.


Introduce PackageImportSet type

I was writing some code for handling test case generation and it felt like someone else must have already written the same code. I was right - multiple times. Fortunately, it all looked consistent
This PR introduces a proper PackageImportSet abstraction (with tests), making a bunch of code more declarative and easy to read.

Coverage increased (+25.3%) to 73.04% when pulling 63f82b5804e8e7236d99a4431c7508ab848397bc on improve/package-import-sets into f3ddb452f6da3a8f9310efd940371948b4ffde81 on master.

/azp run


Toml sort 2

Same exact code as #92 but opening a new PR from a branch in this repo (as opposed to a fork) to see if the new ci job will run.

D'oh! The file was one directory level too high.


[Enhancement] Controls for labels in widgets to align the widgets in forms and other places

Description
[What happened]
When there are multiple input widgets with different label lengths then the input box looks miss aligned
Steps to reproduce the behaviour:

Go to 'canvas
Drag and drop 2 to 3 input widget
Now change the label name of all 3 input box
Give the first input box label as name and second as age and third as address
Now the Label value area looks misaligned

Important Details

Version: [Cloud ]
OS: [MacOS]
Browser [chrome]
Environment [release]

Good catch. We need to improve the way this widget resizes to allow for perfect alignment of input fields. Else our forms will look terrible.
@momcilo-appsmith check this out

I suggest we split the width of the widget 50/50 between the label and input box when the label is on the side and not on the top.

I got a few questions.
How would resizing work then? Would the split always be 50/50 between the label and input field? Wouldn't this be wasted space if the label is too small? How would this work if the label is too big?
Is this experience possible to prototype in Figma using autolayout?
Alternatively I was wondering if we can treat the input+label as a compound widget with two widgets side by side.

@areyabhishek @momcilo-appsmith another way should be to have the label on top of the input with increased default height, Hence I wanted to consider the use case while thinking about the reflow feature.
50/50 will work fine until all the fields are of the same width, Other wise the above mentioned will be repeated.
If there is a need to develop a composite widget with input and label we need to create a new widget all together.

Second @somangshu  here for label placement above/below the input box since it takes up less of that valuable real estate on the canvas

@ramsaptami that ideally is a solution which is proposed multiple times but has an implementation challenge. To do this we will have to allow dynamic height inside of widgets which will be picked up as a stretch goal from the Reflow widgets epic.

Can reflow widgets and dynamic height be different issues? Dynamic height is really important, because it's impairing the quality of widgets.
Meanwhile for horizontal labels, can we do something to help alignment of the labels? The label text styling is also off in comparison to our text widget, so it looks out of place.

"50/50 will work fine until all the fields are of the same width, otherwise the above mentioned will be repeated."
@somangshu I think this is where the user has to worry about the design.
@areyabhishek Yes, 50/50 is possible to prototype with auto layout.
I think 50/50 or 40/60 is definitely the solution here. It will resize with the widget + it will give the user the ability to make all the inputs in the form the same size and aligned.

@momcilo-appsmith @areyabhishek should we solve for the above with a 40/60 width approach?

@momcilo-appsmith could you prototype this interaction before we build it?

Here: https://www.loom.com/share/92e2bf653cd54581a47e7bb9bb1cc73d
I can only do 50/50, but we can try 40/60 or 30/70

@sbalaji1192 the design team has worked on a solution for the challenge above and we might be ready to go in a few days, Check out the design and discussion here. If things look good, we could take this up with the widget enhancements.

Designs here.
Dev Note:

What is the current approach here? The label is left aligned on a single row element, and takes width as required by the content hence-fourth pushing the input component on different alignments. this looks really off.
What is the solution? For inputs of equal length (on ui), we will fix a predetermined space between label and input component, any label that is longer than the available space will truncate (ellipses on the same line) and on hover show all the content on a tooltip.

cc @dilippitchika @wmdev0808

@somangshu reviewed the figma, have some doubts I have added to figma, just adding the comment screenshot here.
@momcilo-appsmith need some help with these if these are already discussed. If not, let's close this on a priority.

Items discussed -
Users can control the following properties

Label position - Top, left and auto
Label alignment - Left or Right
Label width (only applicable when label position is left) - No. of columns only for now
All current instances of widgets will use the label position auto field, which will persist the current behaviour as-is.

Adding the PRD here -
Objective
Today the users have to manually align labels for the input fields they are working on. With the default settings we provide it’s hard for a user to keep aligning them manually. We wish to improve this experience by providing the user will controls for editing the label’s position, alignment and width.
Success Metrics *
Goal | Metric
-- | --
Build forms which are visually great | User feedback on the label controls
Requirements
The following widgets need label fields:

Date picker
Rich text editor
Checkbox group
Switch group
Radio group

After labels are added, Labels controls are needed for the following widgets (Type 1)

Input

Regular input
Currency
Phone number

Date picker - (Label)
Select type inputs

Select
Multi-select
Tree-select
Multi-tree-select

Rich text editor
Checkbox group
Switch group
Radio group

Label controls are different for checkbox and radio widgets (Type 2) will be covered in a different issue.
Requirements

Requirement
User story

Devs can configure the position of the label to be left, top or auto.
As a developer in appsmith, I want to control the position of the label to align my forms accordingly.

Devs can configure the alignment of the label to be left or right
As a developer in appsmith, I want to control the alignment of the label to align my forms accordingly.

Devs can configure the width of the label in grid columns.
As a developer in appsmith, I want to control the width of the label to perfectly align forms with labels on the left.

Positions

Left - Devs can select this to show the label to left of the input
Top - Devs can select this to show the label to top of the input. For all new widgets being dragged on to the canvas, the position should be set to top.
Auto - Current behaviour, where the label changes position based on resize. For all existing instances of widgets, label position should be set to auto with a migration.

Alignment

Left - Devs can select this to align the label to the left side of the box.
Right

When the position is top- Devs can select this to align the label to right side of the box
When position is left - Devs can select this to align the label closer to the input box.

Width in grid columns

Only visible when the position is set to left.
Devs can set a number for the no. of columns the label can occupy.

If the number exceeds the max columns label can occupy - We detect the max width a label can occupy. Assuming this to be 70% of total width for now and set it to that width. However, we will not be showing any error to the user.
If the text exceeds the width configured - We truncate the text and show ... (ellipsis) in the same line. On hover, user can see the full label. (Con with this approach - Will not work in mobiles)

Documentation

Updates to documentation to add these new fields for all the following widgets

Out of Scope

RTL alignment of the labels

Developer Handoff Document in Figma
Figma Link here
Property pane design - https://www.figma.com/file/hlOcM5LasxcRqEwHPXe5lm/UI-|-Content-Property-Pane?node-id=2777%3A64824
Widget design - https://www.figma.com/file/w9CaXHF5iYcrLtiEbAHcFu?node-id=1580:9841#126493257
RACI Matrix
Responsible |
Accountable |
Consulted |
Informed |

@momcilo-appsmith I was tagging you for the design audit I believe, @wmdev0808 can you tell us if there is a design requirement here.
Apologies for the confusion

@somangshu, The basic functionality is working as expected.
The point is that almost all relevant widgets also have Label styling section named by "Styles" which includes label text color, label text size and label font style(actually label relevant style props).
As far as we are adding new Label section(position, alignment, width),  will we merge these properties or leave them as they are?
Note: This is just my guess, @dilippitchika will finally confirm

Change - We want to support our developers adding the label width using a slider interaction than simply having to type out a number and trying to approximate. This slider type interaction will be how developers interact with the width property.
Design is pending for this and is being worked on.

@dilippitchika Just asked Emy for the component, will be updated soon.

@momcilo-appsmith @emysmth any updates here?

@somangshu We are proceeding with the input for now, as this is blocking us and we believe that the users will understand the designs.

Since we are not able to get a slider property type yet, the current suggestion is to implement arrows to increase or decrease the number.
Additional requirements
In the "width" field in the label group

Support arrows to increase or decrease the "width" using clicks, similar to the number type input where the developer can only add numbers.

Support JS switch for the "width" field, which when clicked shows the input field for adding JS or number.

@somangshu ,
For the above additional requirements, my time estimation is 2

Hi @somangshu ,
For this requirement at 39, my estimation is 0.5

@somangshu ,
I am increasing the estimate by 0.5 for fixing the failed test cases that is introduced by implementing this request at https://github.com/appsmithorg/appsmith/pull/10600#issuecomment-1081814439


Adding a custom property

Hi Marco,
I would like to use PV for displaying and colouring structures by custom (continuous) properties. In the documentation I can see that the functionality I want is
pv.color.byResidueProp(prop[, gradient[, range ] ])

where  "prop – name of the property to use for coloring. It is assumed that the property is numeric
(floating point or integral). The name can either refer to a custom property, or a built-in
property of atoms or residues."
Which sounds like exactly what I need but what I can't work out is how to add a custom property in the first place?

Hi,
the functionality was not completely implemented until now. I've just pushed a changset to address this. Here is a sample that shows how it can be used:
http://pv.readthedocs.org/en/latest/sample-custom-property.html
I hope that helps.
Best,
Marco

Fantastic, it works perfectly now. Thanks a lot for your help!
Best,
Greg


Update to 2018 / Pad to byte / Documentation update / 0.2.0

rust/ide formatting introduced many spacing differences. If these are undesirable I can go back and back out those lines.
2018
Update code standards to current rust 1.33/2018. This mainly consisted of removing try! macro usage.
pad_to_byte
The main purpose of the update was to add the functionality of pad_to_byte. Without this, mainting the state of bits written would have to be done at a program level. The necessary value 'shift' was already stored. Functionality should be added at the bit-writer level.
Documentation
Updated documentation to reflect the above changes. Fixed errors in the documentation where bw was used instead of br so the code would not compile if tested. Made br/bw usage consistent.
0.2.0
I chose to bump to 0.2.0. The main reason being that for pad_to_byte to be clean it relies on NLL (Non-Lexical Lifetimes) which is a 2018 rust feature. This shouldnt really be a problem. I am unsure what will happen if current useres who are using 2015 update.

Normally I'd say these should be in separate commits, but I won't die on that hill.
Apart from one missed try! -> ?, this looks good. Fix that up and I'll merge and ship.

Re formatting, I'm happy to use some kind of Rust-standard (even if I dislike bits of it, conventions are better than my own personal opinions).
Re the version bump, sounds fair. I doubt there's (m)any users of this anyway, and Rust people tend to like the latest and greatest. I don't know enough about non-lexical-lifetimes to really understand what would be different about pad_to_byte without them, so I'll take your word for that!


[temporarily] Forking dockerfile for thanos for multi-arch enablement…

… of okd payloads

Seems we'll want to have more multiarch forks, which is orthogonal to centos 9 rebuild. Before we fork too many things I believe we should keep centos9 and arm64-enablement forks separate.
Not sure how to structure this:

an entirely new repo
a subfolder

Seems a subfolder for arm64 forks would be the least invasive. wdyt ?

Seems we'll want to have more multiarch forks, which is orthogonal to centos 9 rebuild. Before we fork too many things I believe we should keep centos9 and arm64-enablement forks separate.
Not sure how to structure this:

an entirely new repo
a subfolder

Seems a subfolder for arm64 forks would be the least invasive. wdyt ?

IMO the best we can achieve is that the same dockerfiles should work fine for both amd64 and arm64.
Also, we'd open some PRs in the upstream repos for most of the images here. This one, in particular, could immediately go to the openshift/thanos repo, but I'd avoid the reviews there, for now, to not slow down. When the rest of things are done (only a few images left + machine-os-content), we could start raising some PRs, especially for the very small fixes as in this case. Here I'm just removing the hard-coded amd64 string by adding that switch case (see https://github.com/openshift/thanos/blob/master/Dockerfile.ocp#L8-L13)

Ah, okay, I think that works for now. Hopefully there won't be too many of these Dockerfiles to fork and we won't get lost in them.
Since we can do git blame I suppose we're good for now.
Thanks, merging!


Not available in pycord 2.5.0

An error occurred when using pycord 2.5.0
Traceback (most recent call last):
  File "C:\Users\Chino\Desktop\桜の夜\Bot\Bot.py", line 153, in <module>
    i18n.localize_commands()
  File "C:\Users\Chino\AppData\Local\Programs\Python\Python310\lib\site-packages\pycord\i18n\__init__.py", line 188, in localize_commands
    self._localize_command(
  File "C:\Users\Chino\AppData\Local\Programs\Python\Python310\lib\site-packages\pycord\i18n\__init__.py", line 142, in _localize_command
    command.name_localizations[locale] = name
TypeError: '_MissingSentinel' object does not support item assignment

Will look into it.

Will look into it.

I have downloaded the code and made simple modifications, and it can now be executed normally.

@ParrotXray Can you confirm that the changes I made in the latest commit (https://github.com/Dorukyum/pycord-i18n/commit/822ea22733e0f242f48e93e362038390dfa0443b) fix this issue?

Normal operation after replacement

@Dorukyum Normal operation after replacement

pycord-i18n v1.2.1 is now published on PyPI: https://pypi.org/project/pycord-i18n/1.2.1/


[WIP] Add basic VXI11 support

Yo Guys! Could you please take a look at my basic implementation of VXI11 example for parser.
Cheers,
Taras

Can this be conditionally included/excluded in the compilation? Asking because I'm using the library in a memory challenged microcontroller.

Yes, libscpi can be compiled without vxi11 support.

Coverage decreased (-0.05%) to 93.113% when pulling e4f2e7501f3c170f0b2e56a69632c715e087eb87 on zaporozhets:vxi11 into a765b9eadd3fe29de5f8d426549b69fc0a96793c on j123b567:master.

Thank you for this example of VXI11 usage.
I'm sorry for so late response. I thought that I can review it and test it but I was unable to do it until now.
Please, do you have the source file for rpcgen which was used to generate vxi11_xdr.c?
Do you have some hints for me, how can I try this? I don't have any experience with VXI11. e.g. how  to generate VXI11 counterpart so I can talk with this example.

(I'm lurking around, watching this project, though I don't have any intentions of using this patch at this moment. On the other hand, I figure I can answer your questions.)

Please, do you have the source file for rpcgen which was used to generate vxi11_xdr.c?

rpcgen.c comes with from old SUN UNIX utilities. There are a bunch of different forks, such as:
https://github.com/bminor/glibc/tree/master/sunrpc
http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=tree;f=tools/rpcgen;hb=HEAD

Do you have some hints for me, how can I try this? I don't have any experience with VXI11. e.g. how to generate VXI11 counterpart so I can talk with this example.

VXI11 is a TCP-IP (perhaps with some UDP) based protocol, based on SUN/ONC RPC. It's very similar to USBTMC, and more or less duplicates the functionality of GPIB, but over IP. There is a variant to handle abstracting GPIB interfaces, too. VXI11 is falling out of favor these days, being replaced with HiSLIP which was designed to replace it.
You can use the NI VISA libraries (Or Keysight, or whatnot). I usually use the NI MAX GUI. Connect to a VISA address like "TCPIP::<IP_ADDRESS>::INSTR", and it should properly detect the VXI-11 server.

Thank you for your answers. My bad english, I was interested in IDL files not rpcgen itself, but you have answered it anyway, great.
I will merge this even if I can't test it now, because it can be interesting codebase for others.


TOP_LISTING FEATURES

Description

Updates ...

Related Issues
Fixes #463
Changes

Added a new feature to LISTING

Screenshots (if applicable)
https://github.com/user-attachments/assets/f2b49a67-d7ee-4509-9c40-8d0e3d41da32
Additional Context
Any additional context or information that reviewers should be aware of.

This PR is based on the following...

Checklist

[X ] I have performed a self-review of my code
[X] I have commented my code, particularly in hard-to-understand areas
[X ] My changes generate no new warnings
[X ] I am working on this issue under GSSOC

@Soujanya2004 Review PR..

@Soujanya2004 rating >= 4 is consider as top_listings


Added Irish as an audio and subtitle language (ga) with Irish flag (ie) from Nightly to Nightly

Description
Added Irish as an audio and subtitle language (ga) with Irish flag (ie) from Nightly to Nightly languages.md and .yml
Type of Change

[] New feature (non-breaking change which adds functionality)
[] Documentation change (non-code changes affecting only the wiki)

Checklist

[] Updated Documentation to reflect changes

I'm clearly doing something incorrectly with the pull request and my forked repos, apologies, not sure what it is...

I'm clearly doing something incorrectly with the pull request and my forked repos, apologies, not sure what it is...

Typically the workflow would be:

fork the repo
switch to nightly on your fork
make sure your fork's nightly is up to date if you did step one a while ago.
create a new branch from nightly in your fork
make your changes on that new branch
PR your branch to upstream nightly.

That should ensure that the changes in your PR are ONLY those changes that you made.


[AVM Module Issue]: Event Grid System Topic Event Subscription w/ Managed Identity

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Bug
Module Name
avm/res/event-grid/system-topic
(Optional) Module Name if not listed above
No response
(Optional) Module Version
No response
Description
https://github.com/Azure/bicep/blob/4fff3423026fa5284e1effc51afbba1a0ecd6ec7/src/Bicep.Core.IntegrationTests/ScenarioTests.cs#L2298-L2299
When you use managed identity for the destination you never set destination. Bicep requires this field to be passed.
{
  "code": "InvalidRequest",
  "message": "Destination and DeliveryWithResourceIdentity cannot be set at the same time."
}

(Optional) Correlation Id
No response

Similar to this issue with not being able to set as null from module
https://github.com/Azure/ResourceModules/issues/3386

Hey @coolhome, sorry this slipped me. I just assigned the module owner and we'll make sure to look into this.
Speaking of - @fabmas, any chance you could check this out?

sure! I'm going to test something like this:
    deliveryWithResourceIdentity: !empty(deliveryWithResourceIdentity) ? deliveryWithResourceIdentity : null
    destination: !empty(deliveryWithResourceIdentity) ? null: destination

@fabmas br:mcr.microsoft.com/bicep/avm/res/event-grid/system-topic:0.2.0 is still not working.
If I omit destination I receive:
Unable to process template language expressions for resource '/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.Resources/deployments/<prefix>-EventGrid-SystemTopics-EventSubscriptions-0' at line '1' and column '16836'. 'The language expression property 'destination' doesn't exist, available properties are 'name, eventDeliverySchema, filter, deliveryWithResourceIdentity, retryPolicy'.'

If I send a null destination I receive:
Invalid destination properties. Please make sure the 'properties' field of 'destination' property is correctly specified and is not null or empty. (Code: InvalidRequest)

If I send an empty destination I receive:
Invalid destination properties. Please make sure the 'properties' field of 'destination' property is correctly specified and is not null or empty. (Code: InvalidRequest)

Very similar to the https://github.com/Azure/ResourceModules/issues/3386 property managedBy, where it has to be omitted


shutil.remove error

I chose to bypass redis, and I got this error after the conversion. Perhaps use os.remove() instead?
Traceback (most recent call last):
  File "/ffproc/ffproc.py", line 235, in <module>
    shutil.remove(job["path"])
AttributeError: 'module' object has no attribute 'remove'

Thanks, this has been fixed in master.


VerticalScrollBar crashed in compose web

Describe the bug
I am using VerticalScrollBar with LazyColumn in compose web, it works fine with desktop, but crashes on web with following error in the console:
An operation is not implemented: implement js setter for rawPosition

ALso i checked its code,  i can see some code is commented in Scrollbars.js.kt file:
private var rawPosition: Float
        get() = scrollScale * adapter.scrollOffset
        set(value) {
            TODO("implement js setter for rawPosition")
            //runBlocking {
            //    adapter.scrollTo(containerSize, value / scrollScale)
            //}
        }

So are we planning to implement this?
ANd is there any workaround available for as of now for using scrollbars with LazyColumn ?
Affected platforms
Select one of the platforms below:

Web (K/JS) - Canvas based API
Web (K/JS) - HTML library

To Reproduce
Steps and/or the code snippet to reproduce the behavior:

Try to use VerticalScrollBar with LazyColumn as we use for Desktop, it will crash while we will click on scrollbar to scroll.

Expected behavior
It should not crash.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Improve the search and search components of the Feed screen.

closes #36
This is what it looks like right now

i just put back the original structure for the feed component

Well the PR is not finish yet.
We are gonna merge as it is and finish at after, thank you @Dprof-in-tech


Rust Documentation

Now that the Rust PR is merged, I think it's about time to document it!
It's missing a couple things (such as setting the runtime) that are possible with the lower-level bindings that are exposed, but I think it might be good to get this initial pass reviewed and merged, then fix up the higher-level parts of the lib to cover the use cases that were forgotten, and then do a second documentation pass. Or I can just fix the lib up now and this can wait, if that's preferred, I'm fine with either way.

Gotcha, I'll leave it and do a second one once I add in a couple of the missing pieces 👍👍

This now has the missing docs, so once https://github.com/webui-dev/rust-webui/pull/6 is merged, this one can be too!

Thank you so much for this and your previous help as well!


[DO NOT MERGE] Auto PR to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
e8d0b24f25f1aba7bef692025edc75dd179407d9
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


sentry-cli 2.21.2 ENOENT

Environment
"@sentry/webpack-plugin": "^2.8.0",
Node 20
macOS Sonoma
Steps to Reproduce

Updated sentry-webpack
Made an Angular build with plugin installed

Expected Result
No errors
Actual Result
Using the CLI directly works
SENTRY_AUTH_TOKEN=xxxxx sentry-cli releases --org=xxxx --project=xxx new xxxx@xxxx

[sentry-webpack-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
⠦ Generating browser application bundles (phase: emitting)...Error: spawn /Users/marvin/Developer/x/node_modules/.pnpm/@sentry+cli@2.21.2/node_modules/@sentry/cli/sentry-cli ENOENT
    at Process.ChildProcess._handle.onexit (node:internal/child_process:286:19)
    at onErrorNT (node:internal/child_process:484:16)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn /Users/marvin/Developer/x/node_modules/.pnpm/@sentry+cli@2.21.2/node_modules/@sentry/cli/sentry-cli',
  path: '/Users/marvin/Developer/x/node_modules/.pnpm/@sentry+cli@2.21.2/node_modules/@sentry/cli/sentry-cli',
  spawnargs: [ 'releases', 'new', 'xxxx@xxxx' ],
  cmd: '/Users/marvin/Developer/x/node_modules/.pnpm/@sentry+cli@2.21.2/node_modules/@sentry/cli/sentry-cli releases new xxxx@xxxx'
}

@muuvmuuv Hi, please make sure postinstall scripts are running when you install the package. Thanks!

Oh, that was a quick one. Deleting node_modules and doing pnpm install again fixed it. Maybe something to improve, the error message?


[Arith] Fix iter_affine_map with non-const extent

Return original expression if the expression can't be resolved. Otherwise, passing IterMapExpr to Simplify causes error.
@tqchen

Please apply the clang format via ./tests/lint/git-clang-format.sh -i upstream/main

Thanks @vinx13 !


time_share metric

it might be helpful to account for the cost of individual predictions in a batch, including the changes in batch size over the course of the prediction. this would add a metric representing that. it can also be used to determine the average batch size (batch_size = predict_time / time_share).
if there are two predictions that take 1 second, they would both cost 0.5s. if there's one prediction that takes 3 seconds and another one that takes 1 second (overlapping with the first prediction), the first will cost 2.5 (1 + 1/2 + 1) seconds and the second will cost 0.5 (1/2) seconds.
AAA***
*BBBB*
**CC**
***DDD

job A is running for the first 3 seconds, job B is running from second 2 to 5, job C runs seconds 3-4, job D runs seconds 4-6. suppose each second costs $1. A costs $1 + $.5 + $.3, B costs 0.5 + 0.3 + 0.3 + 0.5, C costs 0.3 + 0.3, etc.

I asked Cursor to help me understand this.

In the context of this code, "time share" refers to the amount of time a particular prediction task occupied the worker process.
So in summary, "time share" here represents the portion of the worker's processing time that was dedicated to each individual prediction task. It's a way to measure and report how the worker's time is being allocated among concurrent predictions.

Wonder if there's a more descriptive name than time_share that encapsulates what it is. 🤔


PR: Add option to per-file run configuration to use default run configuration

Description of Changes

Added option to use default run configuration in the per-file run configuration
Behavior is unchanged except that when this option is selected the file-specific run configuration is ignored and the default run configuration takes priority.
Note: all other file-specific run configuration options are not modified. This will allow toggling the run configuration without requiring the user to re-establish file run configuration.
Fixed an issue with running in an external terminal if path and/or script name had spaces.

Issue(s) Resolved

Fixes #16207
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct:
@mrclary

The problem with this dialog is that it's not quite clear that current settings apply to the file selected in the dropdown at the top. Perhaps we should emphasize that better?
I say it because (I think) it won't be clear to users what the "Remove" or "Reset" buttons are supposed to do.

The problem with this dialog is that it's not quite clear that current settings apply to the file selected in the dropdown at the top. Perhaps we should emphasize that better?
I say it because (I think) it won't be clear to users what the "Remove" or "Reset" buttons are supposed to do.

What do you think could improve it?

Maybe we could put the remove button next to combo box?
Maybe we could move the combo box outside and above the "configuration" box?

@spyder-ide/core-developers, does anyone have a suggestion?

Maybe the initial idea of using the checkbox could be better if the idea is to keep the possibility to change again to the custom settings for the given file. However maybe to make more clear that the default settings are being used instead of some custom specified all the config (in case the checkbox exists) should be disabled but preserving the custom values for the preferences (although I'm unsure how complex could that be). If the idea is just to not preserve the custom config and revert everything to the defaults a reset button is better.
Also, maybe @isabela-pf could give us some ideas regarding what could be more user friendly and clear

Maybe the button should read "Default" or "Reset to Defaults" instead of "Remove" or "Reset"? The desired behavior is that the file run settings should follow that which is specified in Preferences.
I think users already know that the "Run" button applies to the selected file in the combo box; so perhaps users will know that "Reset to Defaults" will also apply to the selected file?

Sorry I'm late to the party, but I agree with @mrclary and @dalthviz that a checkbox is greatly preferable to just a reset button (if only one must be chosen, given they actually serve somewhat orthogonal functions). It makes this functionality much more useful, by being able to quickly switch between the default and a custom run config for testing, debugging or other purposes, rather than simply wiping all the settings, while not adding any more complexity to the UI. Adding a Reset button could be considered as a separate feature, but given in practical use the toggle checkbox covers close to a superset of a the actual use cases a reset button would, the latter doesn't appear to be necessary as a separate feature.
The conventional/expected UX for this would be exactly as described by @dalthviz ,

However maybe to make more clear that the default settings are being used instead of some custom specified all the config (in case the checkbox exists) should be disabled but preserving the custom values for the preferences

I don't think pathological fear of configurability should, at the very least, limit genuinely useful new functionality and and a more convenient user worklow/UX.
However, if instead the originally proposed functionality, we instead want to merely offer a button resetting the dialog contents to the current default, it should say Reset or Reset to default to match the other similar dialogs (Remove is potentially quite confusing and ambiguous in this context), and it should not be irreversably applied until the user clicks OK, being undoable with Cancel (as otherwise a user may accidentally click it and wipe out all their custom config, with no way to get it back—something else the toggle functionality would better avoid).

Okay, to summarize where I think we're at...
Original Issue
The original issue is that once a file specific run setting is created, there is currently no mechanism to revert to the default behavior specified in Preferences. This was first reported in the discussion for #16200.
Proposed Solutions
Checkbox

Provide a checkbox in the per-file run settings that allows the user to toggle between using custom run settings and falling back to the default behavior in Preferences.
When the checkbox is selected to use default settings, custom settings are not removed, but the items in the dialog box are disabled and greyed.
This solution does not provide a mechanism for culling entries in [run] section of the transient.ini configuration file. This may or may not be a concern.
No permanent actions are taken unless the "OK" button is pressed.

Push Button

Provide a push button in the per-file run settings that removes the selected file from the drop-down list and its run settings widget from the dialog's widget stack. The label for this push button is to be determined ("Reset", "Use Default", or whatever).
Upon "OK" button press, the dialog's current settings widget stack is saved to the [run] section of the transient.ini file. Note this is already the behavior of the "OK" button; there is no change here.
This solution does provide culling of the [run] section of the transient.ini file, if this is any concern.
This solution does not provide a mechanism for toggling between the default behavior and custom settings.

Other Solutions
I'm open to any other suggestions.

@mrclary, sorry for not giving you feedback about this one before. We'll discuss it @isabela-pf and @steff456 soon to see if we can find a nice UX solution to this conundrum.

No problem. Whatever we decide, I'll make it happen. 👍🏼

Just wanted to let you all know I'm caught up on the issue and working on a solution. Thanks!

Okay, here's an idea!
For me, the idea of the checkbox is the proposal I prefer most. It has room for the most clarifying description and allows for users to go between options without losing their custom configuration.
The main thoughts I had were

Users cannot simultaneously have default settings and custom settings enabled. Check boxes typically allow multiple selections; for things like this a radio button may be better suited.
Choosing what kind of run (default or custom) is the first thing users need to answer, not the last. Because if they want default, then they have potentially wasted time filing out everything else first not knowing the option is at the bottom.
If a user wants the default settings, none of the other options seem to matter. They just make for a large, potentially overwhelming dialog.

Instead I think it would be beneficial to try making this option a radio button, moving it to the top, and only showing the custom settings when custom is requested. Here's an idea of what that could look like in-interface.

Feedback is welcome! Let me know if you have any questions, too.

Okay, here's an idea!
For me, the idea of the checkbox is the proposal I prefer most. It has room for the most clarifying description and allows for users to go between options without losing their custom configuration.
The main thoughts I had were
* Users cannot simultaneously have default settings and custom settings enabled. Check boxes typically allow multiple selections; for things like this a radio button may be better suited.

* Choosing what kind of run (default or custom) is the first thing users need to answer, not the last. Because if they want default, then they have potentially wasted time filing out everything else first not knowing the option is at the bottom.

* If a user wants the default settings, none of the other options seem to matter. They just make for a large, potentially overwhelming dialog.

This makes perfect sense to me and I agree completely. Thank you for articulating it so well.

Instead I think it would be beneficial to try making this option a radio button, moving it to the top, and only showing the custom settings when custom is requested. Here's an idea of what that could look like in-interface.

I like where you're going with this. Would it be better to disable and gray-out the options instead of hiding them? Some arguments for this would be:

If the default is selected, the user can still see what potential options are available.
If the default is selected but there are previously set custom settings, this information is still visible to the user.
The affected file is displayed in a dropdown list, so changing the selected file, or changing the custom/default radio button, will change the window size. In my opinion, as a user, this can be obnoxious and I'd prefer that window sizes remain fixed unless I deliberately resize them.

Does anyone have an opinion regarding pruning the entries in the [run] section of the transient.ini configuration file? I don't necessarily think that the user should be bothered with this issue; I'm just wondering if there are any concerns that it could get bloated. I get a bit concerned when there are mechanisms to add but never to remove items from configuration lists. Could this potentially be a source for bugs in the future? As a user, I find it inconvenient to have to "nuke" my configuration files in applications as a way to solve some bug, especially when I've got a lot of custom settings that I have to manually restore. Maybe one solution is just to check for the existence of the file on startup and remove it from the list if it does not exist.

I like where you're going with this. Would it be better to disable and gray-out the options instead of hiding them?

I think this will work fine. My main thought was that this can still be an overwhelming window even with the content disabled, but it's a loosely held opinion for sure. I think the most compelling argument to me was your comment about users still being able to access the custom settings so they better understand their two options.
Thanks for the feedback!

Hello @mrclary! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file spyder/plugins/run/widgets.py:

Line 195:80: E501 line too long (82 > 79 characters)
Line 267:13: E128 continuation line under-indented for visual indent

@ccordoba12 @andfoy @isabela-pf any chance of moving forward on this soon?

/show binder

@isabela-pf, it looks like I'm able to merge this, but I didn't do so before because I didn't know if I needed to wait for any other reviewers. Should I merge this or wait?

I'm personally fine if you merge this. @andfoy and @ccordoba12 any objections since you also reviewed this?

I also agree with the proposed changes

@isabela-pf @andfoy @ccordoba12, sorry to make you re-approve, but I thought this should have a rebase to double check the tests, etc.

@ccordoba12 @isabela-pf @andfoy , just updated the PR description with the current Run configuration window.

This is a great change to finally see happen! One request—could you add the radio buttons at the top-level of the dialog like the file path rather than within a subsidiary Run Settings QGroupBox, as it controls the behavior of the rest of the dialog as a whole?

No problem.
I see something else we might want to consider. The "External system terminal" QGroupBox is controlled by the "Execute in external system terminal" radio button. Would it make better sense to take "External system terminal" elements and put them with "Execute in external system terminal" (underneath, indented)?

I see something else we might want to consider. The "External system terminal" QGroupBox is controlled by the "Execute in external system terminal" radio button. Would it make better sense to take "External system terminal" elements and put them with "Execute in external system terminal" (underneath, indented)?

Yes, indeed—good catch.

@CAM-Gerlach @isabela-pf @ccordoba12 @andfoy, I updated the PR description with the external terminal elements moved to the console group and screenshot.

@mrclary Thanks! Would you mind updating the screenshot as well?

@mrclary Thanks! Would you mind updating the screenshot as well?

I did.

Hmm, maybe its a caching issue but I'm not seeing it above after shift-reloading, and it looks like your most recent edit was over 24 hours ago?

Sorry, must have forgot to hit the green button 😬

@ccordoba12, do you have any comments about this PR? We need to merge this before continuing with the Run refactoring PR


Prettier + ESLint + VS Code setup

Fix for: #52
Summary
VS Code Configuration:
Ensured workspace settings enforce Prettier and ESLint, overriding any user-specific configurations.
Prettier Enhancements:

Added the Tailwind CSS plugin to handle:
Deduplication of class names
Deprecated classes
Automatic class name ordering

Extended ESLint Configuration:

Integrated Prettier rules for seamless compatibility.
Added jsx-a11y plugin to enforce accessibility best practices.

Summary by CodeRabbit

New Features

Introduced new configuration files for Prettier and Visual Studio Code to enhance formatting and development environment.
Added recommended extensions for Visual Studio Code to improve code quality.

Bug Fixes

Updated linting and formatting dependencies to ensure better code quality and accessibility compliance.

Documentation

Updated configuration files to include new settings for formatting and linting.

Chores

Enhanced project configuration for improved development practices.

@tyaga001 Could you please review this setup and let me know if it works for you or if there are any adjustments you’d like?
Additionally, if you’d prefer, I can make the ESLint configuration more stringent by adding stricter rules for TypeScript, React, and related specifics. Let me know your thoughts!

@nirnejak build is failing pls check.

@tyaga001 This issue is caused by the updated ESLint and Prettier rules. I can either lint and format all the files to fix it or temporarily disable the rule for the production build


Unknown Exception handling is hard to trace

instead of getting a stacktrace errors are simply logged as info, and given the message, this is an expecial problem with the generic exception handling of TokenEndopoint.handleException
related to #1200 and #1202

Duplicate of #1200


Error saving to Google Drive or OneDrive

Hello.
I downloaded the files at https://github.com/jgraph/drawio and uploaded it to my CPanel hosting. I then accessed the URL https://www.concurseiros.club/mapa-mental/, but I can not choose the save option in Google Drive or Onedrive. Only works when I choose to save the files in "Locally on device". When I click on the Google Drive icon, the page is redirected to https://www.draw.io/mapa-mental/, which displays the message "Error: Not Found". When I click on the OneDrive icon the message "invalid_request: The provided value for the input parameter 'redirect_uri' is not valid. The expected value is a URI which matches a redirect URI registered for this client application."
How do I set up Google Drive and OneDrive to use draw.io in my hosting?
Thank you.

draw.io is not entirely static, it has some dynamic components (including Google and OneDrive integration)
So, please refer to https://github.com/jgraph/docker-drawio/tree/master/self-contained


Inner HTML whitespace is added when wrapping

Operating System (+Version): Windows 10 19041.572
VS Code Version: 1.50.1
beautify Version:  v1.5.0

NOTE: Please provide code snippets instead of screen shots. Your issue needs to be replicated, and we need the failing code (text) to do this.
Provide the settings you use:
.jsbeautifyrc
{
  "html": {
    "wrap_line_length": 80
  }
}

Action performed
Format javascript file with HookyQR.beautifyFile command

This text is a very long block of text that should not be modified. Unfortunately, formatters can't know if adding whitespace would affect render.

Instead of this

Expected results

This text is a very long block of text that should not be modified. Unfortunately, formatters can't know if adding whitespace would affect render.

Instead of this

Actual results

This text is a very long block of text that should
    not be modified. Unforunately, formatters can't know if adding whitespace
    would affect render.

    Instead of this

I can understand how the first one would be a bit more difficult to fix, perhaps needing a new property. (Prettier has a Whitespace sensitivity option), but the second line could probably be default.

Closing this in favor of filing this against js-beautify


[QUESTION] Set up only once

Is configuring these hooks something that everyone should do when cloning a repository where these hooks are to be used? Can I do this configuration only once?

@ThallyssonKlein I usually setup in every new repo / clone.
Maybe if you use it inside .git it will come with the clone, and so only the git flow init would work I guess, since it already tries to load hooks


Bug:  Cannot read properties of undefined (reading '0')

Getting this error. (I have added a new API key from https://platform.openai.com/account/api-keys to my env.)
aicommits
▲ Welcome to AICommits!
▲ Generating your AI commit message...

/Users/graup/.nvm/versions/node/v18.13.0/lib/node_modules/aicommits/bin/aicommits.js:98
        const aiCommit = json.choices[0].text;
                                     ^

TypeError: Cannot read properties of undefined (reading '0')
    at /Users/graup/.nvm/versions/node/v18.13.0/lib/node_modules/aicommits/bin/aicommits.js:98:38
    at Generator.next (<anonymous>)
    at fulfilled (/Users/graup/.nvm/versions/node/v18.13.0/lib/node_modules/aicommits/bin/aicommits.js:6:58)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v18.13.0

Hey @graup, thanks for opening this issue! This error typically happens when you don't have the correct value for the OpenAI env variable. I recommend you do a printenv OPENAI_API_KEY to see what value you have it set to and verify that it matches an API key that's on your OpenAI API dashboard that you linked.
The API key should have no whitespaces and should be in the shape of sk-xxxxxxxxxxxxxxx. Could you verify you have the correct value for the env variable, open a brand new terminal, try it out again, then let me know if the problem is still there?

Thanks for your reply! I tried that, same problem. If you have no idea, I'll try checking out your repo and digging into the API response.

@graup I unfortunately don't have any idea why it isn't working for you since multiple people have told me it works. But you and someone else created identical issues so it seems like there is a gap somewhere, either in the docs or code.
It's a lot to ask but if you could clone the repo and try to log the API response to find the issue, I would be very grateful!

Also, can I ask what operating system you're using @graup?

Hi, I understand that you're facing the same issue that I did before. But I was able to fix it by simply restarting my terminal. Sometimes, when the terminal has been running for a while, it can start to experience some glitches or issues with its processes. So, try restarting your terminal and see if that resolves the problem for you too.

@Nutlope The error appears to be insufficient_quota. I had to console.log the json response from const json = yield response.json(); and got this:
{
  json: {
    error: {
      message: 'You exceeded your current quota, please check your plan and billing details.',
      type: 'insufficient_quota',
      param: null,
      code: null
    }
  }
}

But you need to handle this (or any other) error(s).

In my case, I had to set up a payment method in my OpenAI account, and regenerate an new API Key. It worked right after.

The latest release should log the specific error from OpenAI

OCO_OPENAI_BASE_PATH=https://api.aikey.one/v1，
api后面加上/v1
源码：
...
createChatCompletion: (createChatCompletionRequest, options = {}) => __awaiter(this, void 0, void 0, function* () {
          const localVarPath = `/chat/completions`;
          const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
        }),
...


Fix broken links

Fixing all broken links that referenced other ercs.

I will separate it into a different PR. This one was by accident.


Dev/future screen

Attempting a Future Screen concept with this.

Attempting a Future Screen concept with this.


Approval process fails when a scope is selected during the approval.

API Services Portal Issue
Approval process fails when a scope is selected during the approval.
My issuer configuration:
kind: CredentialIssuer
name: Resource Server hns-esb-dev
namespace: hns-esb-dev
description: Authorization Profile for protecting Ministry of health
flow: client-credentials
mode: auto
authPlugin: jwt-keycloak
clientAuthenticator: client-secret
clientRoles: []
availableScopes: [system/*.write]
owner: pkathuri@idir
environmentDetails:

environment: dev
issuerUrl: https://common-logon-dev.hlth.gov.bc.ca/auth/realms/v2_pos
clientId: api_gateway_client_manager
clientRegistration: managed
clientSecret: ""

When an admin is approving the API request, this option in Permissions tab:

When 'Checkbox' in Roles is selected: Request Approved
When 'Checkbox' in Scopes is selected: Approval Failed
ENV

[ ] DEV
[x ] TEST
[ ] PROD

TESTCASE

EXPECTED
Approval to pass when Scope is selected.

ACTUAL
Approval fails when Scope is selected.

The error showing in the Activity (Request failed with status code 500) is not very useful as the root cause is:
{"error":"insufficient_scope","error_description":"Policy 'Allowed Client Scopes' rejected request to client-registration service. Details: Not permitted to use specified clientScope"}

The 500 appears to be due to a failed reduce() when handling the original 403 error:

(error.errors || []).reduce is not a function","stack":"TypeError: (error.errors || []).reduce is not a function\n    at flattenNestedErrors (/app/node_modules/@keystonejs/keystone/lib/Keystone/format-error.js:54:24)\n    at formatError (/app/node_modules/@keystonejs/keystone/lib/Keystone/format-error.js:98:30)\n    at /app/node_modules/@keystonejs/keystone/node_modules/apollo-server-errors/dist/index.js:168:34\n    at Array.map ()\n    at Object.formatApolloErrors (/app/node_modules/@keystonejs/keystone/node_modules/apollo-server-errors/dist/index.js:166:27)\n    at formatErrors (/app/node_modules/@keystonejs/keystone/node_modules/apollo-server-core/dist/requestPipeline.js:306:43)\n    at Object. (/app/node_modules/@keystonejs/keystone/node_modules/apollo-server-core/dist/requestPipeline.js:192:98)\n    at Generator.next ()\n   ...

Root cause of this was some unnecessary scopes included during Client Registration.  This was fixed in v1.0.56.
There is still some investigation required to see why the 500 error happens.

PR #418 improves the error handling so that the message logged to the Activity is more informative and the backend logging is improved.


Fixed HTTP redirects with proxy handler

Motivation
Fixes #2660
There is a problem with the Jetty proxy servlet configuration that it makes it to not transparently follow HTTP redirects from brokers. This results in clients being redirected to a broker hostname that they cannot reach.
Modifications
Completely override the createHttpClient() from AbstractProxyServlet in order to ensure that RedirectProtocolHandler is always in the list of handlers for the client.
Result
Proxy will internally handle 307 redirection and will send a 200 to client.

run cpp tests

run cpp tests


Instructions on how to check the installed version

Added instructions on how to check the installed module version to the ReadMe.

Thanks @kilasuit! I updated the PR to use your version of version checking instead.

@artokai I edited the comment a few times with a few updates to the line - If you include the latest version as below then this will sort the modules by Version in Descending order (not the default)
Get-Module OfficeDevPnP.Powershell.* -ListAvailable | Select-Object Name,Version | Sort-Object Version -Descending

Sorry, I missed your edits. I updated my PR accordingly.

Thank you Arto!


Removed unused defines.

The defines MAXVALSZ and DICT_INVALID_KEY are not used anymore.

@stoeckmann
Thank you for your contribution!


CNV-39286: Syncededitor everywhere

Have syncedEditor for Route, NADs and NetworkPolicy forms

Have all creation buttons without - yaml and -form options. Just a button that goes to the sycnedEditor

hey @upalatucci just 1 small comment, solve conflicts and lets merge

/lgtm


Check gPTP valid before enumerating device

Not sure I agree with this change - we should enumerate devices that don't support gPTP. Was this added to work around another issue?

This change was made to prevent other AVDECC contollers showing up in the endstation list. I'm 100% open to a different solution if you would like to suggest one.

I would suggest we instead check the talker_capabilities and listener_capabilities flags for IMPLEMENTED and if neither are set we don't enumerate.

Ok, we'll make that change. Can you elaborate on the scenario where a device might have talker and listener capabilities, but not gPTP support? I'm missing some the thought process here.....

I guess I'm thinking about new devices that can source or sink AVTP Control Format streams or vendor specific formats (new in 1722-2015) that are not required to support gPTP (or even SRP reservations..).
There's probably also a class of device that just implement AEM Controls and do not support any Talker or Listener capabilities (audio or control). Using the talker_capabilities and listener_capabilities flags here won't work. There's not really an ADP flag to cover this class of device either, so we would have to partially enumerate the device's Configuration descriptor(s) before deciding to display it or not...
The other option is to enumerate everything on the network and then do a post-enumeration filter on what shows up in the entity list. We have all the descriptors needed to make a good decision at that point.

I think the library should probably do the general, wide-use case behaviour and leave it up to the application to filter. Some users might want Controllers to show up in their application and the library shouldn't prevent this.

Which raises the point whether the library should offer the application a way of overriding what flags to fully enumerate on, in the case where you might want to minimise the enumeration time.

One of the issues is that read of the ENTITY descriptor times out on a Riedel controller entity, so an application that chooses to show error messages will see a bunch of them attempts to interact (ie read) the Riedel controller's AEM descriptors.

Having the user specify flags to check/filter when enumerating is a good soln. Great idea!

Oh we shouldn't be enumerating devices that haven't got the AEM_SUPPORTED flag set. This might be enough to prevent the Riedel ENTITY descriptor time out issue.

You would think  - except it does seem to set AEM_SUPPORTED (in error I believe). I'm going to go with allowing the user to optionally provide filter flags - or at least review how that would work....

If an entity is sending ADP with AEM_SUPPORTED then it had better support AEM, which requires at least READ_DESCRIPTOR. Otherwise it is broken. In addition, if it supports AEM and receives an AEM COMMAND that it does not support, it had better respond to those commands with the status code of NOT_IMPLEMENTED.
The question remains: what to do with entities that misbehave? One option is to see if it times out 3 times in a row, then blacklist it and run as if the entity did not exist.
Do you handle the case of GENERAL_CONTROLLER_IGNORE being set?
Please don’t ignore devices that are responders. I have a lot of them! they do not use gPTP or streams, but have a full entity model.  For one product, the control plane needs to work for SET/GET CONTROL even when AVB is not available, because the user might be selecting analog or AES3 inputs.

On Aug 7, 2015, at 07:26, andrew-elder<EMAIL_ADDRESS>wrote:
You would think - except it does seem to set AEM_SUPPORTED (in error I believe). I'm going to go with allowing the user to optionally provide filter flags - or at least review how that would work....
—
Reply to this email directly or view it on GitHub https://github.com/audioscience/avdecc-lib/pull/219#issuecomment-128714042.

Will make sure responders work.....
My not get the fix in place until early next week. Thanks for your response.
No, I don't think we handle GENERAL_CONTROLLER_IGNORE. Will have to check
the code base.
Yes, that is a good question about how to handle mi-behaving entities. Will
create a separate issue for it.
On 8/7/2015 10:54 AM, Jeff Koftinoff wrote:

If an entity is sending ADP with AEM_SUPPORTED then it had better support
AEM, which requires at least READ_DESCRIPTOR. Otherwise it is broken. In
addition, if it supports AEM and receives an AEM COMMAND that it does not
support, it had better respond to those commands with the status code of
NOT_IMPLEMENTED.
The question remains: what to do with entities that misbehave? One option
is to see if it times out 3 times in a row, then blacklist it and run as
if the entity did not exist.
Do you handle the case of GENERAL_CONTROLLER_IGNORE being set?
Please don’t ignore devices that are responders. I have a lot of them!
they do not use gPTP or streams, but have a full entity model. For one
product, the control plane needs to work for SET/GET CONTROL even when
AVB is not available, because the user might be selecting analog or AES3
inputs.

On Aug 7, 2015, at 07:26, andrew-elder<EMAIL_ADDRESS>wrote:
You would think - except it does seem to set AEM_SUPPORTED (in error I
believe). I'm going to go with allowing the user to optionally provide
filter flags - or at least review how that would work....
—
Reply to this email directly or view it on GitHub
https://github.com/audioscience/avdecc-lib/pull/219#issuecomment-128714042.

—
Reply to this email directly or view it on GitHub
https://github.com/audioscience/avdecc-lib/pull/219#issuecomment-128721685.

--
Andrew Elder
AudioScience, Inc.
+1-585-271-8870
www.audioscience.com

Latest merge allows user (application) to pass in a set of flags to set any filter they wish.


⚠ Text Filter API Endpoint has degraded performance

In c529a32, Text Filter API Endpoint (http://textfilter.roblox.com/) experienced degraded performance:

HTTP code: 200
Response time: 2145 ms

Resolved: Text Filter API Endpoint performance has improved in c7e6cf1.


Reduce duplicate code in audiounit_stream_get_current_device

Add a simple test for cubeb_stream_get_current_device(...)
Reduce duplicate code for input and output in audiounit_stream_get_current_device(...)

Hmm... I think it's better to rename audiounit_stream_get_current_device to audiounit_stream_get_current_device_source.
We should use an explicit name for this function since the same device will return different datasources. For example, the default input device on macbook pro will return "imic" if it uses the default internal microphone or "emic" when it uses an external microphone plugged in audio jack. The name audiounit_stream_get_current_device is vague. Users will expect it returns a device-name instead of a data-source name of a device when they see it. However, it might be out-of-topic here. I can open another issue to address it later.

audiounit_stream_get_current_device isn't public, it's called via cubeb_stream_get_current_device.  We can rename the public API and all of the implementations if necessary, but it may be sufficient to add documentation alongside cubeb_stream_get_current_device or the cubeb_device struct in cubeb.h to clarify how it behaves.


Add E2E tests covering B2B Demo cases

Before adding more tests, we remove the flakiness of existing tests, as we don't want to introduce more flaky tests.
Therefore requires #2293

@fforootd @eliobischof I believe you are not really working on this right now and from your comments I think this issue is for the backlog right now?

@fforootd @eliobischof I believe you are not really working on this right now, so I can remove you both from the assignees? and from your comments I think this issue is for the backlog right now?

I'd say so too, yes.

close it in favor of other e2e test issues


[L] DUP Disaster Recovery

Description:
We need to execute on what it means to move/migrate/restore from two different types of backups.

Document and test out the snapshot mode on dynamodb
full backup restoration on a new table
preferably using automated/semi-automated scripts that can be run against the environment vi CLI.

Acceptance Criteria:

[x] Dev checklist completed
[ ] refine other disaster recovery product tix once this one has been completed

Development Checklist:

[x] backup and restore from snapshot
[x] backup and restore from full-backup
[x] document where we are storing snapshots and full-backups
[x] scripts to backup
[x] scripts to restore

Dependencies

Blocked by
Blocking

Relevant documentation as reference
Definition of Ready

[x] Acceptance criteria are included
[ ] Wireframes are included (if applicable)
[ ] Design / Solution is accepted by Product Owner (if applicable)
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

Definition of Done

In progress:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] UI meets accessibility requirements
[ ] Unit tests are written
[ ] Work is traceable in GitHub
[ ] PR linked to ticket number
[ ] If needed/required - Dev adds flag/label to highlight any migration steps necessary prior to PROD deployment

Code review:

[ ] Code is peer reviewed and has passed CI/CD tests

QA:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] Code is potentially shippable to the production environment
[ ] Functional features have been tested and passed by QA
[ ] UI components tested by designer
[ ] Code is deployed to PROD when moved to 'done' column (unless requested otherwise by PO)

PO Review:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] Reviewed and approved by Product Owner

Notes:

@Dianadec @marklise  - Is there more detail related to this ticket? Priority? Disaster recovery is often important, so curious on more details to support this ticket. Thanks!

@LindsayMacfarlane  this is something we need to refine for sure. It goes across our products (I think). cc @marklise

💯 we will want to do this asap. @Dianadec @LindsayMacfarlane

Dec 4 Refinement questions:

have we done this previously?
We'll have to update our SAM template to always have this deployed.
Is this all products?  Yes.
todo: Create separate tickets for other products. This ticket can be for DUP. Try it out in TEST, not prod. First ticket will be much more work - other ones will be easy.

Looking at AWS and their options for disaster recovery / backup and restoring DynamoDB, it looks like what we need is prebuilt into AWS's settings and would not require a dedicated cron and Lambda to run.
For immediate disaster recovery, AWS has Point in Time Recovery (PITR) that would allow us to restore the database at any second in time, up to 35 days ago. So this is our first step in restoring the database if anything goes awry from corrupt data, an erroneous migration, etc.
PITR recovery can be done easily enough right in the AWS console. It also seems that the cost of implementing PITR for our tables (main table for DUP is ~800mb currently) would be pretty negligible - like <$1 per month.
For long-term retention, AWS provides the option to schedule a Backup Plan and retain data for an amount of time greater than PITR. AWS allows you to create a backup plan where you specify:

Day and time the backup is taken
Where it should be stored in AWS (eg. backup "vault" in the AWS console)
How often it should be backed up (eg. daily, weekly, monthly)
How long it should be stored for (eg. 1 month, 1 year, 5 years)
In what manner it is stored (eg. "warm" and/or "cold"*)

*AWS uses the terminology "warm storage" and "cold storage" to differentiate how data is retrieved. Warm storage is slower than PITR, but faster than cold storage; cold storage is slowest for data retrieval and may also incur a cost for the data retrieval, but is a good option for holding data for "just in case" moments.
The cost of a long-term backup is more than PITR, but still not an exorbitant amount. It looks to be roughly $0.095 per month per GiB of data, so about $1.15 if we hold one instance of a backup - but because we'll have 12 months of backups at a time, we're looking at $1.15 x 12, or roughly $14 per year in costs for maintain the backups.

@davidclaveau - I support your approach. Cost for backup plan is negligible and much worth it.


Actuator API & SensorInput of MLMaemon

Summary
Implemented Actuator API ( set() ) in Sensor Framework and SensorInput in MLDaemon
Major Changes

New API in Sensor Framework - Set()
Add new actuator drivers
Implement the interface part of SensorInput

Minor Changes

Add new test code for sensor-api part
Change the directory name of sensor drivers to device drivers
Divide the sensor-driver directory into actuator-drivers & sensor-drivers
Implement actuator-drivers for each target platform (raspberry pi, tegra tx1, virtual)

Details
I newly implement Set() API in Sensor Framework.
In addition, I implement actuator drivers for each target platform for device driver compatibility.
I change the directory name of sensor-drivers into device-drivers to embrace the actuator drivers.
I leave the environmental variable 'ANT_SENSOR_DRIVER_DIR' for the compatibility.
There are two shared object files and json files: libsensors.so, libactuators.so | sensor_config.json, actuator_config.json
Test Result
I tested with the LED on raspberry pi with Set() Javascript API, and it works well.
You can see the test code in api/sensor/samples/test_set.js

@sinban04
I want more information about your actuator API.
If I use the actuator API, what should I do?


Feedback on Tutorial: SAP HANA cloud connector setup for secure on-premise connectivity

Hello,
It is a nice tutorial. I am following it to connect Cloud connector when i am in Corporate Network.
Could you please let me know how should i find the host, port, username and password ?
I have been to Internet Option of IE and there we have Automatic Configuration script.
Thanks,
Abhishek

Hi Abhishek,
Are you asking about internal host and internal port? if yes, then as mentioned in this link- https://help.hana.ondemand.com/help/frameset.htm?e7d4927dbb571014af7ef6ebd6cc3511.html - Step 5, this host and port specify the actual host and port under which the target system can be reached within the intranet. So you need to ask your IT about this information for your on-premise system.
I did not understand which username and password you are asking about. Please clarify a bit more.
Regards,
Sonali

Hello Sonali,
Thanks for your reply.
I was asking for proxy needed for initial configuration. I got the proxy
but still the connection is not successfull. What setting i am missing i
do not understand now.
Initial connfiguration as defined under "Set up connection parameter and
HTTPS Proxy"
https://help.hana.ondemand.com/help/frameset.htm?db9170a7d97610148537d5a84bf79ba2.html
Thanks and Regards,
Abhishek
On Mon, Aug 29, 2016 at 9:53 PM, sonaliddesai<EMAIL_ADDRESS>wrote:

Hi Abhishek,
Are you asking about internal host and internal port? if yes, then as
mentioned in this link- https://help.hana.ondemand.com/help/frameset.htm?
e7d4927dbb571014af7ef6ebd6cc3511.html - Step 5, this host and port
specify the actual host and port under which the target system can be
reached within the intranet. So you need to ask your IT about this
information for your on-premise system.
I did not understand which username and password you are asking about.
Please clarify a bit more.
Regards,
Sonali
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/SAPDocuments/Tutorials/issues/594#issuecomment-243174715,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATvit1S_xz-_-RuHpssc49SaSK7ZYPN0ks5qkwd_gaJpZM4JtFxf
.

--
ThanksAbhishek Sinha


Loosing progress on renaming file

Hello everyone.
Microsoft has a lot of text editor on their different products and I have come to a way of working (which might not be the best of all in some cases) and it seems like using Visual Studio Code in a manner allows the costumer, like myself, to be loosing its file progress when renaming a file.
This happened after I wanted to rename a java class, for example, “myclass.java” to “MyClass.java”.
Since the change lookup is case insensitive, they both are of equal names which will result in no name change, so you will have to rename the file to a temporary name in order to make your change.
Now the following process will come in to the bug to be fixed.

Create a new file name “myclass.java”.
Enter the following code into that file (replace the content if necessary):

public class myclass
{
    public myclass()
    {

    }
}

Now save the file.
Now add this method to the class:

...
    public void myMethod()
    {
        // My work in progress...
    }

Now without saving this time. Rename the file using the right-click in the object-browser pane of the VSCode to “temporaryname.java”. You will see the file has the same content but with the new name.
Now rename the file again like before to “MyClass.java”. Now, it will be taking the last saved file named “myclass.java” and take its content instead of taking the current file content. Therefore loosing all work in progress. In this case, the class myclass will no longer have the method myMethod(), and there will be an error from the intellisense since the class myclass does not equal MyClass.

Now I know that saving will fix all of this. BUT, Microsoft, as a reliable source for text editing, at least I would have liked a minimum of a prompt of “Are you sure you want to rename the file to ? The work in progress might be loss.”
This is very common for I to do this in other Microsoft text editing products and this seems to be a bug to be fixed. Allowing the costumer to loose its progress without warning is a bug to me.
All thanks.

Not sure if this is an explorer issue or a file system issue cc @bpasero .
Just assigned to me for now because the bot did

This is an excellent bug report and no, this should not happen, sorry for that. Will have a look!

This bug has been fixed in the latest release of VS Code Insiders!
@Xanadu333, you can help us out by commenting /verified if things are now working as expected.
If things still don't seem right, please ensure you're on version 03dd3c3b93322b41fe108a3448308595ee7077a4 of Insiders (today's or later - you can use Help: About in the command palette to check), and leave a comment letting us know what isn't working as expected.
Happy Coding!


ESP32 WROVER init failure while GPIOs 9 & 10 are used

Development Kit: [ESP32-Wrover-Kit]
Kit version (for WroverKit): [v1]
Core (if using chip or module): [ESP32-Wrover]
IDF version (221eced.):
Development Env: [Eclipse]
Operating System: [Ubuntu]
Power Supply: [USB]

I got error cpu_start: Failed to init external RAM! error and I use GPIO 9 & 10 as UART interface and when I don't use these GPIOs the error doesn't appear. So, Is there any workaround for it?

@projectgus  Please help as you asked about using this GPIOs here


fixed table alignment

OPS Build status updates of commit 34e0cc6:
:clock10: Preparing: average preparing time is 50 sec(s)

OPS Build status updates of commit 34e0cc6:
:clock10: Incremental building: average incremental building time is 25 sec(s)

OPS Build status updates of commit 34e0cc6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/interaction-fundamentals.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit 2ee1783:
:clock10: Preparing: average preparing time is 50 sec(s)

OPS Build status updates of commit 2ee1783:
:clock10: Incremental building: average incremental building time is 25 sec(s)

OPS Build status updates of commit 2ee1783:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/interaction-fundamentals.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


feat(drag-drop): add support for sorting animations

Reworks the drag&drop to use transform to swap the positions of items in a sortable list. This allows for items to be animated as they're being sorted.
Live demo: https://material-cb7ec.firebaseapp.com/drag-drop

I've addressed the feedback @jelbourn.