which: no cl in... help needed

I followed exactly step-by-step what has been told in https://trac.ffmpeg.org/wiki/CompilationGuide/WinRT .. everything is happy till the instructions on the page told me to verify my FFmpeg Environment Setup by running the following commands:
$ which cl
/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_ARM/cl

$ which link
/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_ARM/link

$ which armasm
/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_ARM/armasm

$ which yasm
/usr/bin/yasm

$ which cpp
/usr/bin/cpp

$ which gas-preprocessor.pl
/usr/bin/gas-preprocessor.pl

unfortunately, this is what I got

one more thing that has changed in the msys64 installation folder, there's no "msys2_shell.bat", what's there instead "msys2_shell.cmd"..

I did some quick search on google and found that there's almost no practical difference between .bat and .cmd file, thus I assumed that this is not a real problem.. I'm so sorry if this happens to be way too noob to ask.. all I care about right now is just I want to see my FFmpegInterop.vcxproj build with no error..
to all geniuses out there, if you were to answer this please make your explanation as simple as possible so that a total noob like me can follow along without flowing their tears..
Regards.

Did yot start the msys2_shell.cmd from the Visual studio command prompt? If you start the msys2_shell.cmd directly by simply double click it you will get this error. You have to first start  the "VS2015 x86 ARM Cross Tools Command Prompt" and run the .cmd file from there. The fact that it is a cmd file and not a bat file does not matter.
I also have to run the "VS2015 x86 ARM Cross Tools Command Prompt" as an administrator in order for it to work.

I do start the msys2_shell.cmd  from the Visual studio command prompt and tried  to run the "VS2015 x86 ARM Cross Tools Command Prompt" as an administrator, but I still get those errors:

I notice the capitalization is a different between what's shown the instructions and what's on my machine running Visual Studio 2015 with update 3.. this is what I mean
what's on instructions page:

what's on my machine:

I'm not sure if this "case sensitive stuff" is really the issue here..
come someone out there remake the compilation guide with the latest and updated tools and information.. I'm really stuck here.. or is there any other alternative I can choose to make us of ffmpeg for UWP?

Hi @Hanzalah-Adalan
We've included a script to help get FFmpeg built, you can find it at the root folder of FFmpegInterop: buildFFmpeg.bat, this will setup your environment appropriately and allow you to choose which platform and architecture to build. I just tried it a few days ago on a clean machine with VS 2015 Update 3.
Also, we've recently updated the build instructions for the environment changes that MSys makes when you update it and doesn't inherit the environment from the invoking shell by default. You need to set the following environment variable to get the inheritance to work:
set MSYS2_PATH_TYPE=inherit
Perhaps we didn't make it clear enough in the instruction:
Download the latest MSYS2 installer from http://msys2.github.io/ and follow the installation instruction closely from the installation webpage. In order for the environment from the Windows side to be inherited on the MSYS2 side, uncomment the following line from msys2_shell.bat if it is present: replace rem set MSYS2_PATH_TYPE=inherit with set MSYS2_PATH_TYPE=inherit this will allow the environment variables for Visual Studio to be transferred to the MSYS2 environment and back.
Please try and tell us how it goes.
Thanks

I've already uncommented rem set MSYS2_PATH_TYPE=inherit by removing the REM keyword using VS editor

but I still get those errors.. One thing that disturbs me right now is that the msys2 shell is suppossed to close and re-open once I run this command C:\msys64\msys2_shell.cmd in  Visual Studio ARM Cross Tools Command Prompt ..but in my case that command open a new instance of the msys2 shell instead

I guess this is where I made mistake and I don't know how to make it right..

That's interesting, the path seems to indicate that the environment is still not inherited. Can you try to set the environment variable in the developer prompt before invoking the msys_shell?
Can you try to remove the echo off and see the output of the commands that get executed when you start the msys shell? Opening in a new windows is not a problem.
Sorry to ask again, but have you tried our BuildFFMpeg.bat script? It should do everything that you need automatically.

I tried to invoke the BuildFFMpeg.bat by double-clicking it, it executes in the blink of an eye.. I don't know what was going.. what did the batch file do exactly.. I'm not sure whether it worked or crashed.. lol.. Sorry I'm not used to batch programming at all..

after I removed the @echo off in the beginning of the msys2_shell.cmd file, it outputs the following lines in Visual Studio ARM Cross Tools Command Prompt:
C:\WINDOWS\system32>C:\msys64\msys2_shell.cmd

C:\WINDOWS\system32>setlocal

C:\WINDOWS\system32>set "WD=C:\WINDOWS\system32\"

C:\WINDOWS\system32>if NOT EXIST "C:\WINDOWS\system32\msys-2.0.dll" set "WD=C:\msys64\usr\bin\"

C:\WINDOWS\system32>rem To activate windows native symlinks uncomment next line

C:\WINDOWS\system32>rem set MSYS=winsymlinks:nativestrict

C:\WINDOWS\system32>rem Set debugging program for errors

C:\WINDOWS\system32>rem set MSYS=error_start:C:\msys64\usr\bin\../../mingw64/bin/qtcreator.exe^|-debug^|^<process-id^>

C:\WINDOWS\system32>rem To export full current PATH from environment into MSYS2 use '-use-full-path' parameter

C:\WINDOWS\system32>rem or uncomment next line

C:\WINDOWS\system32>set msys2_path_type=inherit

C:\WINDOWS\system32>rem Help option

C:\WINDOWS\system32>if "x" == "x-help" (
call :printhelp "msys2_shell.cmd"
 exit /b 0
)

C:\WINDOWS\system32>if "x" == "x--help" (
call :printhelp "msys2_shell.cmd"
 exit /b 0
)

C:\WINDOWS\system32>if "x" == "x-?" (
call :printhelp "msys2_shell.cmd"
 exit /b 0
)

C:\WINDOWS\system32>if "x" == "x/?" (
call :printhelp "msys2_shell.cmd"
 exit /b 0
)

C:\WINDOWS\system32>rem Shell types

C:\WINDOWS\system32>if "x" == "x-msys" shift & set MSYSTEM=MSYS  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-msys2" shift & set MSYSTEM=MSYS  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-mingw32" shift & set MSYSTEM=MINGW32  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-mingw64" shift & set MSYSTEM=MINGW64  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-mingw" shift & (if exist "C:\msys64\usr\bin\..\..\mingw64" (set MSYSTEM=MINGW64 )  else (set MSYSTEM=MINGW32 ) )  & goto :checkparams

C:\WINDOWS\system32>rem Console types

C:\WINDOWS\system32>if "x" == "x-consolez" shift & set MSYSCON=console.exe  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-mintty" shift & set MSYSCON=mintty.exe  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-conemu" shift & set MSYSCON=conemu  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-defterm" shift & set MSYSCON=defterm  & goto :checkparams

C:\WINDOWS\system32>rem Other parameters

C:\WINDOWS\system32>if "x" == "x-full-path" shift & set MSYS2_PATH_TYPE=inherit  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-use-full-path" shift & set MSYS2_PATH_TYPE=inherit  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-here" shift & set CHERE_INVOKING=enabled_from_arguments  & goto :checkparams

C:\WINDOWS\system32>if "x" == "x-where" (
if "x" == "x" (
echo Working directory is not specified for -where parameter.  1>&2
 exit /b 2
)
 cd /d ""   || (
echo Cannot set specified working diretory "".  1>&2
 exit /b 2
)
 set CHERE_INVOKING=enabled_from_arguments
)  & shift & shift & goto :checkparams

C:\WINDOWS\system32>rem Setup proper title

C:\WINDOWS\system32>if "" == "MINGW32" (set "CONTITLE=MinGW x32" )  else if "" == "MINGW64" (set "CONTITLE=MinGW x64" )  else (set "CONTITLE=MSYS2 MSYS" )

C:\WINDOWS\system32>if "x" == "xmintty.exe" goto startmintty

C:\WINDOWS\system32>if "x" == "xconsole.exe" goto startconsolez

C:\WINDOWS\system32>if "x" == "xconemu" goto startconemu

C:\WINDOWS\system32>if "x" == "xdefterm" goto startsh

C:\WINDOWS\system32>if NOT EXIST "C:\msys64\usr\bin\mintty.exe" goto startsh

C:\WINDOWS\system32>set MSYSCON=mintty.exe

C:\WINDOWS\system32>start "MSYS2 MSYS" "C:\msys64\usr\bin\mintty" -i /msys2.ico /usr/bin/bash --login

C:\WINDOWS\system32>exit /b 0

C:\WINDOWS\system32>

this is just not my day I guess because I only know VB and C#.... scripting in batch/cmd and C++ is relatively new to me.. thank you su much anyway @khouzam  for answering

Hi @Hanzalah-Adalan,
In order to run the build script so that it doesn't close, you can simply run it from a developer command prompt (or even a regular command prompt). It will fail the first time, asking your to specify the location of MSYS2. If you installed it in the default location, then simply copying the set MSYS2_BIN="C:\msys64\usr\bin\bash.exe" command and re-running the batch file should just work. If it fails, then we can look at the config.log to try to understand what's wrong.

@Hanzalah-Adalan https://blogs.msdn.microsoft.com/vcblog/2013/04/19/finding-the-visual-studio-command-prompts-in-visual-studio-2012/
I had the same issue and this solved it!


reset counter of vv-id for consecutive snapshot tests

Versions:

VueJs: #.#.#
Vee-Validate: 2.0.6

Description:
vee-validate generates a ID for each field that it's applied to when they're rendered. This means that if you're using Jest snapshots, or any other test framework that supports snapshots, they will include this id. When you run 2 consecutive tests on a component that has a input field the first snapshot test will save data-vv-id=1 and the second test will save data-vv-id=2.
If we want to run the second test individual the snapshot will contain vv-id=1.
I found an old related issue https://github.com/baianat/vee-validate/issues/1000
But at the moment vee-validate doesn't use Math.random anymore so i can't overrule the generation of a unique id.
Is there a way i can reset the vv-id count
(reset the id and idTemplate variables of src/core/utils/index.js)
Steps To Reproduce:

store 2 snapshots with 2 consecutive tests
run the second test individually

Providing a way to reset the id generation may easily introduce a way to break the plugin for no good reason (testing excluded).
Each test could use a separate installation of VeeValidate instead which I think would fix your issue.
I have been toying around with using an internal ID instead of an id attribute, which would prevent changing the input attrs so it would pass your test.

Reinstalling the VeeValidate plugin doesn't work. The id  and idTemplate variable are set at import of the module.


fix to build in ROS2 eloquent

Resolves #1 , and allows package to be built in ROS2 Eloquent. Related to facontidavide/PlotJuggler#304, facontidavide/PlotJuggler#306

fixed


fix(docs) fix typos

Fix some typos and suggest small changes.

Good stuff! Thanks! Merged with docs(*) prefix


Just a little annoyance on default hotkey multicursor

finally a great terminal editor with flawlessly working multicursor out of the box.

Puts the default hotkey on two hand, or acrobatic pinky hotkey  alt+n

ctrl+d used by sublime, VSCode or Atom might be problematic for some I guess, as it logs out of terminal, but inside the editor it works nicely... and considering how nicely micro is keeping with ctrl+z and ctrl+s and ctrl+c and ctrl+v,..  to which old school might also rebel..
well I keep changing it obviously in my config, it would just  be nicer if it was just there

Yeah I get that this is annoying. Early on, Ctrl-d was bound to "duplicate line" before multiple cursors existed in the editor. I've tried to avoid changing default bindings, but maybe this is a case where the change is warranted.

I use ctrl+d as duplicate line for years, so I like the way alt+n is right now, So please if changing add an option for it to be opt-in.

How and where exactly would he add some such option? It does not work like that I fear.
Either people coming from sublime text, atom, VScode will be forced to change settings, or people who got used to double the line with it.

@DoTheEvo on the settings.json file it can be included a feature flag? or maybe just the matter of changing the Keybind (is not that already possible right now?)

micro has been added to the official repository on arch.
Thought it is good opportunity to remind that it might be good idea to rip off the band aid before it takes off even more with bigger number of users, and be more in line with what is contemporary standard.
Again, VSCode, Atom, Sublime all share same hotkey - ctrl+d for multicursor.
That is a huge chunk of the text editor market,
millions of people worldwide and it is of course expected to grow.
It would be so nice to just have this editor it in distros and be usable in large regard without need to bring it to standard with what is common with some customization.
thnx.
Just imagine that in ~10 years when it will be as wide spread as nano, and be in every distro.. that moments like these decisions were what made it. Regard to millions, not to few existing users.

In 2022 I would like to again ask for switch default hotkey to be more compatible with major other editors.
particularly the huge rise in VScode is what makes more people feel at home in micro, rather than notepad++ userbase that is used to doubling.


Fix menu drawer in landscape mode issue

This fixes #538 .

cc @vitorpamplona

Nice! thank you @KotlinGeekDev

Thank you for fixing the bug @KotlinGeekDev, I tested in the last release and it works like a charm !

Nice! thank you @KotlinGeekDev

:pray:

Thank you for fixing the bug @KotlinGeekDev, I tested in the last release and it works like a charm !

Thanks for the feedback! :pray:


update to work with react-native >0.26

Support for breaking change: React API must be now required from react package (previously a warning on 0.25)

Can you push this to NPM please?

@tannerkrewson thanks for the nudge, updated (1.2.0)


Cornerstone Angle Tool: displayed measurements are wrong

Prerequisites

[The latest ] Which version are you using? (Is it latest?)
[Yes ] Are you reporting to the correct repository?
[ Yes] Did you search existing issues? (Were any related?)

Description

The Angle measurement tool seems to show wrong measurement in the latest version of the software.
Steps to Reproduce the issue
When one starts drawing the first line, the tool displays 60 degree angle, even though there are no angles to measure yet.
When the second line is added, the measurement is not correct. The displayed value does not seem to have any relevance to the angle at all.  The displayed measurement also changes if the lines just change their length, too, which is weird.
The same angle when measured with the Cobb Angle is correct.
It can be seen in the current Examples
Expected behavior: (What you expected to happen)
I expect the Angle Tool to display the correct measurement info. I expect the angle measurement not to depend on the lengths of the angle sides.
Actual behavior: (What actually happened)
CodeSandbox With Reproduction of Issue:
https://tools.cornerstonejs.org/examples/tools/angle.html

After inspecting the source code. There is a difference in how the angles are calculated.
The latest (Version 4.15.2 - 2020-05-29):
key: "updateCachedStats",
value: function updateCachedStats(image, element, data) {
var sideA = getSide(image, data.handles.middle, data.handles.start);
var sideB = getSide(image, data.handles.end, data.handles.middle);
var sideC = getSide(image, data.handles.end, data.handles.middle);
var sideALength = length(sideA);
var sideBLength = length(sideB);
var sideCLength = length(sideC); // Cosine law
  var angle = Math.acos((Math.pow(sideALength, 2) + Math.pow(sideBLength, 2) - Math.pow(sideCLength, 2)) / (2 * sideALength * sideBLength));
  angle *= 180 / Math.PI;
  data.rAngle = Object(_util_roundToDecimal_js__WEBPACK_IMPORTED_MODULE_16__["default"])(angle, 2);
  data.invalidated = false;

The correctly working code.
Version (4.0.1  2020-05-28):
key: "updateCachedStats",
value: function updateCachedStats(image, element, data) {
var getPixelSpacing = Object(util_getPixelSpacing__WEBPACK_IMPORTED_MODULE_20["default"])(image),
rowPixelSpacing = _getPixelSpacing.rowPixelSpacing,
colPixelSpacing = _getPixelSpacing.colPixelSpacing;
  var sideA = {
    x: (data.handles.middle.x - data.handles.start.x) * colPixelSpacing,
    y: (data.handles.middle.y - data.handles.start.y) * rowPixelSpacing
  };
  var sideB = {
    x: (data.handles.end.x - data.handles.middle.x) * colPixelSpacing,
    y: (data.handles.end.y - data.handles.middle.y) * rowPixelSpacing
  };
  var sideC = {
    x: (data.handles.end.x - data.handles.start.x) * colPixelSpacing,
    y: (data.handles.end.y - data.handles.start.y) * rowPixelSpacing
  };
  var sideALength = length(sideA);
  var sideBLength = length(sideB);
  var sideCLength = length(sideC); // Cosine law

  var angle = Math.acos((Math.pow(sideALength, 2) + Math.pow(sideBLength, 2) - Math.pow(sideCLength, 2)) / (2 * sideALength * sideBLength));
  angle *= 180 / Math.PI;
  data.rAngle = Object(_util_roundToDecimal_js__WEBPACK_IMPORTED_MODULE_16__["default"])(angle, 2);
  data.invalidated = false;

The error seems to be just a copy paste.
Instead of :
const sideC = getSide(image, data.handles.end, data.handles.middle);
it must be
const sideC = getSide(image, data.handles.end, data.handles.start);
Please fix and update. Cheers


Patch progress lost

I backed up my complete project, made a script upgrade due to an old api version of an imported asset (which broke my project so i restored it from my backup), opened it and now my PATCH Admin window shows me, that i need to create an inital build.
I have my old (broken) project folder still on my harddrive. where are "settings" for patch located, so i can restore them?

They are located next to the Assets folder, in a directory named PATCHWorkspace. You can copy the whole folder without issues.


Give a complete translation without React component example

defineMessages is missing in the example.

Should we not also include inline examples, because now we are only showing an example with messages?

actually that's the point of this change if you use inline message, npm run translate can not extract messages so it's better to not document that.


result on waymo dataset

Thanks for your contribution!
Waymo dataset is quite large and more diverse. Why didn't you use a look-around camera for detection on the Waymo？

Hi Walter!
We didn't do the full 360 degree camera rig on Waymo due to GPU memory constraints on processing multiple images simultaneously. This would require us to reduce our model capacity, greatly impacting results.

Can you publish the model config of waymo dataset?

Hi Walter,
I don't have a config for the Waymo dataset for the updated version released here. The config should be the similar to the KITTI config, but point cloud range should be changed to POINT_CLOUD_RANGE: [2, -25.6, -4.0, 55.76, 25.6, 4.0]. Additionally, the Waymo images were down-sampled to meet memory constraints.
Hope this help!

Hi @codyreading,
do you intend to release the config file for the Waymo dataset?
Thank you very much!

Hi and thanks for the interest!
Yes, I plan to release the config, however this also requires adding support for Image Data Loading from the Waymo Dataset.

Hi @codyreading,
thank you very much for your response, I am looking forward to the release. Have you got any idea of when it might be?
Regarding the support of data loading: don't you already have this in pcdet/datasets/waymo/waymo_dataset.py? If not, would you please release this loader along with the configs?
Thanks!

Hello!
The functionality in pcdet/datasets/waymo/waymo_dataset.py doesn't currently support images, only LiDAR point clouds. The code that I used for the Waymo dataset experiments in the paper is outdated, so this would not be able to be used here.
In terms of timeline, I'm not sure as this is a lower priority item for me at the moment. If you need this urgently I would recommend implementing this yourself.

Hi @codyreading
I hope to use the look-around camera data of the waymo dataset. But the picture frame of camera on the side is different with the other. How do you deal with these differences?

Hi @walterchenchn,
Again, we didn't use the other camera and only used the front camera for our experiments. If you would like to use multiple cameras, you could try using one network for all the cameras, but you might have to have separate networks for each camera.

thanks!

Hello!
The functionality in pcdet/datasets/waymo/waymo_dataset.py doesn't currently support images, only LiDAR point clouds. The code that I used for the Waymo dataset experiments in the paper is outdated, so this would not be able to be used here.
In terms of timeline, I'm not sure as this is a lower priority item for me at the moment. If you need this urgently I would recommend implementing this yourself.

Hi @codyreading, thank you for your reply. Do you think that you could please share with me at least the outdated version of the dataloader? I might be able to convert it to a usable version.
Thanks!

The outdated version of the data loader is essentially the KITTI data loader, as I converted the Waymo Dataset to a KITTI format for use in my network. If you plan to start there, I would recommend using the current KITTI dataloader.


Can we dynamically swap PLY files

Hi,
viewer.addSplatScenes([
{
'path': plyPath1
},
{
'path': plyPath2
}]);
I use this command to add ply1 and ply2. After that, both ply1 and ply2 will be loaded into CPU and GPU memory to render.
I want to achieve the functionality where I can continue rendering ply1 while releasing the memory occupied by ply2 and loading ply3. How can I accomplish this?
Thanks~

Once both ply1 and ply2 have been loaded, you can call Viewer.removeSplatScene(<sceneIndex>) to remove a splat scene. Once that call completes, you can then load ply3. Something like:
viewer.addSplatScenes([{
  'path': plyPath1
},{
  'path': plyPath2
}])
.then(() => {
  viewer.removeSplatScene(sceneIndex)
  .then(() => {
     viewer.addSplatScene(ply3Path, ply3Options);
  });
})

Hi, mkkellogg,
It works for me, thanks~


Bringup on sunrise pi seems to fail after launching for few hours

Checklist

[X] I've read the contribution guidelines.
[X] I've searched other issues and no duplicate issues were found.
[X] I'm convinced that this is not my fault but a bug.

Description
/odometry/filtered starts to lag
suddenly cannot connect to lidar
requires reboot
Expected behavior
shouldnt have any issues
Actual behavior
/odometry/filtered starts to lag
suddenly cannot connect to lidar
requires reboot
Steps to reproduce
launch bringup on sunrise pi for few hours
Versions
No response
Possible causes
No response
Additional context
No response

stopped using sunrise pi for now


warcli cluster refactors

Move scripts from python files into dedicated scripts (callable from both justfile and cli)
Refactor warcli cluster commands:

write a small config saving cluster_type and any minikube settings with warcli cluster configure
warcli cluster deploy now runs the same script as the justfile, deploying on whatever the connected cluster is

update docs

The k8s python lib we use might have a create_from_yaml() method which might replace the need for using python to execute kubectl apply in sub-processes. I say "might" because I'm having trouble finding documentation and haven't tried the method myself yet.
I would love to reduce the mix of shell and python as much as possible, ideally all the justfile commands can just be executed by warcli.

warcli cluster rocks.
minikube is wanting to use qemu seemingly b/c I use rootless docker. I can suggest a patch based on this: https://github.com/bitcoin-dev-project/warnet/pull/420/files#diff-deb9bb56fb122db0b605aa5b63f95a4665c905b18dd670e1fa6c877576a94ff1R22

minikube is wanting to use qemu seemingly b/c I use rootless docker. I can suggest a patch based on this: #420 (files)

Added a commit with this fix, seems to work just the same for me but I hope fixes for you.

I am also getting an ErrImageNeverPull error in kubectl after doing a cluster deploy.

Hmm, I don't know how you might be getting this. I guess it comes from statefulset-dev.yaml (where we spec to Never pull, as built image should be loaded in local cache). Are you able to provide repro steps/or configuration being used?

I really like this. I think it could be improved with some slight changes to make it clear what's for prod and what's for local.
How about:
warcli cluster setup-minikube
warcli cluster deploy --dev --hot-reload (without --dev for production)
Without dev flag, just install the production image same tag as the source code
With dev flag, run kubectl config current-context to see if it's minikube or docker-desktop (or something else) to see how to do the file mounts.

OK @m3dwards @pinheadmz, I think this should be a fair bit closer to what you were imagining.
I did not add any --hot (reload) flags, as I think this can be done later. It look quite invasive to do, as we need to propagate the flag all the way into the dockerfile env... https://github.com/bitcoin-dev-project/warnet/blob/bf9eff11b2f5def4f8c727bc223901bab43435a4/resources/images/rpc/Dockerfile_dev#L29
I am sure it can be done, but not sure I have the stomach for it here 😋

@mplsgrant I kept the check for $WAR_RPC you removed in 8f49bd0779954eb76450c05e4aa949299d19f81e "remove unused rpc checks".
I am not actually sure why it seemed to work for me without it, but it should be needed to build the image: https://github.com/bitcoin-dev-project/warnet/pull/419/files#diff-444b1723cb5f02d3a7b6b4616e5e72f841e957f1c0973cc87fa4cb5cc06fdfb2R100

$WAR_RPC is set in cluster.py and sent into the bash script as an env variable.

Tested both docker desktop and minikube and all appeared to work.


Can it be a metric for image to image Local inpainting

Sure.

Sure.
How to do it? Isn’t there no prompt for the image-to-image task?hope to reply,thanks

You can compare full images. For example, there are 5 images (different left hands) and scores are listed below:

HPSv2: 26.32

HPSv2: 26.25

HPSv2: 26.44

HPSv2: 26.32

HPSv2: 26.42
The score somehow reflects the difference in visual quality.

The prompt is "A young adult Japanese delinquent with a pompadour hairstyle named Jotaro Kujo stands in an action pose ready for a fight on the cover of a manga issue.", in case you want to reproduce it.

import hpsv2
result = hpsv2.score(["1.png", "2.png", "3.png", "4.png", "5.png"], "A young adult Japanese delinquent with a pompadour hairstyle named Jotaro Kujo stands in an action pose ready for a fight on the cover of a manga issue.")
result
[0.2632, 0.2625, 0.2644, 0.2632, 0.2642]

>>> import hpsv2
>>> result = hpsv2.score(["1.png", "2.png", "3.png", "4.png", "5.png"], "A young adult Japanese delinquent with a pompadour hairstyle named Jotaro Kujo stands in an action pose ready for a fight on the cover of a manga issue.")
>>> result
[0.2632, 0.2625, 0.2644, 0.2632, 0.2642]

hello,how can set the model path locally,i met the error,
huggingface_hub.utils._errors.LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.


Stevenic/cherry pick cancellation fix

Changes to fix cancellation issue

Pull Request Test Coverage Report for Build 88788

0 of 0   changed or added relevant lines in 0 files are covered.
20 unchanged lines in 6 files lost coverage.
Overall coverage increased (+1.06%) to 77.552%

Files with Coverage Reduction
New Missed Lines
%

/libraries/Microsoft.Bot.Builder/Adapters/TestFlow.cs
1
77.17%

/libraries/Microsoft.Bot.Builder.Dialogs/Prompts/OAuthPrompt.cs
1
54.8%

/libraries/Microsoft.Bot.Builder.Azure/CosmosDbStorageOptions.cs
2
50.0%

/libraries/Microsoft.Bot.Builder.Dialogs/ObjectPath.cs
2
80.15%

/libraries/Microsoft.Bot.Builder/MemoryTranscriptStore.cs
2
86.09%

/libraries/Microsoft.Bot.Builder.Dialogs/ComponentDialog.cs
12
77.27%

Totals

Change from base Build 88747:
1.06%

Covered Lines:
5766

Relevant Lines:
7435

💛  - Coveralls

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.5.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.5.3


Fix rejectOnEmpty type.

Fixes #214

Codecov Report

Merging #215 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #215   +/-   ##
=======================================
  Coverage   96.71%   96.71%
=======================================
  Files         115      115
  Lines        1004     1004
  Branches      129      129
=======================================
  Hits          971      971
  Misses         15       15
  Partials       18       18

Continue to review full report at Codecov.

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

Thank you :)


fix: moved file content from jarvis-proto

Checklist

[x] make test passes
[x] tests and/or benchmarks are included
[x] documentation is changed or added
[x] commit message follows commit guidelines

Affected core subsystem(s)

Description of change

Plus change the commit to better explaining, what you are doing. Maybe chore: update proto generated files. This is not fix in my opinion


Improve Docstrings

PR summary

Improve docstrings here and there.

PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] ~Tests for the changes have been added (for bug fixes / features)~ N/A
[x] Docs have been added / updated (for bug fixes / features)

Current vs new behavior

N/A
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Opening as a draft as I'm still working on a feature that uses this package. I'll mark as ready for review in the next few days. Opening now as to touch base on whether such minor updates are welcome.

Question for the team:
Is this the one-and-only copy of the repository, or is it just a mirror of the internal github.ibm.com?

Hi @amrwc, the internal sdk project on github.ibm.com is no longer being maintained.  Instead, we've published this public (open source) version of the SDK on github.com.
Per the README:

Also, I took a quick look at your changes so far, and it turns out that we really shouldn't be modifying these doc strings in the generated SDK code because these files will be completely over-written when the service is re-generated.  The proper remedy would be to update the API definition instead.   In the case of the IAM Identity service, that is located here.  Then once the API definition has been fixed, we'd just re-generate the SDK code for each of the four languages (Go, Java, Node, and Python).


Fix AppMenu's FXA Avatar margin

Hi everyone,
I edited popup.css to fix the alignment issue of the appmenu's Firefox Account avatar.

Before
After ✔

Tested on Windows 10 and Kubuntu 19.04.

This causes some alignment issues with the button highlight for me (testing FF70):

I'll mess around with it a bit later and see if I can sort out a solution. That rounded right edge needs to go as well. Not even sure why that's there; I think a relic of the pre-68 era...

I simplified the whole thing by styling the .toolbarbutton-icon inside #appMenu-fxa-label in such a way that it uses the avatar image, thus removing the need for #appMenu-fxa-avatar and the hacky margins required to align it inside the button.
Thanks for you input on this. I'll close the PR now that we've sorted it out.


Causing issues for Node on Mac please fix

I am trying to use this with my MacBook but it doesn’t seem like the binaries were built for Mac. Please build and upload the Mac binaries so we can use this as well

Closing this as a duplicate. See https://github.com/CorsairOfficial/cue-sdk-node/issues/7


[5.9] Add i18n string from TopicsLinkCardGridItem

Explanation: It adds i18n string from TopicsLinkCardGridItem
Scope: TopicsLinkCardGridItem component
Issue: rdar://108050564
Risk: Low
Testing: Added unit test and verified manually
Reviewer: @dobromir-hristov
Original PR: https://github.com/apple/swift-docc-render/pull/621

@swift-ci test


Define copyright rules for the CoMPAS project

How do we want to define the copyright statements?
https://spdx.dev/ids/
"Copyright CoMPAS community"?

https://spdx.dev/spdx-specification-21-web-version/#h.2grqrue

Fixed!


Faster escore

Pull Request Checklist:

[ ] This PR addresses an already opened issue (for bug fixes / features)

This PR fixes #xyz

[ ] Tests for the changes have been added (for bug fixes / features)

[ ] (If applicable) Documentation has been added / updated (for bug fixes / features)

[x] CHANGES.rst has been updated (with summary of main changes)

[x] Link to issue (:issue:number) and pull request (:pull:number) has been added

What kind of change does this PR introduce?

correlation functions in _escore now have an additional loop that basically replaces the numpy operation: v1[:] - v2[:]. This makes the function run much faster (~ 30 times faster)

Does this PR introduce a breaking change?
No
Other information:
There are some instances where nopython has a harder time for some numpy functions: https://stackoverflow.com/questions/42846313/numba-nopython-mode-slower-than-object-mode, this could be related.

coverage: 90.549% (-0.06%) from 90.604% when pulling 126897e15980bc4d8c6b96edb210228967768fba on faster_escore into e7664ee72ee12336fb8d5fd518025e19bd4e88d8 on master.


Preview text file argument?

It would be nice to have a block of code loaded, but it's a bit difficult to make that into a commandline argument. How about a flag to specify a file to read the preview text string from?

-t "$(cat my.file)" is difficult?

-t "$(cat my.file)" is difficult?

That should be enough. @mxmilkiib would that work for you?

Very fair point, thanks :)


Playground site is not running (fix recurrent crash)

More of a general issue than anything code-related, but the dream.as site does not appear to have a web server running (or accessible) currently. A check via shodan.io shows only port 22 (SSH).

I've since manually restarted the server several times. There is some bug that causes it to crash every now and then, which needs to be fixed. I am turning this issue into a reminder about that, as I would also like to stop checking it manually so often.

@aantron do you need any help with this? How deep is this bug? Is this playground open-sourced? Even with bug existing, we can solve manual restarting problem with typical devops practices :)

I could definitely use help with this due to time constraints! I realize your question was in August, but replying for the sake of clarity :)
The playground is open source here. It's running in a DO droplet. I could either give access to that droplet, or it could be run in another droplet. I doubt the bug is deep, but I just don't have time to track it down. I think I would prefer to find the bug rather than apply devops practices without debugging first, though, no doubt, devops improvements are needed regardless of any bugs :)

This appears to be an instancee of #230, so caused by an upstream problem in websocket/af. I don't want to debug it too much immediately, because the Eio version of websocket/af might not have this problem, and we are likely to port to it soon. The devops way might be the better way in the meantime.

In fact, it appears there is a new infinite loop in recent websocket/af, analogous to #230, but now in Websocketaf.Wsd.close. Still looking into it.

I've decided to take the playground down for now and not try to maintain it. It seems to be crippled by an upstream issue, but I'll be looking into potentially replacing the upstream Web stack anyway in the near future, so the specific current issue may not be worth fully diagnosing or fixing. I'll look into getting the playground running again after deciding on the Web stack.

Thanks Anton, understood.
Cheers,
Tim
Anton Bachin @.***> writes:

I've decided to take the playground down for now and not try to
maintain it. It seems to be crippled by an upstream issue, but I'll
be looking into potentially replacing the upstream Web stack anyway
in the near future, so the specific current issue may not be worth
fully diagnosing or fixing. I'll look into getting the playground
running again after deciding on the Web stack.

Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID:
@.**>


Don't Merge! Regression PR perf testing with metadata validation

Docs Build status updates of commit 8a34312:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

developer/TestingPullRequest.md
:white_check_mark:Succeeded

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.

Docs Build status updates of commit 24e8d38:
:warning: Validation status: warnings

File
Status
Preview URL
Details

reference/5.1/CimCmdlets/TestingPullRequest.md
:warning:Warning
View (powershell-5.1)
Details

developer/TestingPullRequest.md
:white_check_mark:Succeeded

reference/5.1/CimCmdlets/TestingPullRequest.md

[Warning] Metadata with following name(s) are not allowed to be set in Yaml header, or as file level metadata in docfx.json, or as global metadata in docfx.json: content_type. They are generated by Docs platform, so the values set in these 3 places will be ignored. Please remove them from all 3 places to resolve the warning.
[Warning] Missing attribute: title. Add a title string to show in search engine results.
[Warning] the value invalid_type is undefined for metadata content_type
Line 8: [Warning] Invalid file link:(~/5.1/nonexisted1.md).
Line 9: [Warning] Invalid file link:(~/5.1/nonexisted2.md).
Line 10: [Warning] Invalid file link:(~/5.1/nonexisted3.md).

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.


Datacatalog_sync

Modified to let the system do a data catalog entry.

Added the SparkTK version and ability to add it to the catalog.


improvement: Separation of backend services

Separate backend services into independent component with clear interface.

Step 1 -- Mock Worker
Worker module
graph LR
1[fn session]-->2[Worker]
2[Worker]-->3[WorkerProtect]
2[Worker]-->4[WorkerView]
3[WorkerProtect]-->5[WorkerStartup]
5[WorkerStartup] --> 6[(Handle)]
3[WorkerProtect]-->6[(Handle)]
3[WorkerProtect]-->7[(Instance)]
4[WorkerView]-->6[(Handle)]
4[WorkerView]-->7[(Instance)]

mock struct

mock a struct needs namespace switch, introduce mockall_double crate
Worker is standalone, not mock
WorkerProtect by mockall.automock
WorkerView is opaque, not mock

external dependency

std::fs at Worker, introduce tempfile crate for a temporary directory
Instance need to mock
Handler is opaque, not mock

Instance module
graph LR
1[Instance]-->2[(Index)]
3[InstanceView]-->4[(IndexView)]

mock struct

Instance by mock! due to #[derive(Clone)]
InstanceView by mock! due to generic lifetime at return

external dependency

Index and IndexView


feat(version): add --push-tags-one-by-one, fixes #701

Description
Push Git tags one by one
Motivation and Context

possibly fixes #701
when running Lerna version in independent mode, user could overcome GitHub limit

How Has This Been Tested?

Types of changes

[ ] Chore (change that has absolutely no effect on users)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

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

@StarpTech I'm not at all sure if that would fix the issue you brought in issue #701, so I'd like to have your opinion. I tried in dry-run mode by switching Lerna-Lite from fixed version to independent mode. I also did not try the Git commands either, so I have no idea if it would work or fail.
So do you think that would work or is it going in the wrong direction? Because if that doesn't work then I have no idea on how else to address the problem.
Here's 1 Git command
git push --no-verify --atomic origin<EMAIL_ADDRESS>main

no feedback provided, but let's go ahead with it in a new release. @StarpTech if you have a chance to try it in the future and confirm that it works, that would be great. I think the PR will fix the GitHub limit. Cheers

Hi, in your repo, were you able to reproduce the issue?

@StarpTech no since the simple repo I created to test this only has 2 packages so I won't hit the limit, however I tested the git push 1 by 1 and it seems to be working as expected.


Change week day to weekday

Look for where this occurs and change it please!

@Thrillberg can I be assigned this please and thank you

@ErinClaudio You got it!


Fortran. Character variables ending in backslash cause highlighting issues.

I have used the demo section of your website to produce the following examples. It also happens in a local installation with version 2.6.1
I have some variables containing paths in Fortran. If the variables end in any character other than '\' everything works fine as in the following figure.

However, if the variables end in '\', the highlighting is wrong as in the following figure. You can see that line 5 containing WRITE(*,*) pathname is in red and in line 6 pathname = is also in red, and they shouldn't. In addition, in line 6 there are some frames around the backslashes.

If there is only one line with a variable ending in '\' as in the following figure, line 5 (with the WRITE statement) is now ok, but there are the frames around the backslashes.

I am attaching the code used as examples to this issue.
IssueBackslash.zip

I would say this is valid Fortran, or at least it is compiled without any warnings using gfortran.
I think the default treatment of backslashes is compiler-dependent in Fortran. Having a look at the gfortran documentation here you can see there are two options called '-fbackslash and -fno-backslash to modify the treatment of this character. The default using gfortran is -fno-backslash which means treating a backslash character as an ordinary backslash. On the other hand using -fbackslash they are treated as escape characters. A deeper explanation of this option can be found here.
I understand from the link you provided that the behavior in the Oracle compiler might be the opposite. By default they are used as escape characters and you need to compile with option -xl to use the backslash character as an ordinary character.
Here you can see a issue on Doxygen related to strings ending in backslash too.

I don't see how we can solve this reliably in Pygments. I'd err on the side of caution and keep the current behavior for now.

I have same problem. I'm using the Intel Fortran compiler which distinguishes between standard strings and C-strings based on an optional C-string specifier. C-strings use escaping with the backslash character, while regular strings do not.
I discovered an additional issue that seems to be related. pygments.highlight() seemed to take forever on one file. After investigating I found out that this was caused by a combination of a string literal with a backslash and a comment line with a bunch of backslashes. See here for a minimal example.
The problem lies in FortranLexer(), since I can reproduce it with the following code:
from pygments.lexers import FortranLexer

source = r"""
foobar = 'foo'//'\'//'bar'
!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
"""

for token in FortranLexer().get_tokens(source):
    print(token)

The run time increases rapidly with each additional backslash added to the comment line.
I admit this is an edge case but I definitely would add a +1 for solving the issue brought up by the OP.

@mbraakhekke, you've discovered a catastrophic backtracking bug.
https://github.com/pygments/pygments/blob/64e8e05307689fe726ce9df2d5907e9c2fb67405/pygments/lexers/fortran.py#L159-L162
Would you open a new ticket that includes the sample code to reproduce the problem, and reference this issue as well? I'm interested in addressing this but likely can't jump into it immediately due to existing obligations.

Sure, I'll open a new ticket. But note that there's a clear link with the backslash problem. If I use a double slash instead of a single in my example, the catastrophic backtracking problem is gone.


Added support for custom user and password for monitoring's postgres database

PostgreSQL database is not customizable, this PR will add support for changing the user and password for the database.
Note: The value for mysql.secret and jwt.secret must be set as a Base64 encoded string which I believe should not be the case as it only matters for the secret creation and the string could be encoded there. I used the same logic for the postgres.user and postgres.secret but it requires to decode it on other files. But changing that makes it a breaking change.

It is not. I should have been more clearer. If the definition for the secrets for mysql and jwt changed to not be a Base64 string, it would be a breaking change.
But the current commit does not interfere with those. That was just a suggestion to reduce the b64dec calls because I used the current logic for the postgres password to use the Base64 as well, which is not optimal.


Why does this error exist?

A user on Twitter posted this screenshot of the CWA:

Why does this error exist? CWA only considers the last 10 days so this error isn't an error.

Internal Tracking ID: EXPOSUREAPP-14630

@Ein-Tim thanks for raising this! This message is designed as a security means to protect the server in case there are too many key submissions. The number (i.e. 10) is configurable, so that we can adjust it if there was too much traffic. At the moment this mechanism should not be activated.
As you correctly mentioned, CWA anyway only considers the last 10 days and this message should not show up. My assumption is that by some means, the app submitted keys that were older than 10 days. I'll try to figure out why this happens. Is this the only report so far that you've seen?
For what it's worth, it's not an error message but just a notice 😉

@mlenkeit FYI: https://twitter.com/Jimmyfreak88/status/1617591246427672576?s=20 seems like Ursache10 also plays a role here.

@mlenkeit FYI: https://twitter.com/Jimmyfreak88/status/1617591246427672576?s=20 seems like Ursache10 also plays a role here.

@Ein-Tim thanks for referencing the tweet. This might indeed be a series of events. Ursache10 has always been very hard (not to say impossible) to reproduce, let's see if we find a link between the two.

@mlenkeit
Have you tried warning yourself yet? Here's a second user reporting the same issue: https://twitter.com/muc_neko/status/1617893129507729408?s=61&t=zkhUfqeLvv1PZzwKxfMKyA
Maybe the Android implementation is faulty? I issued a SRS warning on my iPhone 6s (I deleted all contacts via the OS settings previously) and did not get an error like this.

@mlenkeit / @dsarkar / @thomasaugsten
I'd like to escalate this issue. From reports on Twitter I tend to say that this is not an isolated issue but always occurs. I will try warning myself on an Android device with version 3.0.1 installed and error logging active. Let's see if I'll get the same error.
First users on Twitter are starting to interpret this warning/informational pop-up as a confirmation that the SRS feature is broadly used to troll others: https://twitter.com/trollvanknall/status/1618762048246251520?s=46&t=or1WPnZNeDFj-OmlLAXdpQ

@Ein-Tim This issue is currently being analysed, and I have actually seen it also on iOS.

@dsarkar In this case this issue can be transferred to the cwa-documentation repository.

We adopt the configuration to prevent this warning which maybe confuse the user

@thomasaugsten
Okay so this was already done on server side? Is there a corresponding PR?

@thomasaugsten

We adopt the configuration to prevent this warning which maybe confuse the user

Did you mean "adapt" not "adopt"?
If it is "adopt" what is the configuration you are adopting?

Is already done. It should not occur further notes. There was a direct change. I will have a look if we a default value in the repo. Yes it was adapted.

It's an environment variable configuration setting that is not reflected in any of the repositories. We changed the value of this variable, which was set to 10:
https://github.com/corona-warn-app/cwa-server/blob/50063b0df5e16eee6a137e64ae35307492347f26/services/submission/src/main/resources/application.yaml#L23-L24

@mlenkeit
Means the change isn't visible in the repo?

Congrats, this error made it into ZDF Wiso: https://www.zdf.de/verbraucher/wiso/wiso-vom-30-januar-2023-100.html (at 01:26).
But seriously, as this should be fixed now, I'll close this issue.


Refactor children operator

Refactor the children operator to be more efficient. Many children are either static or may only be added or removed, therefore the children operator should use this to make child diffing more efficient.

Currently being addressed in the optimize-children-operator branch.


feat: peer dependency support for react v17

PR Details
Add support for react v17 as a peer dependency.
Description
There is no issues using the library with React v17. But missing support makes updating projects difficult (have to npm update --force)
Related Issue
#59
Motivation and Context
There is no issues using the library with React v17. But missing support makes updating projects difficult (have to npm update --force)
How Has This Been Tested
Tested on two projects with react v17 with no issue so far. I run internal test with no issues.
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Chore (workflows / linting / tooling)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

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

Disclaimer
By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our Contributor Ownership Statement

:tada: This PR is included in version 1.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


No drive

Hello,
i have a pocketbeagle rev. 18355 i installed the image: https://debian.beagleboard.org/images/bone-debian-10.3-iot-armhf-2020-04-06-4gb.img.xz. The beagle is booting, but no drive is connected to my windows 10 system. I tried on two systems, but it doesnt work.
I dont know what's the problem? someone can help?
thanks

I use Linux & Mac, BUT: I don't see a "drive" either... what makes you think you're supposed to see a drive?

I have the same problem.

In the instructions in the "System Reference Manual" it clearly says we should expect to see a drive...


report: ignore 'down' frame in the call stack

Codecov Report

Merging #1123 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1123   +/-   ##
=======================================
  Coverage   67.12%   67.12%
=======================================
  Files         120      120
  Lines       20705    20705
=======================================
  Hits        13899    13899
  Misses       6147     6147
  Partials      659      659

Impacted Files
Coverage Δ

pkg/report/linux.go
78.98% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


fix: Adjust ChoiceId indexes when an option is removed.

Summary | Résumé
Fix for related:
https://github.com/cds-snc/platform-forms-client/issues/4113
https://github.com/cds-snc/platform-forms-client/issues/3969
https://github.com/cds-snc/platform-forms-client/issues/3627
https://github.com/cds-snc/platform-forms-client/issues/4143
Fixes code to use id for cleanUpRules(String(id), index); vs passing the index
Adds code to adjust choiceId indexes when an option is removed
Given an array of rules
conditionalRules: [{ choiceId: "1.0" }, { choiceId: "1.1" }, { choiceId: "1.3" }, { choiceId: "1.4" }, { choiceId: "2.0" }],

If the 1.3 option is removed we need to re-index the existing choiceRules to account for an option being removed
In this case remove 1.3
Look for other rules that match the 1.x pattern
If the rules are below the option being removed leave them alone
If they are above we need to remove -1 from the current value
i.e. remove 1.3 ... 1.4  is above ... and now becomes 1.3
resulting in
conditionalRules: [{ choiceId: "1.0" }, { choiceId: "1.1" }, { choiceId: "1.3" }, { choiceId: "2.0" }],

https://github.com/user-attachments/assets/2d568303-e45e-4e60-b135-038958d5c212
Test file:
show-hide-rules-form-2024-08-01.json

Nice work!
Testing, removing a rule correctly "cascades" updates to the related rules.
Unrelated I think: (future followup PR)
I ran into what may be an issue that I think is outside the scope of this PR. If I setup a rule to go to a page, delete the page, the logic view updates correctly. But the rule with the deleted page, it still tries to load the deleted page and shows a page in a broken state.
https://github.com/user-attachments/assets/a5b734a1-35ec-434b-b0d7-4b2a18584759

Unrelated I think: (future followup PR)

Ya --- unrelated for this PR but group rules also likely need the same sort of logic applied as they also use the same indexes.

Holding off on merging this until after the Conditional Logic updates go live

Will wait for QA testing before merging.

Confirmed the same issue exists for groups / next actions https://github.com/cds-snc/platform-forms-client/issues/4169

QA Tested and LGTM, @timarney ! ✅


ddev ssh should return the exit code that is returned from docker-compose and not add extra output

Is there an existing issue for this?

[X] I have searched the existing issues

Run a Diagnostic and Paste Link Here
No response
Current Behavior
When I exit from ddev ssh after having written a command in the container I get an error: "Failed to ddev ssh web: exit status 1" or "Failed to ddev ssh web: exit status 127".
This does not occur if I have not typed a command other than "exit" (i.e. entered and exited again immediately)
Expected Behavior
no error
Steps To Reproduce
see above
Anything else?
No response

Thanks for taking the time to create this issue. See also related

https://github.com/drud/ddev/issues/1681

Basically ddev ssh exits with the return code of the last command used. In your case I imagine the last command returned a 127 ?
Here's the behavior I see:
$ ddev ssh
rfay@d9-web:/var/www/html$ echo hi
hi
rfay@d9-web:/var/www/html$ exit
logout
rfay@rfay-m1-air:~/workspace/d9$ ddev ssh
rfay@d9-web:/var/www/html$ ls
composer.json  composer.lock  vendor  web
rfay@d9-web:/var/www/html$
logout
rfay@rfay-m1-air:~/workspace/d9$ ddev ssh
rfay@d9-web:/var/www/html$ ls /nothing
ls: cannot access '/nothing': No such file or directory
rfay@d9-web:/var/www/html$
logout
Failed to ddev ssh web: exit status 2
rfay@rfay-m1-air:~/workspace/d9$

It could report better info, like maybe "last command from ddev ssh returned 127"

I think ddev ssh should not echo anything about its exit status.
We are in this general area of command handling and exit codes I think: https://github.com/drud/ddev/issues/3518
I would be in favor of completely removing the Failed to ddev ssh web: exit status XX from ddev ssh and ddev exec.
That ddev ssh does set an exit code can be ignored in my opinion. I think @MichaelSchmidt1729 only wondered about the additional output.
Nota bene: logout/exit (without parameter) shell built-ins capture the last command's exit code and set the current shell's exit code to that before it shuts down. At least on most shell implementations I think. That's totally normal behaviour that can be observed with a plain sh or ssh <host>, too. It does not seem to make a lot of sense for interactive shells, but is of course a requirement for scripts (with or without an implicit exit at the end) so here we go.

People do things like this though:
echo "ls" | ddev ssh
I'm not sure why they do that exactly instead of using ddev exec, but it does affect your logic @jonaseberle .

I would prefer Failed to ddev ssh web: exit status XX   be removed.
I find it confusing and have to remind myself what it means. It happens alot when I run the tinker REPL commands.
I think an option to enable/disable might be a good comprimise. I would definately set it to disabled,

No need for an option IMHO. People should check the exit code properly if they care about it ;)

IIRC the problem was figuring out how to return the proper exit code. Shouldn't be that hard.

I've encountered a new (new to me, anyhow) error message. I add it here, but it really makes no sense to me what it is saying, so I apologize if this isn't related to the other issue.
I enter
ddev auth ssh
and docker responds:
Docker command 'docker [run -it --rm --volumes-from=ddev-ssh-agent --user=501 --entrypoint= --mount=type=bind,src=/Users/brianeller/.ssh,dst=/tmp/sshtmp drud/ddev-ssh-agent:v1.20.0-built bash -c cp -r /tmp/sshtmp ~/.ssh && chmod -R go-rwx ~/.ssh && cd ~/.ssh && ssh-add $(file * | awk -F: "/private key/ { print \$1 }")]' failed: exit status 1
This message is all in red, so I'm presuming it is an error, but I'm unclear what it is telling me, nor what to do next.

AFAICT, this issue was closed by pull #1697 merged into v1.21.4.  Running the same test @rfay from Mar 30, 2022, I get no additional output upon exit from ddev ssh using HEAD / v1.21.4:
(base) stephen@MacBook-Pro:dfm-bdw [14:43:55] (master): ddev version
 ITEM             VALUE
 DDEV version     vHEAD-83a8896
 architecture     amd64
 db               drud/ddev-dbserver-mariadb-10.4:v1.21.4
 dba              phpmyadmin:5
 ddev-ssh-agent   drud/ddev-ssh-agent:v1.21.4
 docker           20.10.17
 docker-compose   v2.14.0
 docker-platform  docker-desktop
 mutagen          0.16.0
 os               darwin
 router           drud/ddev-router:v1.21.4
 web              drud/ddev-webserver:v1.21.4

(base) stephen@MacBook-Pro:dfm-bdw [14:47:38] (master): ddev ssh
stephen@dfm-bdw-web:/var/www/html$ ls /nothing
ls: cannot access '/nothing': No such file or directory
stephen@dfm-bdw-web:/var/www/html$ logout
(base) stephen@MacBook-Pro:dfm-bdw [14:52:17] (master):

Also noting that this is a duplicate of #1681 unless I am misunderstanding.

I think this is the situation we're talking about:
$ ddev ssh d9
$ ddev ssh d9
rfay@d9-web:/var/www/html$ ls /xxx
ls: cannot access '/xxx': No such file or directory
rfay@d9-web:/var/www/html$ exit
logout
Failed to ddev ssh web: exit status 2
rfay@rfay-tag1-m1:~/workspace/ddev$ echo $?
1

It did not fail in this situation, we just exited.
Not only is the reporting about "failed to ddev ssh web" incorrect, but the return value should actually be 0.

That is exactly what I get with the changes from #1697:
(base) stephen@MacBook-Pro:dfm-bdw [19:07:52] (master): ddev ssh
stephen@dfm-bdw-web:/var/www/html$ ls /xxx
ls: cannot access '/xxx': No such file or directory
stephen@dfm-bdw-web:/var/www/html$ exit
logout
(base) stephen@MacBook-Pro:dfm-bdw [19:10:47] (master): echo $?
0

It's possible something got lost? Could you please try current HEAD? You can do that with brew install --HEAD ddev or several other ways. #1697 was in 2019... But I don't really see why it's incorrect in any way.
So the change reversion happened in https://github.com/drud/ddev/pull/2830
Which was fixing

#1858

But I don't know why it touched ssh.go for what it was trying to fix.
It seems like you're doing great on your exploration! All you have to do now is understand the context of the 3 issues and make it right again! Thanks!

One little detail... It's possible to use ddev ssh like this: echo "ls" | ddev ssh, in which case it should absolutely return the docker-compose return value. It will be interesting to see if that's possible.

Okay.  I see.  I WAS using HEAD.  But I had made the same changes as you had put in #1697 and then I saw #1697, assumed it was still in the codebase, didn't notice the date, didn't test against clean HEAD, so I never saw the regression.
I'm guessing you reversed #1697 and touched ssh.go because someone might ddev ssh on a non-running container as easily as ddev exec except that you already checked for that at line 31 of ssh.go:
		status, _ := app.SiteStatus()
		if status != ddevapp.SiteRunning {
			util.Failed("Project is not currently running. Try 'ddev start'.")
		}

And it, indeed, provides the correct output if it is attempted when the container is not running.  So I believe #2830 shouldn't have been done, unless you were thinking of that specific piping of args use-case issue.  Will try to spend a little time noodling on that.

I think you'll be able to figure out a path.
Also note that

https://github.com/drud/ddev/pull/4565
may affect this due to a docker-compose issue that went in not long ago.

But yes, I think it would work to check for running service first, then accept the result, rather than depending on the result of the exec to say whether the service is running.

I seem to have hit a chicken-egg problem.  Theoretically, you could check in ssh.go if there are values being piped in, and if so, go ahead and return the error (if any); if there are no piped values, don't bother to return an error message.  Like so:
		if err != nil && isPiped {
			util.Failed("Failed to ddev ssh %s: %v", serviceType, err)
		}

However, this doesn't work because I can't figure out a way to detect if values have been piped in without robbing that store from the shell, i.e. if I try to detect piped values, then no piped values are actually piped and run.
This:
		// Determine if values were piped into the command.
		var reader = bufio.NewReader(cmd.InOrStdin())
		pipedValues, _ := reader.ReadString('\n')
		isPiped := len(pipedValues) > 0

		// Use bash for our containers, sh for 3rd-party containers
		// that may not have bash.
		shell := "bash"
		if !nodeps.ArrayContainsString([]string{"web", "db", "dba", "solr"}, serviceType) {
			shell = "sh"
		}
		err = app.ExecWithTty(&ddevapp.ExecOpts{
			Service: serviceType,
			Cmd:     shell + " -l",
			Dir:     sshDirArg,
		})
		if err != nil && isPiped {
			util.Failed("Failed to ddev ssh %s: %v", serviceType, err)
		}

will never return the error for echo "ls /non-existent" | ddev ssh because the act of reading stdin here appears to consume it before it can be piped and executed.
I tried looking at doing something along these lines further along the chain in ExecWithTty but seemed like it would need to go deeper to what is returned by dockerutil.ComposeWithStreams.  However, at these levels, it seems wrong to mess with the return values when the issue seems to really be with what should occur at only the ssh.go level.
I tried making copies of stdin to read the copy instead, but that yielded no love.  But I'm not sure if that was because I'm new to Go and don't know what I'm doing or if that's just not the way the stdin works.
I think I need some advice/direction here to proceed further.

Thanks for working on it! I'll try to take a look in the next couple of days. Maybe you could put up your best effort as a PR first?

Absolutely.

:)

Also, just confirming that adding a fmt.Println("pipedValues = ", pipedValues) in there correctly outputs the piped in values (when piped in).


first persistence draft

Adds persistence support using in-memory storage.
Current challenges

It only contains a test implementation. It must not be used in production
Right now there is no way to kill connections, we should implement WAF close in v4
There are race conditions for writing under high concurrency
I refactored collections.Map, now it implements collection.Editable, which is also implemented by collection.Persistent. That way, both persistent and map collections can be easily edited in setvar. Maps are still the same, the only difference is that some methods come from editable.

Usage
SecPersistenceEngine default
SecPersistenceTTL 3600
SecRule &REQUEST_COOKIES:session "@gt 0" "id:1,phase:1, initcol:session=%{REQUEST_COOKIES.session}"
SecRule REQUEST_URL "/login.php" "id:2, phase:4, setvar:session.username=%{RESPONSE_ARGS.json.username}"

SecAction "id:3,phase:5,log,msg:'User: %{SESSION.username}'"

No real requirement for persistence


Copy Psr\Cache and Psr\SimpleCache to ThirdParty

Since these adapters are explicitly for integrating external libraries, what if we made the PSR packages as dev requirements instead? Download users would already need to install the libraries they are referencing so will already be in charge of adding dependencies. And the packages will necessarily all require the PSR interfaces already, so Composer users will be fine.

That's fine to me. But I think we need to add a guard like if (! class_exists(Psr\Cache\CacheInterface::class) to prompt users to download the package. That should go to the entrypoint of the adapters. Is that in SupportTrait?

It won't work because the classes themselves already need to implement the interfaces. We need to decide whether we are going to provide these or not, and if not I think the best we can do is provide instructions for download users in the User Guide.

Looping @lonnieezell for his take on this.
I can take either way depending on what majority wants.

@MGatner https://github.com/codeigniter4/CodeIgniter4/blob/3509f60fa86c5c8a472ceb1d448722d5c4d959da/system/Psr/Cache/SimpleCache.php#L15 Psr\SimpleCache must be required

@WinterSilence It only needs to be required for people using that class. The way the autoloader lazy-loads there should be no problem having that file in someone's project without psr-simplecache. We are covered here by require-dev so all our analysis tools will be fine. For people actually planning to use it with a third-party package that package will already require it so the class will be present.

@MGatner it's added for users not uses composer

@MGatner it's not user friendly and not documented in code.  I think need move it in separated package.

I could see moving it to a separate library. We would need to decide this ASAP before a release (or just leave this part out would work).
@paulbalandan @lonnieezell what do you think?

Making the PSR compatibility layer to a separate package is appealing to me until such a time as we actually implement the interfaces.

After sleeping on this I definitely think moving to a separate package is the way to go. Thank you for the suggestion @WinterSilence.
@paulbalandan Thank you for your work on this PR - sorry it will go unused but I enjoyed seeing how efficient your new ComposerScripts are for expansion.


Wrong Info of latest chapters and limiter number of chapters shown

Source information
Ltnovel.com
Steps to reproduce
The source isn't shown the latest updated novels instead it shows random novels without refreshing it.
Increase the novel shown at a time limit

Expected behavior
The source should load the realtime updated novels.
The search results should be read the description and title of the novel presented and shown the related novels.
The filter button with list of genres presented at websites should be shown in genre sources
Actual behavior
The source isn't showing the actual latest chapters instead it shows the random novels.
The number of novels shown at a time is limited (20-30).
The Filtration Of categorised genres Isn't In the source
LNReader version
<IP_ADDRESS>
Android version
Android 11
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 1.1.12.
[X] I have updated all installed extensions.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

And novels are only in dns for me though I don't know the problem why


could you only provide FaPN design?

I was interested in your FaPN model, could you only provide FaPN structure?

I find it that link:
https://github.com/EMI-Group/FaPN/blob/main/detectron2/modeling/backbone/fan.py

Many thanks for your interest in our work. And fan is the implementation of our FaPN. Besides, there is no specific FaPN structure, FAM and FSM are two core modules, you can embed them into any upsampling place especially FPN structure. We have released more implementations, please have a look on FaPN-full.

thanks for @ShihuaHuang95


Publish docs from master - Nov 13, 2018

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/holograms-100.md
:white_check_mark:Succeeded
View

mixed-reality-docs/mr-azure-305.md
:white_check_mark:Succeeded
View

mixed-reality-docs/mr-azure-308.md
:white_check_mark:Succeeded
View

mixed-reality-docs/release-notes-october-2018.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.


Add CLI support for terminal-based translation

Solved #9
Add CLI support for terminal-based translation and resolve image link update issues
This pull request addresses the following:

Implemented CLI support for terminal-based translation, allowing users to translate markdown files and images directly from the command line. (#5)
Refactored ProjectTranslator and utility functions for improved modularity and maintainability.
Separated hash code generation into its own function for better code clarity and reusability.
Fixed image link update issues in markdown translation.
Completed testing of the markdown-image translation feature, ensuring that both markdown files and their associated images are properly translated and linked.
Fixed typos and added project disclaimers.
Refactored the markdown translation process for better performance and readability.

I have reviewed the changes myself and everything looks good to me

Thanks


fix: sizing on card items + disable some monaco options

:tada: This PR is included in version 1.1.14 :tada:
The release is available on:

GitHub release
1.1.14
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Since TLSUserGuide 1.0.13 the code example in section 3 in chapter 3.5.1 Endpoint Identification is incomplete

The Documentation TLSUserGuide is incomplete in chapter 3.5.1 Endpoint Identification since version 1.0.13.
Comparison of code example in section 3 between version 1.0.12 (https://downloads.bouncycastle.org/fips-java/BC-FJA-(D)TLSUserGuide-1.0.12.pdf) and 1.0.13 (https://downloads.bouncycastle.org/fips-java/BC-FJA-(D)TLSUserGuide-1.0.13.pdf) illustrate the issue.

This has now been updated in 1.0.19, unfortunately there were some issues with the previous version which we believe are now addressed.
The updated version is at: https://downloads.bouncycastle.org/fips-java/docs/BC-FJA-(D)TLSUserGuide-1.0.19.pdf

Please reopen. The code example in section 3 in chapter 3.5.1 Endpoint Identification is still incomplete.

I've referred this to someone who can provide a more definitive answer.

@MyLogins Please explain in what way the code example is incomplete. The new shorter code uses a utility class that accomplishes everything in the previous verbose example for the HttpsURLConnection case, and the text suggests you use SetHostSocketFactory (or SNISocketFactory) as a custom SSLSocketFactory in the general case.

Sorry, i have overlook the use of utility class.
Then there is no issue.


Source endpoint of resources with type RemoteDiskStorage contains Nexus internal metadata

When performing a GET on the source endpoint of a resource of type RemoteDiskStorage, the response contains the Nexus internal property _algorithm. Subsequently, to be able to update the resource, this property needs to be deleted from the payload, otherwise the following error is returned:
InvalidResource
Resource failed to validate against the constraints defined by 'https://bluebrain.github.io/nexus/schemas/storage.json

What is the message you get when the _algorithm field is added on RemoteDiskStorage creation?

Seems to be some problem on the SHACL context we have. I will double check


Update the default PT2E config

Type of Change
API changed or not: Yes
Description
PT2E static quant: weight per_tensor ->  weight  per_channel
How has this PR been tested?
Ext Test & UTs
Dependency Change?
None

/azp run Code-Scan,Model-Test,UT-3x-Torch,UT-Basic

/azp run UT-3x-TensorFlow


change get next tasks SP

Description
Change get next SP task to avoid deadlock.
Related issues
Addresses [issue #].
Testing
Describe how this change was tested.
FHIR Team Checklist

[x] Update the title of the PR to be succinct and less than 50 characters
[ ] Add a milestone to the PR for the sprint that it is merged (i.e. add S47)
[x] Tag the PR with the type of update: Bug, Dependencies, Enhancement, or New-Feature
[ ] Tag the PR with Azure API for FHIR if this will release to the Azure API for FHIR managed service (CosmosDB or common code related to service)
[x] Tag the PR with Azure Healthcare APIs if this will release to the Azure Healthcare APIs managed service (Sql server or common code related to service)
[ ] CI is green before merge
Review squash-merge requirements

Semver Change (docs)
Patch|Skip|Feature|Breaking (reason)

are not calling get details stored proc?

Use SP instead

e should be updating not heartbeat time but end tim

We don't set EndTime here because we want to differentiate whether a task is completed normally or exceptionally by exceeding maximum retry count.

e should be updating not heartbeat time but end tim

We don't set EndTime here because we want to differentiate whether a task is completed normally or exceptionally because of exceeding maximum retry count.


TS5033 error

After following instructions on
https://wwwallet.github.io/wallet-docs/docs/development-setup/getting-started
and calling node ecosystem.js up -t I receive many errors from wallet-enterprise-diploma-issuer, wallet-enterprise-vid-issuer, wallet-enterprise-acme-verifier, wallet-enterprise-ehic-issuer like this one:
 error TS5033: Could not write file '/app/dist/config/config.development.js': EACCES: permission denied, mkdir '/app/dist/config'.
These errors conclude with [nodemon] app crashed - waiting for file changes before starting...
I tried to create /app with 777/drwxrwxrwx access but this did not solve the issue.
I'm using version 2fd90b806c46f1ef33d2ce6d4f98f8cffd8a5a11 of wwWallet
node version: v20.16.0
npx version: 10.8.2
OS: Ubuntu 22.04.4 LTS

Work around: run the following as soon as the containers are up, but before they have been fully initialised internally:
docker exec -t -i -u root wallet-enterprise-ehic-issuer chmod 1777 /app/dist
docker exec -t -i -u root wallet-enterprise-diploma-issuer chmod 1777 /app/dist
docker exec -t -i -u root wallet-enterprise-vid-issuer chmod 1777 /app/dist
docker exec -t -i -u root wallet-backend-server chmod 1777 /dist
docker exec -t -i -u root wallet-enterprise-acme-verifier chmod 1777 /app/dist


How do you implement polymorphism in OpenTest tests?

Lets say we have a simple test
actors:
  - actor: WEB
    segments:
      - segment: 1
        actions:
          - description: Navigate to HomePage
            action: org.getopentest.selenium.NavigateTo
            args:
              url: https://myshop.com

          - description: Type "shoes" in the search box
            action: org.getopentest.selenium.SendKeys
            args:
              locator: { name: q }
              text: shoes
              sendEnter: true

For Desktop breakpoint the search field is displayed by default, but for Mobile breakpoint you must first open/expand burger menu to see the search field. These are 2 different behaviors, which when using a OOP programming language like Java could be solved by overriding a method.
What are my options in OpenTest which uses yaml files(which do not support inheritance)? Should I just copy-paste the test and add the needed additional step(like open burger menu)?
- actor: WEB
  segments:
    - segment: 1
      actions:
        - description: Navigate to HomePage
          action: org.getopentest.selenium.NavigateTo
          args:
            url: https://myshop.com

        - description: Open burger menu
          action: org.getopentest.selenium.Click
          args:
            locator: { class: burger-menu}

        - description: Type "shoes" in the search box
          action: org.getopentest.selenium.SendKeys
          args:
            locator: { name: q }
            text: shoes
            sendEnter: true

The same problem appears when the website has multiple locales/languages and they could have different behavior.
Is there a better way to deal with such scenarios?

I would check the page for a content, that is specific for the mobile version, and make the mobile steps dependent on those checks with $if.
https://getopentest.org/docs/global-arguments.html#if
So, first get the content of the page you are visiting in first step.
Second, use the $if to run the next step only if the burger menu is visible.
Something like this:
- actor: WEB
  segments:
    - segment: 1
      actions:
        - description: Navigate to HomePage
          action: org.getopentest.selenium.NavigateTo
          args:
            url: https://myshop.com
            $localData:
              homepage: $output.body

        - description: Check page content for burger menu
          script: |
            Script specific for your page structure
            return $localData.burgerMenuVisible

        - description: Open burger menu
          action: org.getopentest.selenium.Click
          args:
            locator: { class: burger-menu}
            $if: $localData.burgerMenuVisible

        - description: Type "shoes" in the search box
          action: org.getopentest.selenium.SendKeys
          args:
            locator: { name: q }
            text: shoes
            sendEnter: true

Or in my opinion, a better solution would be to have separate environment variables for the desktop and mobile runs, and make test steps dependent on those environment variables.
https://getopentest.org/docs/environments.html
I hope this help somehow. Sorry, I am not actively using OpenTest since a year now, but I have some fading memories of some solutions.

@TamasGombos , thank you for your suggestion! I haven't even noticed the $if keword until now, so you definitely helped!


Precision of alignment_to_matrix

The alignment_to_matrix(to_type="probability") function does not seem to produce precise values. When I expect a particular nucleobase to have a probability of 1 (every sequence has that base) it produces something more like 0.999228 with the other three bases producing values of 0.000256.

Hi,
Please try pseudocount=0 when calling alignment_to_matrix. E.g., see https://github.com/jbkinney/logomaker/issues/6

Hi @bhwein, can you comment on whether this worked for you?

@atareen This worked perfectly. Thank you!!


add event notification to covenant contracts

Currently it's a little tedious to track the state machine progress of all covenants.
Lets try to introduce an event notification system that would help deal with this:

upon advancing the state of any covenant-instantiated contract, the contract submits a message to its admin (=covenant) that includes a timestamp and description of what happened
covenant validates the sender of msg to be one of its instantiated contracts
covenant stores the events in a sorted ds (BTreeSet?) and exposes it via query

Logic for this is generic enough to sit in covenant_utils.
Things to consider:

query the covenant address on-demand via query_wasm_contract_info(env.contract.address)?.creator or store the admin address in storage
use a specific event structure or just the cw_utils::Event
is it worth to paginate the query (as the swap covenant may be like 5 events in the happy case)
how much do we want to notify of? bare minimum or fully lean into event sourcing?

I really like this. However, I'd like to prioritize getting the two-party functionality and Osmosis integration complete before we work on quality of life improvements for users


Implement the UI of ScholarX Landing Page

Implement the UI of ScholarX Landing Page based on the provided wireframe

we will do it.


slope giltch

I found the video here: https://youtu.be/Uwg1A39tyH8

thanks, yea I tried fixing this once, but it didn't figure out why it is happening.
I'll leave this issue open as a reminder to investigate

thanks, yea I tried fixing this once, but it didn't figure out why it is happening.
I'll leave this issue open as a reminder to investigate

in the original game you can use walls to climb up slopes in bom omb battlefield... that part is normal so its a tech


magentic doesn't allow manual error handling when input arguments don't match tool schema

Hi @jackmpcollins !
I'm attempting to implement error handling for function calling, specifically in the case where the LLM provides inputs that do not match the required input schema. Here is an example where I force an incorrect function call:
from magentic import (
    chatprompt,
    prompt,
    ParallelFunctionCall,
    FunctionResultMessage,
    AssistantMessage,
    UserMessage,
    SystemMessage,
    FunctionCall,
)
from openbb import obb
from pydantic import Field, ValidationError
from typing import Literal

def get_profit(symbols, period: Literal["quarter", "annual"]) -> str:
    if period not in ["quarter", "annual"]:
        raise ValidationError(
            f"Invalid period: {period}. Expected 'quarter' or 'annual'."
        )
    return "25%"

messages = []
messages.append(
    SystemMessage("What is the profit margin of TSLA, AMZN, MSFT, AAPL, RDDT?")
)

function_call = FunctionCall(
    function=get_profit,
    **{
        "symbols": "TSLA,AMZN,MSFT,AAPL,RDDT",
        "period": 1,
    },  # <-- "period" is an invalid input
)

messages.append(AssistantMessage(function_call))
messages.append(
    FunctionResultMessage(content="Something went wrong.", function_call=function_call)
)

@chatprompt(*messages, functions=[get_profit])
def _llm() -> str | ParallelFunctionCall:
    ...

r = _llm()

This raises the following error:
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
Cell In[52], line 30
     22 @chatprompt(
     23     *messages,
     24     functions=[get_profit]
     25 )
     26 def _llm() -> str | ParallelFunctionCall:
     27     ...
---> 30 r = _llm()

File ~/miniforge3/envs/obb-agents/lib/python3.11/site-packages/magentic/chatprompt.py:88, in ChatPromptFunction.__call__(self, *args, **kwargs)
     86 def __call__(self, *args: P.args, **kwargs: P.kwargs) -> R:
     87     """Query the LLM with the formatted chat prompt template."""
---> 88     message = self.model.complete(
     89         messages=self.format(*args, **kwargs),
     90         functions=self._functions,
     91         output_types=self._return_types,
     92         stop=self._stop,
     93     )
     94     return message.content

File ~/miniforge3/envs/obb-agents/lib/python3.11/site-packages/magentic/chat_model/openai_chat_model.py:456, in OpenaiChatModel.complete(self, messages, functions, output_types, stop)
    448 streamed_str_in_output_types = is_any_origin_subclass(output_types, StreamedStr)
    449 allow_string_output = str_in_output_types or streamed_str_in_output_types
    451 response: Iterator[ChatCompletionChunk] = discard_none_arguments(
    452     self._client.chat.completions.create
    453 )(
    454     model=self.model,
    455     messages=_add_missing_tool_calls_responses(
--> 456         [message_to_openai_message(m) for m in messages]
    457     ),
    458     max_tokens=self.max_tokens,
    459     seed=self.seed,
    460     stop=stop,
    461     stream=True,
    462     temperature=self.temperature,
    463     tools=[schema.to_dict() for schema in tool_schemas] or openai.NOT_GIVEN,
    464     tool_choice=self._get_tool_choice(
    465         tool_schemas=tool_schemas, allow_string_output=allow_string_output
    466     ),
    467 )
    469 first_chunk = next(response)
    470 # Azure OpenAI sends a chunk with empty choices first

File ~/miniforge3/envs/obb-agents/lib/python3.11/site-packages/magentic/chat_model/openai_chat_model.py:456, in <listcomp>(.0)
    448 streamed_str_in_output_types = is_any_origin_subclass(output_types, StreamedStr)
    449 allow_string_output = str_in_output_types or streamed_str_in_output_types
    451 response: Iterator[ChatCompletionChunk] = discard_none_arguments(
    452     self._client.chat.completions.create
    453 )(
    454     model=self.model,
    455     messages=_add_missing_tool_calls_responses(
--> 456         [message_to_openai_message(m) for m in messages]
    457     ),
    458     max_tokens=self.max_tokens,
    459     seed=self.seed,
    460     stop=stop,
    461     stream=True,
    462     temperature=self.temperature,
    463     tools=[schema.to_dict() for schema in tool_schemas] or openai.NOT_GIVEN,
    464     tool_choice=self._get_tool_choice(
    465         tool_schemas=tool_schemas, allow_string_output=allow_string_output
    466     ),
    467 )
    469 first_chunk = next(response)
    470 # Azure OpenAI sends a chunk with empty choices first

File ~/miniforge3/envs/obb-agents/lib/python3.11/functools.py:909, in singledispatch.<locals>.wrapper(*args, **kw)
    905 if not args:
    906     raise TypeError(f'{funcname} requires at least '
    907                     '1 positional argument')
--> 909 return dispatch(args[0].__class__)(*args, **kw)

File ~/miniforge3/envs/obb-agents/lib/python3.11/site-packages/magentic/chat_model/openai_chat_model.py:96, in _(message)
     85 if isinstance(message.content, FunctionCall):
     86     function_schema = FunctionCallFunctionSchema(message.content.function)
     87     return {
     88         "role": OpenaiMessageRole.ASSISTANT.value,
     89         "content": None,
     90         "tool_calls": [
     91             {
     92                 "id": message.content._unique_id,
     93                 "type": "function",
     94                 "function": {
     95                     "name": function_schema.name,
---> 96                     "arguments": function_schema.serialize_args(message.content),
     97                 },
     98             }
     99         ],
    100     }
    102 if isinstance(message.content, ParallelFunctionCall):
    103     return {
    104         "role": OpenaiMessageRole.ASSISTANT.value,
    105         "content": None,
   (...)
    118         ],
    119     }

File ~/miniforge3/envs/obb-agents/lib/python3.11/site-packages/magentic/chat_model/function_schema.py:408, in FunctionCallFunctionSchema.serialize_args(self, value)
    407 def serialize_args(self, value: FunctionCall[T]) -> str:
--> 408     return self._model(**value.arguments).model_dump_json(exclude_unset=True)

File ~/miniforge3/envs/obb-agents/lib/python3.11/site-packages/pydantic/main.py:176, in BaseModel.__init__(self, **data)
    174 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
    175 __tracebackhide__ = True
--> 176 self.__pydantic_validator__.validate_python(data, self_instance=self)

ValidationError: 1 validation error for FuncModel
period
  Input should be 'quarter' or 'annual' [type=literal_error, input_value=1, input_type=int]
    For further information visit https://errors.pydantic.dev/2.7/v/literal_error

It looks like magentic is still trying to enforce input argument schemas, even if they're handled and occur outside of magentic.
This makes it impossible to error-handle cases where the LLM hallucinates and provides inputs that do not pass validation for the function schema model that is created from the provided tools (which are a common failure mode of LLMs).
Should I be taking a different approach?
Thanks!

For those who stumble upon this in the meantime, this works as a simple workaround:
Create a new dummy function that can accept any args / kwargs, and then modify its name to match that of the original called function in the bad function call. The new permissive signature will sidestep the pydantic model validation in magentic, and still allow you to inform the LLM that something went wrong so that it can (hopefully) self-heal its next input.
                    dummy = lambda *args, **kwargs: ...
                    dummy.__name__ = function_call.function.__name__
                    new_function_call = FunctionCall(
                        function=dummy,
                        **function_call.arguments,
                    )
                    messages.append(AssistantMessage(new_function_call))
                    messages.append(
                        FunctionResultMessage(
                            content=str(error_message), function_call=new_function_call
                        )
                    )

I can reproduce this with
import logging
from typing import Literal

from magentic import prompt, FunctionCall

logging.basicConfig(level=logging.DEBUG)

def func(a: Literal[1, 2]) -> str:
    return f"Received {a}"

@prompt(
    "Call the function with input 3",
    functions=[func],
)
def test() -> FunctionCall: ...

test()

The root cause is that pydantic is being used internally to deserialize the function arguments to match the signature types. I think raising an error when the LLM fails to match the types is good default behavior because it means the function can expect valid inputs (as would be the case if it were called normally in a type-checked codebase).
Thankfully, pydantic has tools for customizing the validation. One option in this case is the SkipValidation annotation. https://docs.pydantic.dev/latest/api/functional_validators/#pydantic.functional_validators.SkipValidation
from typing import Literal

from pydantic import SkipValidation
from magentic import prompt, FunctionCall

def func(a: SkipValidation[Literal[1, 2]]) -> str:
    return f"Received {a}"

@prompt(
    "Call the function with input 3",
    functions=[func],
)
def test() -> FunctionCall: ...

test()
# FunctionCall(<function func at 0x105bc6440>, 3)

More advanced coercion can be done using their more general validators https://docs.pydantic.dev/latest/concepts/validators/#annotated-validators

Separately, another/additional approach would be to add a description for this input so hopefully the model gets it correct more often. The example results in an error roughly half the time.
from typing import Annotated, Literal

from pydantic import Field
from magentic import prompt, FunctionCall

def func(
	a: Annotated[Literal[1, 2], Field(description="Only 1 or 2 are allowed!!")],
) -> str:
    return f"Received {a}"

@prompt(
    "Call the function with input 3 unless otherwise specified.",
    functions=[func],
)
def test() -> FunctionCall: ...

test()

Hi @jackmpcollins, thanks for the quick reply!

I think raising an error when the LLM fails to match the types is good default behavior because it means the function can expect valid inputs (as would be the case if it were called normally in a type-checked codebase).

I 100% agree with you that this should be default behaviour. My example is specifically about an edge-case where I'm trying to error-handle the scenario where the model doesn't follow the function's input schema. My intended flow was:

Run LLM completion
Capture the function call
Manually execute the function in a try...except to catch any error
If there's an error, pass the error to the LLM in an attempt to self-heal
Run another loop.

This flow works for all kinds of exceptions except those that validate the input schema. This case occurs often enough in my use-case that it does need to be error-handled (I'm passing in up to four OpenBB Platform functions in, which can sometimes have quite a few arguments -- albeit many of them default) which trips up the model occasionally. All of the functions have good type annotations and descriptions (I'm working with them to make things as magentic-compatible as possible).
I didn't know about SkipValidation! However, the problem with the SkipValidation approach is that I'm trying to use external functions as tools with magentic rather than ones I've defined myself.

Separately, another/additional approach would be to add a description for this input so hopefully the model gets it correct more often.

This is something that would be difficult to do with external libraries. But it's a good idea to be explicit in the description itself what possible values are.
In the meantime though, I guess it's the lambda approach for now to error-handle this scenario?

Ah, I misunderstood initially. The issue was in just the serialization of the FunctionResultMessage that had "invalid" inputs. Validation of the function arguments on serialization is not necessary because the FunctionCall was either created by

the LLM, so already passed the validation on being parsed
or the user, in which case we should trust their decision

I've fixed this now in https://github.com/jackmpcollins/magentic/releases/tag/v0.24.0  The code you provided in the description now runs without error for me. let me know if you run into any issues with this, thanks.

Super, thanks!


Write spec for Ctrl-F (should be multiple options)

Might as well write it here.
Goal is to come up with different options of different time to implement.
Splitting it into parts - Search UI, Search Algorithm, and Search Result Indication
Search UI Ideas

Use input box from VS code to show a find
Input box in the toolbar (just an <input>) form
Custom control on top of UI with different options

Just a plain input with a 'find' button that's clickable
Search by case/word
Search by regex
Replace dropdown

Search Algorithm Ideas

Search all cell sources in the webview, use monaco to highlight by scrolling to the item and selecting the text
Search all cell sources in the extension, pass a message to the webview to highlight/scroll

Whomever validates, please add your own ideas, and validate my time guesses. Thanks

So minimum option I think is this:

Custom control on top of UI with different options

Just a plain input with a 'find' button that's clickable - 1 day
Search backwards too - .2 days

Search all cell sources in the webview - 1 day
use monaco to highlight by scrolling to the item and selecting the text (this is basically what the findController does in VS code) - .5 days

Total: 3 days.

Find comes built in, in the custom editor.

Oh you mean the custom editor API that VS code is working on.


[eas-cli] fix 'manged' typo in ios target

Why
I was looking for something and stumbled upon a typo :)

Thanks for catching this typo!


Use the ZULU timeformat to support more chargers

The current datetime format used in the ocpp responses is not recommend and may cause problems with some chargepoint manufactures.
datetime.now(tz=timezone.utc).isoformat()
should be best be replaced with
datetime.now(tz=timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ')
This is the recommended datetimeformat by the OCPP documents and OCA.
ocpp_home_assistant_zulu.patch.txt

closing, since the change has been merged


Update ibm-cert-manager-operator.v3.6.0.clusterserviceversion.yaml

@swati-nair Made a few edits and added this statement to the first Important: note:
Additionally, you can exit this panel and navigate to the IBM Common Services tile in OperatorHub to learn more about the operator.

Closing this PR as 3.6.0 is already released We will merge these changes once we are ready with 3.6.1 CSV updates.

@Lesiac @swati-nair Once we're ready to resubmit this for our csv v3.6.1, I believe the ocp version should be stated as ocp 4.3 or higher.  CS 3.4.0 is not supporting ocp 4.2.