RetroArch

Project Link
https://github.com/libretro/RetroArch
Project License
GPL-3.0
Steam App Ids
https://steamdb.info/app/1118310/
Additional Context
RetroArch has been released to steam and we have some options for adding to luxtorpeda-dev:
Non-Steam RetroArch
We can add the non-steam version of RetroArch as an option for RetroArch. This would be if they picked our "Luxtorpeda (Runtime)" compatibility tool for RetroArch in steam, then they could download that version. This could let them use the nightly cores that can be downloaded with that version.  This could be either the nightly version or a stable version. Both versions appear to download the nightly cores: https://buildbot.libretro.com/nightly/linux/x86_64/latest. We would want to download from the buildbot and not build the cores or RetroArch itself ourselves.
RetroArch as an Engine
It would be cool if RetroArch was an engine for Luxtorpeda as well. Many of the existing projects that lux-dev supports are also provided as libretro cores. Doom, Quake, EasyRPG, ScummVM, OpenLaura, DOSBox, and more. Players could then take advantage of Libretro features like AI Service, Run Ahead, Shaders, Touchscreen Support, Cheat/Rumble Codes, and other goodies. Also Retroarch has a command line interface.
When the game is launched via Luxtorpeda we can support Steam features for that particular game like time tracking and screenshots whereas running the game data from RetroArch normally would attribute that time and screenshots to RetroArch instead.

@JoshuaFern
For the appimage part, luxtorpeda switches to the windows depot, so that the windows version will be downloaded. So we wouldn't be getting the linux appimage in this case.
We could either take the retroarch nightly appimage and extract that, or attempt to build it, although not sure all that is involved there, and if the steam version is different (to support the steam dlcs).
As for building non-steam engines, I'm not sure if luxtorpeda would be able to help with that. Normally you can pick an engine, which could be used to download dlc I suppose, but retroarch will be communicating with the various core developers to add them to steam from what I know.
As well, the buildbot has a captcha behind it, so not sure if it'd be possible to use that automatically.
One way to solve both issues would be to use the outside steam version of retroarch for the lux version, meaning it could use the core downloading that it sounds like the original retroarch uses. Let me know if that would make sense for this.
For using retroarch as an engine, I suppose it'd depend on if those cores could be downloaded inside retroarch and if there was a way to automate that.

AppImage

It seems that RetroArch won't be distributing as an AppImage much longer: https://steamcommunity.com/games/1118310/announcements/detail/2873849978168865590

buildbot has a captcha behind it

Interesting, I've never had a captcha on buildbot and I'm pretty sure RetroArch fetches cores from there itself (there's clearly no way to enter a captcha in the RetroArch UI)

One way to solve both issues would be to use the outside steam version of retroarch for the lux version, meaning it could use the core downloading that it sounds like the original retroarch uses. Let me know if that would make sense for this.

Yeah, that seems like a good option if it'll work. Just having normal RetroArch that you can download cores for would be an upgrade compared to the nerfed Steam version.
Retroarch on Steam is compiled with the HAVE_STEAM parameter which only seems to disable built-in the core download and update functionality. A limited selection of cores are then distributed via Steam itself. I believe these Steam DLC cores would work with Retroarch if it was compiled without  HAVE_STEAM, it's just a matter of putting the file in the cores directory.
We probably should avoid building all of libretro, that seems like a major undertaking.

For using retroarch as an engine, I suppose it'd depend on if those cores could be downloaded inside retroarch and if there was a way to automate that.

Cores can be downloaded inside of the original retroarch, but to automate lux would have to download it.

@JoshuaFern Yes, it was strange the first time I went to the site, it brought up what I think was a cloudflare screen, where it had me solve a captcha before I went to the actual site. Hasn't happened since so not sure if it'd be an issue.
Do you know if there's a way with the command line to tell retroarch to download one of it's cores? Similar to the non-steam version where you can use the GUI? As a way to automate that download step. If not, it could be downloaded if we wanted to have retroarch as a option for certain games and we had the paths. Looks like this may be a path to the cores: https://buildbot.libretro.com/nightly/linux/x86_64/latest/
For the non-steam version, it looks like this would be a good path: https://buildbot.libretro.com/stable/1.9.10/linux/x86_64/RetroArch.7z
Then would need to provide 7z (have done that for others in the past) and extract the appimage.

Ah Cloudflare, that would do it.
I don't see a way to automate downloading via a cli parameter. Checking the default config of retroarch, it just fetches the cores from http://buildbot.libretro.com/nightly/linux/x86_64/latest/
The cores can be in ~/.config/retroarch/cores or the ./cores folder in the application directory I believe. The current AppImage based implementation on Steam places DLC cores in RetroArch-Linux-x86_64-Nightly.AppImage.config/retroarch/cores/genesis_plus_gx_libretro.so, but I assume that will be moved to the normal ./cores directory when the transition happens.

@JoshuaFern It looks like for the stable release, they have a zip of all cores, which ends up being about 1 gb of data unzipped. Do you know what the stable version uses, or is that the one?
It's possible to use the nightly instead, since it looks like they are using using whatever is in the nightly latest to download the cores. If there was an issue at some point, there may have to be some manual steps for someone to download the latest nightly (deleting the cached nightly would do it, if we set the download path to the latest nightly download)

@JoshuaFern Also, if you could compile a list of cores that would use useful for steam games (what games they apply to and the name of the core), and any information that would be helpful as to launching them.

It looks like for the stable release, they have a zip of all cores, which ends up being about 1 gb of data unzipped. Do you know what the stable version uses, or is that the one?

Retroarch doesn't install all the cores in one-go like that, the built in downloader fetches cores from http://buildbot.libretro.com/nightly/linux/x86_64/latest/. I realize these cores are in the nightly branch, but this is what the stable version of Retroarch downloads. Rather than downloading that entire archive, I think lux should only download the single core being used if it's missing. Then the user can add or update any additional cores they choose from the built-in downloader.

It's possible to use the nightly instead, since it looks like they are using using whatever is in the nightly latest to download the cores.

Yep.

Also, if you could compile a list of cores that would use useful for steam games (what games they apply to and the name of the core), and any information that would be helpful as to launching them.

I'll see if I can compile a list.

Cave Story (NXEngine)
Cave Story https://steamdb.info/app/200900/
# This one requires some data.
wget https://buildbot.libretro.com/assets/cores/Cave%20Story/Cave%20Story%20%28En%29.zip && unzip *.zip
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/nxengine_libretro.so ./Cave\ Story\ \(en\)/Doukutsu.exe

Doom (PrBoom)
The Ultimate DOOM https://steamdb.info/app/2280/
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/prboom_libretro.so base/DOOM.WAD

Final DOOM https://steamdb.info/app/2290/
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/prboom_libretro.so base/TNT.WAD
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/prboom_libretro.so base/PLUTONIA.WAD

DOOM II: Hell on Earth https://steamdb.info/app/2300/
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/prboom_libretro.so base/DOOM2.WAD

Doom 3 (Boom3)
DOOM 3 https://steamdb.info/app/9050/
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/boom3_libretro.so .

Doom 3 Resurrection of Evil (Boom3-ex)
DOOM 3: Resurrection of Evil https://steamdb.info/app/9070/
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/boom3_xp_libretro.so .

DOS (DOSBox-core, DOSBox-Pure, DOSBox-SVN)
You can either load an exe/com/bat file or a *.conf file. Hundreds of games for this but here's an example for DOOM:
The Ultimate DOOM https://steamdb.info/app/2280/
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/dosbox_pure_libretro.so ./ultimate\ +\ mouse.bat

Pico8 (Retro8)
miniStrike https://steamdb.info/app/1354460/
Sakura Stars https://steamdb.info/app/1282710/
Slime Fantasy: the search for the lost sword https://steamdb.info/app/1472810/
I don't own any of these games but they're distributed via PNG files. Launch with something like:
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/retro8_libretro.so game.png
Quake 1 (TyrQuake)
Quake https://steamdb.info/app/2310
# The engine doesn't recognize the capital in the folder name, let's copy and rename it.
cp -r Id1 id1
retroarch -L ~/.local/share/Steam/steamapps/common/retroarch/cores/tyrquake_libretro.so ./

There's undoubtedly many more, but this is a start.

Thanks for the list, looks like a good starting point.
Note for future reference that the script itself should not use unzip, and rely on the client's decode_as_zip function to extract the library.

I sometimes wonder why use Retroarch on Steam instead of just the standalone version, here's some of my thoughts:
Cons:

No built in core downloader.

Pros:

Ability to use Remote Play Together
Steam Cloud Features: Saves, Screenshots, Game-Time Tracking
Officially supported: I think the only other officially supported version is the flatpak version.
And maybe, in the future, the ability to easily play your bought games on Steam in Retroarch using Luxtorpeda.

@JoshuaFern
Ok, it sounds like what you're saying is leave the RetroArch application as is, and then for games where there are retroarch cores for, create scripts for launching the games through the native RetroArch from the store? And then either point people in the right direction to download the cores, or use the ones provided by steam where possible?
I think that sounds pretty doable. Would what you mentioned above for the games above still apply?

If we make scripts, they should, if possible, be universal so that games on Steam that contain ROMs could work with RetroArch and other emulators such as 3dSen.

3dSen: https://steamdb.info/app/1147940/
3dSen VR: https://steamdb.info/app/954280/

Ok, it sounds like what you're saying is leave the RetroArch application as is, and then for games where there are retroarch cores for, create scripts for launching the games through the native RetroArch from the store? And then either point people in the right direction to download the cores, or use the ones provided by steam where possible?

Yeah absolutely, just use the app detection concept that source engine already uses to detect RetroArch itself. Then launch the core or show an error if the core's file is missing.

I think that sounds pretty doable. Would what you mentioned above for the games above still apply?

Yes, although those cores are not in the Steam version of Retroarch yet. Here's a list of games I made and the cores they should work with: https://steamcommunity.com/sharedfiles/filedetails/?id=2678538760

@JoshuaFern @Jpxe
I added retroarch support in this commit: https://github.com/luxtorpeda-dev/packages/commit/8bba438eb715d42cf3f64f5720d7689cd5fe98b3
I tested it with Super 3-D Noah's Ark, and Viper. Thanks for sponsors for providing funds for the games.
The way it works is there are default options for snes9x, PCSX ReARMed, and "Other". The first two will try to automatically load the game using the core and looking for a particular file extension, with the ability to override the extension and relative path with command line arguments in the steam launch options (see the other documentation). Other provides a way where you can provide the core, extension type, and optionally the relative path for any core.


#4259 activating nvme hat on sd card build

adressing #4259

tested ok on my test build - merged into dev for rc1


Serial port close method

I saw serial port close method like this if (!serialPort.IsOpen) serialPort.Close();.
correct me if I am wrong. the port need to close if the port is at open state or close state?

serialPort.IsOpen is true mean that is opened

So the code is wrong checking if  (!serialPort.IsOpen) serialPort.Close(); is wrong at close method

You are right,this is a mistake,thank you.


WIP: dvc pkg cmd ref (and other misc updates)

Review app will be at https://dvc-org-pr-388.herokuapp.com/

Closes #385

@shcheklein this is soon to be a regular non-WIP PR. You may want to start reviewing the "other misc." changes in it, the ones not related to dvc pkg commands when you get a chance. Thanks

Given that the pkg commands functionality is still highly WIP and there are other PRs I want to send to this repo, I'm closing this PR and reopening from another branch. See #417


Supported for Redmine V5

Supported for Redmine V5. (#2)
Add ReadMe-ja.md

Thanks for your cooperation! @RedminePower


Cannot include node: handling add node request (status = Failed)

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?
NO, my problem is NOT within Home Assistant or the ZWave JS integration
Is your problem within Z-Wave JS UI (formerly ZwaveJS2MQTT)?
NO, my problem is NOT within Z-Wave JS UI
Checklist

[X] I have checked the troubleshooting section and my problem is not described there.

[X] I have read the changelog and my problem was not mentioned there.

Describe the bug
What causes the bug?
Whenever I try to include the node it fails.
What do you observe?
It fails to include the node.
What did you expect to happen?
It should include the node or give a more useful reason for the failure.
Steps to reproduce the behavior:

Go to 'Actions'
Click on 'Manage Nodes'
Click on 'Next' (for Inclusion)
Add a name and location
Click on 'Next'
See error

Device information
Manufacturer: Qubino
Model name: Flush Shutter DC
Product code: ZMNHOD
How are you using node-zwave-js?

[X] zwave-js-ui (formerly zwavejs2mqtt) Docker image (latest)
[ ] zwave-js-ui (formerly zwavejs2mqtt) Docker image (dev)
[ ] zwave-js-ui (formerly zwavejs2mqtt) Docker manually built (please specify branches)
[ ] ioBroker.zwave2 adapter (please specify version)
[ ] HomeAssistant zwave_js integration  (please specify version)
[ ] pkg
[ ] node-red-contrib-zwave-js (please specify version, double click node to find out)
[ ] Manually built from GitHub (please specify branch)
[ ] Other (please describe)

Which branches or versions?
zwave-js-ui: 8.4.1
zwave-js: 10.3.0
Did you change anything?
no
If yes, what did you change?
No response
Did this work before?
Yes (please describe)
If yes, where did it work?
I've many of these devices and I've never had any issue including them.
This one is brand new, so I've never included it before (but the firmware version is the same as the others).
Attach Driver Logfile
zwavejs.log
2022-11-27 13:19:55.589 INFO Z-WAVE: Calling api startInclusion with args: [
  0,
  {
    forceSecurity: false,
    name: 'Plisse sx cameretta',
    location: 'Cameretta'
  },
  [length]: 2
]
2022-11-27T12:19:55.617Z CNTRLR   Starting inclusion process with strategy Default...
2022-11-27T12:19:55.688Z SERIAL » 0x0105004ac17100                                                     (7 bytes)
2022-11-27T12:19:55.694Z DRIVER » [REQ] [AddNodeToNetwork]
                                    node type:    Any
                                    high power:   true
                                    network wide: true
                                    callback id:  113
2022-11-27T12:19:55.707Z SERIAL « [ACK]                                                                   (0x06)
2022-11-27T12:19:55.721Z SERIAL « 0x0107004a71010000c2                                                 (9 bytes)
2022-11-27T12:19:55.729Z SERIAL » [ACK]                                                                   (0x06)
2022-11-27T12:19:55.740Z DRIVER « [REQ] [AddNodeToNetwork]
                                    status:      Ready
                                    callback id: 113
2022-11-27T12:19:55.778Z CNTRLR   The controller is now ready to add nodes
2022-11-27 13:19:55.782 INFO Z-WAVE: Controller status: Secure inclusion started
2022-11-27 13:19:55.789 INFO Z-WAVE: Success zwave api call startInclusion true
2022-11-27T12:20:03.338Z SERIAL « 0x0107004a71020000c1                                                 (9 bytes)
2022-11-27T12:20:03.344Z SERIAL » [ACK]                                                                   (0x06)
2022-11-27T12:20:03.354Z DRIVER « [REQ] [AddNodeToNetwork]
                                    status:      NodeFound
                                    callback id: 113
2022-11-27T12:20:03.368Z DRIVER   handling request AddNodeToNetwork (74)
2022-11-27T12:20:03.370Z DRIVER     1 handler registered!
2022-11-27T12:20:03.371Z DRIVER     invoking handler #0
2022-11-27T12:20:03.378Z CNTRLR   handling add node request (status = NodeFound)
2022-11-27T12:20:04.166Z SERIAL « 0x0107004a71070000c4                                                 (9 bytes)
2022-11-27T12:20:04.175Z SERIAL » [ACK]                                                                   (0x06)
2022-11-27T12:20:04.184Z DRIVER « [REQ] [AddNodeToNetwork]
                                    status:      Failed
                                    callback id: 113
2022-11-27T12:20:04.197Z DRIVER   handling request AddNodeToNetwork (74)
2022-11-27T12:20:04.198Z DRIVER     1 handler registered!
2022-11-27T12:20:04.200Z DRIVER     invoking handler #0
2022-11-27T12:20:04.202Z CNTRLR   handling add node request (status = Failed)
2022-11-27T12:20:04.205Z CNTRLR   Adding the node failed
2022-11-27 13:20:04.209 INFO Z-WAVE: Controller status: Inclusion failed
2022-11-27T12:20:04.216Z CNTRLR   stopping inclusion process...
2022-11-27T12:20:04.343Z SERIAL » 0x0105004ac57207                                                     (7 bytes)
2022-11-27T12:20:04.348Z DRIVER » [REQ] [AddNodeToNetwork]
                                    action:       Stop
                                    high power:   true
                                    network wide: true
                                    callback id:  114
2022-11-27T12:20:04.372Z SERIAL « [ACK]                                                                   (0x06)
2022-11-27T12:20:04.385Z SERIAL « 0x0107004a72060000c6                                                 (9 bytes)
2022-11-27T12:20:04.389Z SERIAL » [ACK]                                                                   (0x06)
2022-11-27T12:20:04.397Z DRIVER « [REQ] [AddNodeToNetwork]
                                    status:      Done
                                    callback id: 114
2022-11-27T12:20:04.434Z CNTRLR   The inclusion process was stopped
2022-11-27 13:20:04.438 INFO Z-WAVE: Controller status: Inclusion stopped
2022-11-27T12:20:04.453Z DRIVER       the message was handled

I've tried dozens of times and there are already other 6 modules in the same exact spot. It's replacing another module of the same exact type in the same exact spot which failed and it supports zwave plus.

I've tried several other times and it looks like the 15th attempt was the good one. I can't believe how bad zwave stuff is :(


Does this actually work with the "none" option?

It's quite possible I'm doing something wrong, but I have the following in my .netlify.toml file:
[[plugins]]
package = "dotenv"
  [plugins.inputs]
  method = "none"

... yet the environment variables defined in my Netlify dashboard, are still overriding the ones defined in my local .env file. Is this a bug, or am I missing something?

Hi, sorry for my inactivity and thank you for using this plugin.
I wanted this plugin to work like loader for definitions of the env variables with their default values and overwrite them in the dashboard for specific websites (deploys). So I actually never used that option. But it should work in theory. I'm not sure if Netlify build bot will overwrite the environments defined in the dashboard right before running the build phase.
I have just released new version of this plugin with (I hope) better functionality. It was weird from the start and I wanted to improve that.
Let me know if it helps somehow.


DirectXTex converts floating point numbers to integers by different way between BC4 and BC5.

DirectXTex converts floating point numbers to integers by different way between BC4 and BC5.
Is this correct behaviour?

In case of BC4: fractions will be cut off.
DecompressBC decodes BC4 pixel block as float precision.
_StoreScanline converts it as DXGI_FORMAT_R8_SNORM by following code.

	float v = XMVectorGetX(*sPtr++);
	v = std::max<float>(std::min<float>(v, 1.f), -1.f);
	*(dPtr++) = static_cast<int8_t>(v * 127.f);

In case of BC5: fractions will be round up.
DecompressBC decodes BC5 pixel block as float precision.
_StoreScanline converts it as DXGI_FORMAT_R8G8_SNORM by XMStoreByteN2 as follows.

	// Clamp to bounds
	XMVECTOR vResult = _mm_max_ps(V,g_XMNegativeOne);
	vResult = _mm_min_ps(vResult,g_XMOne);
	// Scale by multiplication
	vResult = _mm_mul_ps(vResult,g_ByteMax);
	// Convert to int by rounding
	__m128i vInt = _mm_cvtps_epi32(vResult);

Sorry, I sent it by mistake.
This issue is for DirectXTex.


Consider increasing the 900s time limit for projects using conda

Details

Read the Docs project URL: http://xarray.pydata.org/ and http://salem.readthedocs.io
Build URL (if applicable): https://readthedocs.org/projects/xray/builds/
Read the Docs username (if applicable): fmaussion

Expected Result
Two libraries I'm maintaining (https://github.com/pydata/xarray and https://github.com/fmaussion/salem) regularly bump into the 900s time limit. The bottleneck is the conda installation of our dependencies, which often takes more than 500s (depending on bandwith and other parameters).
I know that you guys are offering all this for free and we are grateful for this! I also understand the reasons for defining a build time limit. Here, however, I believe that slightly increasing the timeout limit to 1000 or 1200 s would be mostly beneficial for RTD's resources on average, because our current solution is to build and re-build and re-build the docs until it finally comes through (https://readthedocs.org/projects/xray/builds/).
Thanks for your time!
Actual Result
The builds timeout much more often than not

Related discussion on the xarray repository: https://github.com/pydata/xarray/issues/2209

This is interesting, the command says it fails because of time out, but the last command says it was killed due to memory consumption

@fmaussion hi! Thanks for reporting this.
We have a fixed time of 900s as default for different reasons but we usually increase the time for building a project if the owner asks us and we determinate that is the main reason.
Also, we point users to a guide page that we have under our docs to see if they can speed up the building time by their own avoiding unnecessary calculations: https://docs.readthedocs.io/en/latest/guides/build-using-too-many-resources.html and #4419 . In your particular case, you can consider installing fewer dependencies --which may not be needed to build your docs. If that's the case, we will really appreciate to reduce them to save building time, bandwidth and more from our servers.
On the other hand, if your problem is around memory consumption, that's a more complex problem and we don't have a perfect solution yet: #4403
In the meantime, I increased xarray time limit to 1800s and triggered a new build: https://readthedocs.org/projects/xray/builds/7549108/ . Let's see how it goes.

It failed due to memory consumption now :disappointed:
I increased the memory limit to 1.5g, but as I stayed in #4403 this is risky and I may need to revert this change.
I triggered a new build with 1.5g of memory. Let's see :pray:

OK! I'm starting my tests again because, I have to say it, I got confused because the project's name is xarray but its slug is xray.
So, build with 1800s https://readthedocs.org/projects/xray/builds/7549241/

Thanks all for your help, this is much appreciated!

This is interesting, the command says it fails because of time out, but the last command says it was killed due to memory consumption

Yes, I think this is a bug in RTD, because the message always comes after ~ 905s of run time, no matter what.

I got confused because the project's name is xarray but its slug is xray.

Sorry about that, our project was renamed from xray to xarray a while ago.

In your particular case, you can consider installing fewer dependencies --which may not be needed to build your docs. If that's the case, we will really appreciate to reduce them to save building time, bandwidth and more from our servers.

I agree. In our case it is difficult because we support many libraries for IO, and provide an example in our docs for each. We will use the resources as sparingly as we can, though.
May I ask for the same extension for my related project salem? https://readthedocs.org/projects/salem/
It extends xarray and therefore has the same dependency issues...

Hi @fmaussion! xarray and salem are already using our preference queue that allows more build time and ram.
Let me know if you find any issue related to this or if you have any feedback. I appreciate.
I'm closing this issue here, but feel free to reopen if you consider.


Batch send counters to influx

Do not send the counters one-by-one. Group them together and send data to the server.
Make the send interval configurable.

This is completed as of version <IP_ADDRESS>.


Pin rdflib to version 6 to fix #73

RDFLib version 7 changes the API in ways which break with aspects of LinkML runtime. For now, pin RDFLib to version 6.
See also:
https://github.com/linkml/linkml/issues/1567

The underlying issue (https://github.com/linkml/linkml/issues/1567) was fixed in LinkML 1.6.3 so this workaround is no longer needed. We appreciate your effort still!


Usage of Casadi SX with Pinocchio

Hi, I think this question has been asked previously and there were some answers. I want to go from my urdf file to Casadi SX robot equations. As far as I understand, it might be possible to do with pinocchio. However, when I try to use those expressions I get errors. I am sharing the code snippet, in case I am doing something wrong. Looking forward to any responses.
Code:
model=pinocchio.buildModelFromUrdf("RobotURDF.urdf" )
data=model.createData()
q = SX.sym("q", model.nq)
M = pinocchio.computePotentialEnergy(model, data, np.array([q[0],q[1],q[2],q[3]]))
Error:
Python argument types in
pinocchio.pinocchio_pywrap.computePotentialEnergy(Model, Data, numpy.ndarray)
did not match C++ signature:
computePotentialEnergy(struct pinocchio::ModelTpl<double,0,struct pinocchio::JointCollectionDefaultTpl> model, struct pinocchio::DataTpl<double,0,struct pinocchio::JointCollectionDefaultTpl> {lvalue} data)
computePotentialEnergy(struct pinocchio::ModelTpl<double,0,struct pinocchio::JointCollectionDefaultTpl> model, struct pinocchio::DataTpl<double,0,struct pinocchio::JointCollectionDefaultTpl> {lvalue} data, class Eigen::MatrixBase<class Eigen::Matrix<double,-1,1,0,-1,1> > q)

Hello @UM-A,
Pinocchio 2 is only supporting Casadi in C++. The Python support will be added in Pinocchio 3 that is not released and not public.
Hopefully a pre-release is available. You can find instruction in this tutorial.
I recommend you to install it with conda (in a new environment), then to run the setup notebook to test your installation.
Others notebook will show you how to use the Pinocchio Casadi binding (from pinocchio import casadi as cpin).


package Kepler for standalone distribution

Is your feature request related to a problem? Please describe.
Kepler is distributed in a container for Kubernetes. However, when deployed in a standalone and non-containerized environment, a software packaging scheme, rpm or deb, is needed.
Describe the solution you'd like
Initially a Kepler rpm should be supported

Using Github Action to create the rpm and hosting the manifests there is a good start.

personally, binary is good enough and upload binaries to release page?
https://github.com/prometheus/node_exporter/releases/tag/v1.5.0
for systemd we may able to ref https://github.com/prometheus/node_exporter/tree/master/examples/systemd

We just have a binary for kepler as release which is good enough right?
if we provide a systemd job, do we need root privileges for /proc access? or we need root privileges to open network so that this systemd job able to listen on port as 9102?a
if my point of view a binary release is a minimum size of standalone. A systemd job contains more features as start, stop, auto recover, log, privileges etc.

We just have a binary for kepler as release which is good enough right? if we provide a systemd job, do we need root privileges for /proc access? or we need root privileges to open network so that this systemd job able to listen on port as 9102?a if my point of view a binary release is a minimum size of standalone. A systemd job contains more features as start, stop, auto recover, log, privileges etc.

We are starting with rpm binary. Wanted to clarify if we intend to support start/stop/log etc.

Pre offline discussion with @rootfs
@husky-parul I am good if we can put binary in release page and rpm package on any rpm package center.

Are there any plans of supporting other packaging formats like .deb?


how to use billing volume and s3

Our contract got billing for s3 and volumes as GB/months.
billing volume/s3 expects GB/hour
How to properly convert that so we arrive at the same numbers? :-)

Hey. I'm afraid that as a developer I don't know about contracts and final numbers of a bill.
When you look into the response of the billing command, you see that the API returns storage seconds:
$ c billing s3 -o yaml
...
    - bucketid: ...
      bucketname: test-92
      currentnumberofobjects: "33183"
      currentsize: "16827887616"
      end: null
      lifetime:<PHONE_NUMBER>000000
      partition: fel-wps101
      projectid: ...
      projectname: ""
      start: "1970-01-01T00:00:00.000Z"
      storageseconds: "22762916224820859"
      tenant: ...
      user: ...
      warnings: []

This number is seconds * bytes, so you can convert this from byte to GB:<PHONE_NUMBER>4820859 / 2³⁰ = 21199617,7443 s * GB
Then convert to hours: 21199617,7443 s * GB / 3600 = 5888,78270675 GB * h
This is what cloudctl does in the table view and it is the value we hand down to the billing department for the creation of the bills. It can be that some products include a minimum purchase or other multiplication factors though. Maybe then there are better persons to ask for how the final numbers are made.

thanks


Rueidis making CLIENT SETINFO commands that are not supported by ElastiCache Redis

We have observed that our application is making CLIENT SETINFO commands to the Redis server hosted on AWS ElastiCache. However, these commands are not supported by ElastiCache Redis.
The CLIENT SETINFO command is used to set arbitrary information for the current connection. While this command is available in open-source Redis version 7.2 and up, it is not supported by ElastiCache Redis (which is on "7.1" or 7.0).
Steps to Reproduce:

Create an ElastiCache Redis instance (e.g. serverless)
Connect to the ElastiCache Redis instance using a Rueidis client
The ElastiCache metric CommandAuthorizationFailures should increase

Potential fix:
The Rueidis client has an option for ClientSetInfo but there is no option to disable it entirely for support with older versions of Redis. An option can be added to the client options type to disable the execution of this command.

Instead of another option, I would prefer this:
var DisableClientSetInfo = make([]string)
...
rueidis.NewClient(rueidis.ClientOption{
	ClientSetInfo: rueidis.DisableClientSetInfo,
})

I've been trying your suggested fix out, diff here: https://github.com/rahulgkatre/rueidis/pull/1/files
The test I added for this change passes locally but in the workflow there are failures related to data races.

Thanks for the help, workflows passed and I've opened the PR to this repo.


predict.py:25-28: Resolve issue with all-time negative...

The puzzle 30-025c8878 from #30 has to be resolved:
https://github.com/h1alexbel/samples-filter/blob/7d5d392a821b11cf8a7d4ac4216bbd9d91027180/model/predict.py#L25-L28
The puzzle was created by @rultor on 23-Apr-24.
Estimate: 90 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

optimizing learning rate: learning_rate=2e-5, and
reduced batched sizes: per_device_train_batch_size=8 and per_device_eval_batch_size=32 showcased this result:
Raw logits: tensor([[ 3.3061, -3.8666]], grad_fn=<AddmmBackward0>)
Probabilities: tensor([[9.9923e-01, 7.6663e-04]], grad_fn=<SoftmaxBackward0>)
Predicted label: negative

we should check the result of the model inference on a list of examples.

@0pdd the puzzle #52 is still not solved.


Mermaid diagrams can randomly fail to render then start working

From Discord, there was discussion of the fact that a correct Mermaid diagram can fail to render, then suddenly start working.  I've seen this a few times as well, and I suspect that it has something to do with us pushing a new version to prod, and the local cached version of Mermaid.js being different (i.e., it can't load the dependency for some reason).
A refresh of the page will usually fix it (which is why it "suddenly" starts working for "no reason").  We might be able to have updates go smoother.

Our service worker (see build/sw.js) does this:
    s.precacheAndRoute(
      [
        { url: "android-chrome-192x192.png", revision: "9338ee34f2a337c375cf60b0cdb5b3c6" },
        { url: "android-chrome-512x512.png", revision: "05fed013f47b2b60a3ddf91dc97456ec" },
        { url: "apple-touch-icon.png", revision: "01a521e3bd9203e755ddc4fd77e3ac27" },
        { url: "favicon-16x16.png", revision: "dcc8379b51266819244f1a117ce3c5bc" },
        { url: "favicon-32x32.png", revision: "d92930e5701f88aec4bd7dd13fc52f85" },
        { url: "favicon.ico", revision: "36ef512c6eb3b474f57b356ec46b26c5" },
        { url: "openai-logo.png", revision: "de0068828c32f2be9a0ea36b1196d580" },
        { url: "assets/arc-bd7316d5.js", revision: null },
        { url: "assets/array-9f3ba611.js", revision: null },
        { url: "assets/c4Diagram-9cddb37f-8fbadd15.js", revision: null },
        { url: "assets/classDiagram-bc733c3b-d2b53d56.js", revision: null },
        { url: "assets/classDiagram-v2-8931bdaf-803d3af2.js", revision: null },
        { url: "assets/core-b8b80318.js", revision: null },
        { url: "assets/createText-3df630b5-9c82b1dc.js", revision: null },
        { url: "assets/css-c2652ddb.js", revision: null },
        { url: "assets/edges-49ac43a2-a1b7f1ab.js", revision: null },
        { url: "assets/erDiagram-f6946109-da96a775.js", revision: null },
        { url: "assets/flowchart-elk-definition-5082a990-cf1b168e.js", revision: null },
        { url: "assets/flowDb-6a57c1b4-21e3e0ee.js", revision: null },
        { url: "assets/flowDiagram-93327f21-2ea922b9.js", revision: null },
        { url: "assets/flowDiagram-v2-476db779-5003be68.js", revision: null },
        { url: "assets/ganttDiagram-7ce12d6b-45185856.js", revision: null },
        { url: "assets/gitGraphDiagram-1e960c50-29401559.js", revision: null },
        { url: "assets/index-e813502b.css", revision: null },
        { url: "assets/infoDiagram-264bed3e-d7cc0de6.js", revision: null },
        { url: "assets/init-77b53fdd.js", revision: null },
        { url: "assets/javascript-c9589dde.js", revision: null },
        { url: "assets/journeyDiagram-31be0096-fd31a7c3.js", revision: null },
        { url: "assets/layout-06238274.js", revision: null },
        { url: "assets/line-5b755978.js", revision: null },
        { url: "assets/linear-bd972d50.js", revision: null },
        { url: "assets/mindmap-definition-4fc2557c-517d4a0e.js", revision: null },
        { url: "assets/path-53f90ab3.js", revision: null },
        { url: "assets/pieDiagram-157505fe-cad18d04.js", revision: null },
        { url: "assets/python-91f80c37.js", revision: null },
        { url: "assets/quadrantDiagram-fd70f2d0-45029dd8.js", revision: null },
        { url: "assets/requirementDiagram-19c99588-9caa3ddc.js", revision: null },
        { url: "assets/selectAll-16c00572.js", revision: null },
        { url: "assets/sequenceDiagram-5dfd0049-bfb69f31.js", revision: null },
        { url: "assets/stateDiagram-133e3642-4b68a6f5.js", revision: null },
        { url: "assets/stateDiagram-v2-6371a76b-b01b23c6.js", revision: null },
        { url: "assets/styles-5f89df53-53ddc20d.js", revision: null },
        { url: "assets/styles-aefe6593-f39849b8.js", revision: null },
        { url: "assets/styles-fa41df25-206d3cfd.js", revision: null },
        { url: "assets/svgDraw-0fcc813d-97858cfe.js", revision: null },
        { url: "assets/svgDrawCommon-f26cad39-30918bef.js", revision: null },
        { url: "assets/timeline-definition-5ed366f4-98457985.js", revision: null },
        { url: "assets/typescript-6f236245.js", revision: null },
        { url: "android-chrome-192x192.png", revision: "9338ee34f2a337c375cf60b0cdb5b3c6" },
        { url: "android-chrome-512x512.png", revision: "05fed013f47b2b60a3ddf91dc97456ec" },
        { url: "manifest.webmanifest", revision: "97d82ba2fa0ecfeb2b771092ec5ed16c" },
      ]

Here the various pieces of Mermaid get cached, and they are all stamped with a hash.  When we ship a new version, I suspect that these assets get different hashes, and the HTML we load is using new values which might be 404'ing from the service worker cache.
It would be good to catch this bug happening live, as it's just guess work without more data.

Maybe we should get rid of the service worker? I can't feel value from it, but I had 2 complaints about this.

Service worker is giving us a huge speed benefit when loading in new tab, etc.  Removing is not a great idea.  We should fix underlying bug instead.
I'm only theorizing on the reason for this bug.  I need someone to reproduce and collect some more info.  I have only hit this once in all the times I've done crazy tests with branches, previews, prod, etc.

I haven't seen this happen in months.  Re-open if it happens again.


Unable to save two models at once when 1:1 relationship is used in Inverse

Issue:
What I did:
There are two models:

BackpackUser with respective BackpackUserCrudController
Profile with respective ProfileCrudController.

They are related in the following way..
Profile Entity hasOne('App\Models\BackpackUser', 'profileid') where profileid is the foreign key in users table. I have firstname and lastname fields in the profile table.
BackpackUser Entity belongsTo('App\Models\Profile', 'profileid') where profileid is the foreign key in users table.
What I expected to happen:
I have the form to add/edit users(BackpackUser) that also has the firstname and lastname fields. I used the following code in the BackpackUserCrudController's setup method to add those fields from related Profile model..
    public function setup()
    {
        $this->crud->setModel(User::class);
        $this->crud->setRoute(config('backpack.base.route_prefix') . '/user');
        $this->crud->setEntityNameStrings('user', 'users');
        //$this->crud->setFromDb();

        //Add columns based on passed values
        $this->crud->setColumns([
            [
                'name' => 'username',
                'type' => 'text',
                'label' => trans('backpack::permissionmanager.user_singular'),
            ],
            [
                'name' => 'email',
                'type' => 'email',
                'label' => trans('backpack::permissionmanager.email'),
            ],
            [
                'name' => 'firstname',
                'type' => 'select',
                'label' => trans('backpack/user.firstname'),
                'entity' => 'profile',
                'attribute' => 'firstname',
            ],
            [
                'name' => 'lastname',
                'type' => 'select',
                'label' => trans('backpack/user.lastname'),
                'entity' => 'profile',
                'attribute' => 'lastname',
            ]
        ]);

        // Fields
        $this->crud->addFields([
            [
                'name' => 'username',
                'type' => 'text',
                'label' => trans('backpack::permissionmanager.user_singular'),
            ],
            [
                'name'  => 'firstname',
                'label' => trans('backpack/user.firstname'),
                'type'  => 'text',
                'entity' => 'profile',
                'attribute' => 'firstname',
                'model'     => "App\Models\Profile",
            ],
            [
                'name'  => 'lastname',
                'label' => trans('backpack/user.lastname'),
                'type'  => 'text',
                'entity' => 'profile',
                'attribute' => 'lastname',
            ],
            [
                'name'  => 'email',
                'label' => trans('backpack::permissionmanager.email'),
                'type'  => 'email',
            ],
            [
                'name'  => 'password',
                'label' => trans('backpack::permissionmanager.password'),
                'type'  => 'password',
            ],
            [
                'name'  => 'password_confirmation',
                'label' => trans('backpack::permissionmanager.password_confirmation'),
                'type'  => 'password',
            ],
            [
                // two interconnected entities
                'label'             => trans('backpack::permissionmanager.user_role_permission'),
                'field_unique_name' => 'user_role_permission',
                'type'              => 'checklist_dependency',
                'name'              => 'roles_and_permissions', // the methods that defines the relationship in your Model
                'subfields'         => [
                    'primary' => [
                        'label'            => trans('backpack::permissionmanager.roles'),
                        'name'             => 'roles', // the method that defines the relationship in your Model
                        'entity'           => 'roles', // the method that defines the relationship in your Model
                        'entity_secondary' => 'permissions', // the method that defines the relationship in your Model
                        'attribute'        => 'name', // foreign key attribute that is shown to user
                        'model'            => config('permission.models.role'), // foreign key model
                        'pivot'            => true, // on create&update, do you need to add/delete pivot table entries?]
                        'number_columns'   => 3, //can be 1,2,3,4,6
                    ],
                    'secondary' => [
                        'label'          => ucfirst(trans('backpack::permissionmanager.permission_singular')),
                        'name'           => 'permissions', // the method that defines the relationship in your Model
                        'entity'         => 'permissions', // the method that defines the relationship in your Model
                        'entity_primary' => 'roles', // the method that defines the relationship in your Model
                        'attribute'      => 'name', // foreign key attribute that is shown to user
                        'model'          => config('permission.models.permission'), // foreign key model
                        'pivot'          => true, // on create&update, do you need to add/delete pivot table entries?]
                        'number_columns' => 3, //can be 1,2,3,4,6
                    ],
                ],
            ],
        ]);
    }

What happened:
The 'entity' => 'profile', relation is not populating the form fields. Does this work for relations in the reverse? Because BackpackUser is dependent on Profile.
Also, I'm having to create the profile manually using save in the store method..
public function store(Request $request)
{
    $profile = new \App\Models\Profile;
    $profile->firstname = $request->firstname;
    $profile->lastname = $request->lastname;
    $profile->telephone = $request->telephone;
    $profile->mob = $request->mob;
    $profile->address = $request->address;
    $profile->save();
    $this->handlePasswordInput($request);
    $redirect_location = parent::storeCrud($request);
    if ( ! is_null($this->crud->entry) ) {
        $this->crud->entry->profileid = $profile->id;
        $this->crud->entry->save();
    }
    return $redirect_location;
}

Backpack, Laravel, PHP, DB version:
3.4, 5.8, MySQL release-client 8.0

Hello @bluerid i think you missed something when working with BP fields.
[
                'name'  => 'firstname',
                'label' => trans('backpack/user.firstname'),
                'type'  => 'text',
                'entity' => 'profile',
                'attribute' => 'firstname',
                'model'     => "App\Models\Profile",
            ],

This text field will never use models and entities. text field implementation
I will close this one as this is not an actual bug report and leave you the links so you can improve your experience with backpack.
backpack fields documentation
If i'm wrong and you still think this is a BP issue, feel free to re-open it.
BR,
Pedro


Add variable cap

If we're fuzzing as input to simulators, then it can be helpful to make sure the number of variables doesn't exceed the number of variables that can be passed in registers, hence avoiding introducing the stack.  We can likely model this in the same way as we model thread caps: make an integer parameter, and consult it as part of the precondition of variable introductions.
It's not yet clear whether we'd want a thread-local cap (cap on variables visible to a thread) or a global one (cap on variables visible throughout), or both.

The variable cap has been added, but some variable-producing actions don't yet honour it.  I'll close this and file a bug.


Fixes naming convention permission check for data items with path attribute.

The permission checking code is currently ignoring the path attributes when evaluating. This results in permission checks for secrets defined like this:
apiVersion: kubernetes-client.io/v1
kind: ExternalSecret
metadata:
  name: test
spec:
  backendType: systemManager
  data:
  - path: dev/team-a/secret

with the error message ERROR, not allowed to fetch secret: test/test: key name undefined does not match naming convention ^dev/team-a/.*.
This PR adds handling of the path attribute in the permissions check.

@Flydiverny can you please take a look at this? The problem this fixes is also a security vulnerability where the access check is performed on the key attribute whereas the values are fetched using the path attribute.


Refactor API calls to be more future-proof

Implementation of #236 has revealed a general issue when extending API calls.  When adding parameters to an API call, it has been noted that we should have a cycle of introducing a new call, deprecating the old call, waiting for web UI code to be updated, and then removing the old call.
The deprecation cycle is necessary because adding parameters to an API call breaks every API client that uses that call, even if the new parameters have default values, because the FC reflection API does not understand how to interact with default values due to underlying deficiencies in C++
In this ticket, I propose a solution to this problem:  Most or all API calls should be rewritten to take a single struct, containing the values that were previously passed as separate arguments.  Defaults can then be placed in the C++ struct definition, and if some fields do not occur in the JSON dictionary provided by the client, then those fields should not be assigned by the API framework and thus will have their default values.
I should test that the API framework does in fact give fields that do not exist in the JSON object their default values.

We could even implement this API entirely in C++ without breaking clients that use positional arguments.  Here's how I'd do it:

Create a new API method macro called e.g. FC_EXTAPI

FC_EXTAPI has the following semantics:

If a single JSON object is passed, then the method is called directly with the object.  Fields that exist in the C++ struct but not in the JSON object should never be assigned by the API framework, and thus will take their default values as specified in the C++ struct definition.

If a single JSON value of a non-object type is passed, or a number of JSON entities other than 1 is passed, then the struct fields are filled in order with the provided values.  If the provided values are fewer than the number of struct fields, then the remaining fields should not be assigned by the API framework, and thus will take their default values as specified in the C++ struct definition.

By straightforwardly defining parameter structs, we can replace FC_API methods with FC_EXTAPI methods, while maintaining complete backward compatibility from the client's point of view.
The win here is that, by maintaining support for positional arguments, the transition from brittle argument-based methods to extensible struct-based methods can occur without breaking client code.

This should wait until #422 .

This issue was moved to bitshares/bitshares-core#64


vendor all dev dependencies

For this codebase to be truly long-lived, we need to vendor ALL its dependencies. Use https://github.com/nomad-software/vend to do that.

This introduces longer compile times. The test suite now takes 10s instead of 1.5s.


Mirror.cs incorrectly sets attributes on open

In the mirror sample, around line 200 it has this:
if (mode == FileMode.CreateNew || mode == FileMode.Create) //Files are always created as Archive
                        attributes |= FileAttributes.Archive;
                    File.SetAttributes(filePath, attributes);

If you open an existing file with the readonly and/or archive bit set (eg open in Notepad), then attributes is Normal at the start of CreateFile and this line basically removes all attributes, clearing the readonly / archive flag on the file.

@dangibson Yes, this is normal. When the file is created or overwrite, the attributes are removed if a previous one was existing.
See https://github.com/dokan-dev/dokany/blob/a55396bb96f6570838738fb3373ea452a161db33/samples/dokan_memfs/memfs_operations.cpp#L124 memfs sample that is handling more cases with some comments.
When you open a file with notepad as you describe, this lines are not called since it is an open and not a create.
If you want more informations there is a Microsoft doc page on setattributes that describes  this behavior.

It opens the file with access=GenericRead. This means readWriteAttributes is false (line 135) and so does get to the File.SetAttributes call on line 201.
I think maybe this section:
if (mode == FileMode.CreateNew || mode == FileMode.Create) //Files are always created as Archive
                        attributes |= FileAttributes.Archive;
                    File.SetAttributes(filePath, attributes);

should really be this:
if (mode == FileMode.CreateNew || mode == FileMode.Create) //Files are always created as Archive
{
    attributes |= FileAttributes.Archive;
    File.SetAttributes(filePath, attributes);
}

Ok I see your point now. Attributes also need to be changed when a file is opened with write rights
see https://docs.microsoft.com/en-us/windows/win32/fileio/creating-and-opening-files
I made a change https://github.com/dokan-dev/dokan-dotnet/commit/c5c067e96bb36920322855a1ab5aa3e9156559a2 Is that what you were expecting ?

Ok I see your point now. I made the change https://github.com/dokan-dev/dokan-dotnet/commit/879ab9c7d3b5e1df708584d1eac76bf84e46fc91 let me know if that's enough for you
For info see https://docs.microsoft.com/en-us/windows/win32/fileio/creating-and-opening-files

I've added some comments to the commit 87ab9c

Thanks for the comments. See the changes https://github.com/dokan-dev/dokan-dotnet/commit/28cbf81644cea9a265f5499e8d2fb33e0b8bd54a

That looks good. Thanks for your help.


The PostScript output generates an extra blank page at the beginning

It has a page number for some reason.

Fixed in commit 64ec24e.


[WIP] Proposal for OCR Pack/Unpack/Verify(First SoW finished, second Sow required)

Description
This is a proposal following the refactoring of OCR structure to pack and unpack from/to ABI format and verify the signatures.
Most of the code is extracted from Chainlink OCR library. Since the code is in internal package, it's not possible to import it for now, so I have copied the current version and adapt it for cosmos module.
On Chainlink OCR lib, Public/Private key use ECDSA format. Cosmos directly use secp256k1 format. We need to use the right format in order to use the current implementation.
Check x/chainlink/ocr/ocr_test.go to see how it works.
Some tests are broken, some work is needed to have everything working properly.
Related to #90, #125, #126 and #145
Changes

Import useful code from smartcontractkit/libocr
Adapt lib code to be compatible with Comos-Chainlink module
Test for Pack, Unpack and Verify OCR
Adapt Keeper.SetFeedData to unpack and verify OCR (some work needed here)
Adapt some test with the new OCR structure (some work needed here)

OCR data structure:
type OffChainReport struct {
    ReportContext struct {
        ConfigDigest []bytes
        Epoch uint32
        Round uint8
    }
    AttestedReportMany struct {
        AttributedObservation []struct{
            Observation *big.Int // or []byte
            Observer uint32
        }
        Signatures [][]byte
    }
}

OCR ABI encoded format:

_report: bytes
_rs: bytes32[]
_ss: bytes32[]
_rawVs: bytes32

Sources:
https://github.com/smartcontractkit/libocr/blob/d12971936c1289ae0d512723a9e8535ce382ff6d/contract/OffchainAggregator.sol#L528-L540
Report format:

rawReportContext: bytes32
rawObservers: bytes32
observations: int192[]

Sources:
https://github.com/smartcontractkit/libocr/blob/d12971936c1289ae0d512723a9e8535ce382ff6d/offchainreporting/internal/protocol/attested_report.go#L205-L209
RawReportContext format:
11-byte zero padding
16-byte configDigest
4-byte epoch
1-byte round
Sources:
https://github.com/smartcontractkit/libocr/blob/d12971936c1289ae0d512723a9e8535ce382ff6d/offchainreporting/internal/protocol/report_context.go
https://github.com/smartcontractkit/libocr/blob/d12971936c1289ae0d512723a9e8535ce382ff6d/contract/OffchainAggregator.sol#L562-L574
RawObservers format:
Just an array of Oracles ID that have signed the report
Observations format:
Just an array of observations integer
Signature format:
The raw signature is splitted into 3 parts, RS, SS and VS. According to the doc:
* @param _rs ith element is the R components of the ith signature on report. Must have at most maxNumOracles entries
* @param _ss ith element is the S components of the ith signature on report. Must have at most maxNumOracles entries
* @param _rawVs ith element is the the V component of the ith signat

Sources:
https://github.com/smartcontractkit/libocr/blob/d12971936c1289ae0d512723a9e8535ce382ff6d/contract/OffchainAggregator.sol#L531-L533
https://github.com/smartcontractkit/libocr/blob/d12971936c1289ae0d512723a9e8535ce382ff6d/offchainreporting/internal/protocol/attested_report.go#L150-L157

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Yann Guineau seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Live Subscribing/Unsubscribing to streams

https://binance-docs.github.io/apidocs/spot/en/#websocket-market-streams
Binance has this option:

**Live Subscribing/Unsubscribing to streams
The following data can be sent through the websocket instance in order to subscribe/unsubscribe from streams. Examples can be seen below.
The id used in the JSON payloads is an unsigned INT used as an identifier to uniquely identify the messages going back and forth.
In the response, if the result received is null this means the request sent was a success.**
Subscribe to a stream
Request
{
"method": "SUBSCRIBE",
"params":
[
"btcusdt@aggTrade",
"btcusdt@depth"
],
"id": 1
}

Unsubscribe to a stream
Request
{
"method": "UNSUBSCRIBE",
"params":
[
"btcusdt@depth"
],
"id": 312
}

Does your library have such an implementation? (I did not find it), if not, can you add it? Because as I understand it, if, for example, I call subscribeAggregateTrades 20 times for different coins, then I will open 20 connections, and the limit for binance seems to be 5
but I would like to be able to add and remove coins in an already open connection (for example, listen to 100 coins, then add 2 more, or remove 5)
thank you in advance

Not supported right now in the current implementation. Originally this wasn't possible with binance until they added this later on.
I do want to add support for it though, exactly for the same reasons/concerns you've mentioned as well. In fact, the other exchanges I have SDKs for work this way too - open one connection and subscribe to events after connecting. Should be viable to adapt the way I have this working for my other SDKs, but need to evaluate the cleanest way to do this - I'm somewhat tempted to add a second websocket client (v2) dedicated to working a newer way, instead of expanding the ever growing ws client. Not sure yet though...

I have solved it like this
private wsTrades: WebsocketClient;
private subscribeTrades: Set = new Set();
private keyTrades: string = getWsKeyWithContext('spot', 'aggTrade');
in connection method
this.wsTrades = this.client.connectToWsUrl('wss://stream.binance.com:9443/ws/aggTrade', this.keyTrades);
and then the method I need
public async subscribeTrade(symbol: string): Promise {
if (this.subscribeTrades.has(symbol)) return;
const topic = ${symbol.toLowerCase()}@aggTrade;
const message = JSON.stringify({
method: 'SUBSCRIBE',
params: [topic],
id: new Date().getTime(),
});
this.client.tryWsSend(this.keyTrades, message);
this.subscribeTrades.add(symbol);
}


Change Cancel button style on modal to be like in Tabler

Investigate why on hover we change text color (also seems like border-color change doesn't match the one in Lookbook and Tabler too):

In Lookbook text color doesn't change:

In Tabler preview also doesn't change:

Fixed in https://github.com/freeats/freeats/pull/93


Merge release branch of v1.11.0

Routine merging back the release branch into master.
Do not squash!

Forgot that the protected branch settings only enable squash and merge. Closing, will merge manually and push.


pass headers to requests -- fix for #280

Proposed resolution to #280.
Any comments are appreciated.

@ayan-usgs some suggestions dispersed in the code which would make things cleaner and leaner, if possible.

@tomkralidis,
Changes have been made per your suggestions. Please let me know if you have additional comments.

Thanks @ayan-usgs!


Test two programs in the same process

This seems to work correctly. It runs two transactions using two separate APIs running the same program.

The transactions are concurrent.


Will Microsoft Learn replace MVA?

Will Microsoft Learn replace the Microsoft Virtual Academy eventually?

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

ID: 26c7d914-e786-d705-977d-4f5fe050f420
Version Independent ID: 90e0d126-c3ff-00ec-b910-528c64a8c9db
Content: Introducing Microsoft.com/Learn
Content Source: teamblog/introducing-ms-learn.md
Product: team-blog
GitHub Login: @jeffsand
Microsoft Alias: jeffsand

Good question! The fact is that Microsoft already offers great content for learning. The only problem is that you need to know where to find it. Unfortunately it is all scattered throughout the many websites that Microsoft operates. I for instance thought that Microsoft Virtual Academy (MVA) was gonna be replaced by this new thing called "Microsoft Tech Community" (MTC). In fact, there is plenty of content on MVA that is nothing more than a pointer to content on the new MTC site. And now this! Microsoft Learn (ML) or rather Microsoft Docs Learn (MDL) since operated under the Microsoft Docs umbrella. How do all these things fit together?

It would have been good , if at least the section for MVA certificates learning path badges was still available through Microsoft learn just for validation purposes  .

Wish ML offered complete learning path forward MCSD etc certificates.

@MarcoJanse Thanks so much for taking the time to share your Microsoft Learn feedback!
I've assigned this issue to the Learn team to answer all of the questions and requests in this thread.
In the future, make sure to leave feedback and questions in the specific product or page of interest to get the fastest response possible.

Hi, In the past I earned a number of badges on MVA, and now can no longer find them?  Do they still exist - even if retired?

Hi, In the past I earned a number of badges on MVA, and now can no longer find them? Do they still exist - even if retired?

I presume you're referring to the certificates of completion. I'm afraid those are long gone by now.

"To simplify your tech training journey, we are consolidating our learning resources and retiring Microsoft Virtual Academy in phases, beginning on January 31, 2019. Complete site retirement is scheduled for later in 2019. Check your MVA Dashboard frequently for courses you have started that are retiring. To earn your certificates of completion, be sure to finish any courses by January 31, 2019."

This is a paste from an e-mail I received on Mon 1/28/2019.

"To simplify your tech training journey, we are consolidating our learning resources and retiring Microsoft Virtual Academy in phases, with the next phase finishing on April 30, 2019. On that date, learning paths and associated badging are retiring. Complete site retirement is scheduled for later in 2019. Check your MVA Dashboard frequently for courses you have started that are retiring. To earn your certificates of completion, be sure to finish any courses by April 30, 2019."

This is another paste from an e-mail I received on 2/12/2019. As you can see, the final date has been pushed back from January 31 to April 30. That's year 2019, so that's almost a year ago now.
Although it says that you have to "finish any courses" by this date, in order to "earn your certificates of completion". It doesn't exactly say that you can't download the ones you have already earned, or that you won't be able to download them past this date. I think it's presupposed that this applies to all certificates on MVA, old and ones not earned yet at the time of writing. I have personally not visited the site in a very long time, so I would not know for sure. Perhaps there is a hidden mechanism for downloading them even now? Only Microsoft will know that for sure.

Thanks
I do have some of the certificates of completion downloaded and a
transcript - but was actually talking about badges that were offered for
completing a number of courses together.  If I recall, completing 4 courses
for Big Data; 2 or 3 of IOT...   Looking to see if they are available,
since the links are no longer valid: i..e
https://mva.microsoft.com/RewardEvidence.aspx/?key=06GDi-Dt1zSX41t41_jh1A2
https://mva.microsoft.com/RewardEvidence.aspx/?key=Fnkm1dCZZBJUzFP3hfoEHw2
[image: image.png]
On Sun, Mar 1, 2020 at 5:28 PM Samir<EMAIL_ADDRESS>wrote:

Hi, In the past I earned a number of badges on MVA, and now can no longer
find them? Do they still exist - even if retired?
I presume you're referring to the certificates of completion. I'm afraid
those are long gone by now.
"To simplify your tech training journey, we are consolidating our learning
resources and retiring Microsoft Virtual Academy in phases, beginning on
January 31, 2019. Complete site retirement is scheduled for later in 2019.
Check your MVA Dashboard frequently for courses you have started that are
retiring. To earn your certificates of completion, be sure to finish any
courses by January 31, 2019."
This is a paste from an e-mail I received on Mon 1/28/2019.
"To simplify your tech training journey, we are consolidating our learning
resources and retiring Microsoft Virtual Academy in phases, with the next
phase finishing on April 30, 2019. On that date, learning paths and
associated badging are retiring. Complete site retirement is scheduled for
later in 2019. Check your MVA Dashboard frequently for courses you have
started that are retiring. To earn your certificates of completion, be sure
to finish any courses by April 30, 2019."
This is another paste from an e-mail I received on 2/12/2019. As you can
see, the final date has been pushed back from January 31 to April 30.
That's year 2019, so that's almost a year ago now.
Although it says that you have to "finish any courses" by this date, in
order to "earn your certificates of completion". It doesn't exactly say
that you can't download the ones you have already earned, or that you won't
be able to download them past this date. I think it's presupposed that this
applies to all certificates on MVA, old and ones not earned yet at the time
of writing. I have personally not visited the site in a very long time, so
I would not know for sure. Perhaps there is a hidden mechanism for
downloading them even now? Only Microsoft will know that for sure.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/TeamBlogFeedback/issues/130?email_source=notifications&email_token=ACWKH7AYG5TBDNBLUKRAZJDRFLD73A5CNFSM4FZTDOZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENNKVVY#issuecomment-593144535,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACWKH7DH4SU3SK5CJMLADALRFLD73ANCNFSM4FZTDOZQ
.

I see what you mean now. In a perfect world those would have been transferred to the new site during migration. Microsoft Learn (ML) also has a concept of badges (and trophies), just not the ones you earned at Microsoft Virtual Academy (MVA). I think you will find that equivalent badges are available at ML, but you will be expected to perform some tasks in order to claim them. In contrast with MVA, the new ML site content consists mostly of text and interactive guides that you step through. So you will not find many traces of MVA content at the new ML site.
What was previously found under Accomplishments on MVA is now found under Achievements on ML. You have to sign in with your Microsoft account, go to Microsoft (Docs) Learn and create a public profile with a display name.

To get you started, I have compiled a list of links based on the badges you provided. You can have a look at these if you like to claim new badges on these topics. These may not exactly correspond to the contents of the course you took at MVA. There are many more technologies to explore that go under the terms IoT and Big Data. But this short list should be enough to get you started.
Azure DevOps
https://docs.microsoft.com/en-us/learn/browse/?products=azure-devops&roles=developer
IoT
https://docs.microsoft.com/en-us/learn/browse/?products=azure-iot
IoT Central
https://docs.microsoft.com/en-us/learn/browse/?products=azure-iot-central
IoT Edge
https://docs.microsoft.com/en-us/learn/browse/?products=azure-iot-edge
IoT Hub
https://docs.microsoft.com/en-us/learn/browse/?products=azure-iot-hub
SQL Data Warehouse
https://docs.microsoft.com/en-us/learn/browse/?products=azure-sql-data-warehouse
Data Lake
https://docs.microsoft.com/en-us/learn/browse/?products=azure-data-lake
HDInsight
https://docs.microsoft.com/en-us/learn/browse/?products=azure-hdinsight
For what it's worth, if you would like to revisit the old MVA video content, you will now find it over at Channel9. It seems like all video content has been migrated to Channel9. It would be helpful to know the title of the course you took at MVA, and then just do a search for it on Channel9.
For example, I think "Getting Started with Microsoft Big Data" was an MVA course. You will find the video material here: https://channel9.msdn.com/Series/Get-Started-MS-Big-Data
Although it will not earn you a new badge, the video content on Channel9 is a great learning resource, and Microsoft was smart enough to preserve the MVA video content. I have not had time to browse the library, but it seems to me like all MVA videos are there. I even found some video material by MVA authors that predates MVA, i.e. early versions of the video material before it was published on MVA.

Thank you very much for the detailed response.  I already have an account on ML, and a couple of courses completed.   What I understand is that links to the previous badges/trophies no longer exist?
I think you will find that equivalent badges are available at ML, but you will be expected to perform some tasks in order to claim them.
To be clear, "some tasks" means to retake the course(s), correct?  There's no 'import previous' option?

When you put it like that, yes. Although technically it's not so much about retaking the courses, since the new courses don't have a one-on-one correspondence with the new coureses. Well, the new courses are not even courses, they are now called "modules" or "learning paths" rather (where modules serve more like chapters).
Links to previous badges have been invalidated I think. They all just redirect to ML now. At least I have not found a way to import old badges.
These badges (from MVA and ML) are not to be confused with digital badges that are earned as part of a Microsoft certification exam. Those can still be accessed from the "Microsoft Learning" dashboard.

https://www.microsoft.com/learning/dashboard
Although these are also being migrated to Microsoft Learn, so "Learning" will eventually become just "Learn".

Thanks Samir, have my answer.
Q: Are my previous badges accessible?
A: No, they are not


A Couple of questions - textbox text formating, creating a loading effect

Hello there,
Just a couple of questions. This form uses the formless version with about 40 or so questions. This includes any questions that are dynamically inserted via addTags(). With the last question if you want me to take it out of this post and put it in a post label bug I will. I just thought that one post might be a good idea.
First question
What do you think is the best way to add formatting to the textbox? For instance adding a typing effect for phone numbers so the user won't have to add dashes or parentheses. We only want this for one question.  Should it be via flowback? or events?
Second question
I saw a couple of posts on here that if you want to increase the robot "thinking" to make it look like it's loading you need to increase the animation in CSS. However I can't seem to figure out what specifically should be targeted in CSS. I'm using the flowback (maybe it should be events) since it'll only happen after the last important question, and I'm able to target the robot response but not when it's thinking.
Third question
I can't seem to get the dispatacher/custom events to work with the formless. I tried something like what you can do to set up the flowback, but it doesn't work. Here's an example of what I tried. I added the flow back so you can see what I was thinking:
javascript
data.options.submitCallback = onFormlessSubmitted.bind(window);
data.options.flowStepCallback = onFlowBack.bind(window);

data.options.eventDispatcher = dispatcher.bind(window);

conversationalForm = window.cf.ConversationalForm.startTheConversation(data);
document.getElementById("prop-quote-buy-form").appendChild(conversationalForm.el);
dispatcher.addEventListener(cf.FlowEvents.FLOW_UPDATE, function(event){}, false);

formless json
"eventDispatcher":"window.dispatcher",

"submitCallback": "window.onFormlessSubmited",
"flowStepCallback":  "window.onFlowBack",

This was just an assumption since it's not stated on the events page on how you can do it for the formless version.
Thanks.

@amandaIaria

Change input type - yes, use flowStepCallback. You could also hook an onKeyPress listener to the input field and check what question is being answered and the manipulate the input based on keyboard input. Does that make sense?

Have you checked the userInterfaceOptions option in the docs?

Where do you create an instance of EventDispatcher()? I could not find that in the code above.

In general, I can help you better if you can provide a code example. Eg. using Codepen or StackBlitz

And @amandaIaria, I am sorry for the late reply.

I think so. I'll have to dig into it and see if that will do it.

Yes, but that's for a general. I was looking to create a fake loading after a certain amount of questions were answered. There was a question that had mentioned something of the same.

data.options.eventDispatcher = dispatcher.bind(window); As I said I was doing something like what was documented for flowStepCallback/submitCallback

Here is the example I have on the bug one:  https://codepen.io/amandaIaria/pen/arwwqJ

@amandaIaria
2. We do not currently have an option that would allow that. But what you could do is use the event dispatcher and control the flow using flowManager.stop() and flowManager.nextStep()
I have created a crude example for you here: CodePen

I made a few changes. See lines 237-240 and 244. At least you now have an eventDispatcher callback: https://codepen.io/jens-s-gaard/pen/QRYPvB?editors=0010

I hope this helps.

Thanks for that. I'll check it out and see if that helps.


Best way to add columns to an existing Feather file (>10GB) in terms of performance in python

Describe the usage question you have. Please include as many useful details as  possible.
The current recommendation is: "Now that Feather supports zero-copy reads into Arrow, the preferred approach would be to zero-copy read the file, add a column, then write a new Feather file" from https://issues.apache.org/jira/browse/ARROW-1518.
This approach is quite costly. I'm very interested to know a more performant way. Thank you.
P.S. I assume that I don't need to write usage details, as this problem is quite common if large data is stored in this format and needs to be updated.
Component(s)
Other

I don't believe there is a better way today.  The schema is the first thing in the file (so it is not easily modified as extending it will overwrite file contents) and reader currently expects that there is one schema and it applies to all messages in the file.
You could store the extra column in a separate file, and then merge them into a single table in-memory (this merging would be zero-copy).

P.S. I assume that I don't need to write usage details, as this problem is quite common if large data is stored in this format and needs to be updated.

I believe the most common case is that when a new column is added, all of the existing rows are set to some default value.  E.g. in SQL this would be something like ALTER TABLE ADD foo DEFAULT 7.  Commonly this default value is null.
Table formats will often support this sort of thing by noting down the default value in the table metadata.  Then, when scanning existing data, if a column is not present (e.g. this file was uploaded earlier and did not have this column) then the new column is inserted, in memory, at scan time with the default value.


update chatbot readme

A few grammar and other edits. Also added podman commands to provide insight into what the make commands are doing (happy to remove if we think this is overkill) .

LGTM


Bug Fixes; Way Better Code Strucutre; More Stabel / Less Buggy; New Key Support, etc

Hey there Kabir, I really like this project (I found it on your Github after seeing Wing on Producthunt) and I thought I’d help fix some bugs, as well as improve the code structure, add comments and just make Colicious an even site than it already is.
Below is a summary of what I changed / added / improved, to see all the details check each of my four commits in this Pull Request.
Summary of Fixes, Additions and more

Better Code Structure in all files, as well as comments for better readability and understandability
Fixed Github Corner (now links to Github in a new tab, wherever you press on it, also preventing the trigger of a new color being
generated)
Clicking on the hex now copies it without changing the background color / hex in the process;
Removed a bug where you would accidentally select the hex code or the button itself when clicking to find a new color
Added support for the backspace and left arrow key to return the same functionality as the back arrow
Added support for the right arrow key to generate a new color (same as space)

Hope you accept my pull request and we can continue developing Colicious to become better and better over time.

Hey Marc,
Thank you so much, I am glad that you liked Colicious!
I would rate the code quality of Colicious 3/10, and didn't even want to touch it or try to improve it.
I really appreciate that you took the time to do all of this, it really helps :+1:
Thanks,
Kabir Shah

The footer is really messing with the UI, should we remove it completely?

How is it messing it up? @KingPixil

It just clutters the whole UI.

I guess we can keep it :)

Can you show me a screenshot or something? For me it seems fine.

It works fine, its just that the footer is big and bright, maybe we should make it smaller so the user can focus more on Colicious, I have been meaning to do this but I didn't get a chance.

If you want you can make it smaller, I don't have anything against it. I have a few ideas for Colicious, like features, we could try adding, etc. Maybe we can talk about that when we both have time (currently, I need to go sleep, it's 1:39 am)... Would be awesome to know your timezone, maybe we can find a time to talk via appear.in or so. If you ever want to contact me: my mail is<EMAIL_ADDRESS>

Cool, I live in California, and I will contact you when necessary. Thanks :+1:

Ah, nice I live in Berlin... So 9 hours difference it is. We can probably find a time tho and then we can talk about how we could continue developing Colicious.

Cool :)

One thing, I noticed that you added your name to the footer.
I have nothing against you, but I think it is a bit unfair to do this. Is it cool if I remove it? I can add you in the README or something, but its just that I spent a very long time working on this and launching it, getting first on Product Hunt, etc.
:smile: I totally appreciate the work you've done though, and hope that this doesn't hurt you in any way.

Yes, if you wish you can take it out, but it would be amazing if I could at least be in the README, to display that I have helped work on this project.

Awesome! Hope you understand, and I will add you in the README, as you have done a lot of work :)


dnf_provider: be more specific when we provide package

Description
It is really bad to have Chef all of a sudden start using a different provider
on the same OS because you happen to install DNF to play with it.
For RHEL, we know 8 will default to DNF, and 7 defaults to yum, so we specify
that.
Signed-off-by: Phil Dibowitz<EMAIL_ADDRESS>Issues Resolved
Unexpectedly switching package managers

@chef/client-core reviewage
overall i'm okay with this.  if i noodle hard enough on it, its theoretically a breaking change, but i suspect phil is about the only person that really cares about this use case.

I would argue I'm fixing a breaking change. :)

(and yes I need to update the tests just getting the PR up for any commentary)

I can't see anyone out there wanting chef to use DNF on RHEL 7, but technically they could. It would be a really odd edge case.

We will want to eventually, but when we do we will call set_priority_map directly. We backported Rawhide DNF to RHEL7 and worked with RedHat to get those RPMs published, so we'll get there, but it certainly should switch which package manager you used just because it's installed :)


Update to v3.5.0

This should fix the packaging issues on hirsute as well

b844140 is not currently installing:
system76@pop-os:~$ apt policy nvidia-container-runtime
nvidia-container-runtime:
  Installed: (none)
  Candidate: 3.5.0-1~1626361786~21.04~b844140
  Version table:
     3.5.0-1~1626361786~21.04~b844140 1002
       1002 http://apt.pop-os.org/staging/upstream-v3.5.0 hirsute/main amd64 Packages
system76@pop-os:~$ sudo apt install nvidia-container-runtime
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvidia-container-toolkit : Depends: libnvidia-container-tools (>= 1.3.0) but it is not installable
                            Depends: libnvidia-container-tools (< 2.0.0) but it is not installable
E: Unable to correct problems, you have held broken packages.
system76@pop-os:~$ apt policy libnvidia-container-tools
libnvidia-container-tools:
  Installed: (none)
  Candidate: (none)
  Version table:

This is working on Hirsute, but it doesn't build on Focal. Getting this error when trying to build locally:
make[2]: Entering directory '/home/system76/nvidia-container-runtime'
go build -ldflags "-s -w" ./cmd/...
# github.com/nvidia/nvidia-container-runtime/cmd/nvidia-container-runtime
cmd/nvidia-container-runtime/main.go:76:22: undefined: os.ReadFile
note: module requires Go 1.16
make[2]: *** [Makefile:32: binaries] Error 2
make[2]: Leaving directory '/home/system76/nvidia-container-runtime'

That might be tricky since it requires a newer version of Go than focal has. Maybe we could make this for hirsute+ only.


Reorganize & fix NodeGrid component

Hi @SharanRP, i took a look at the repo. I fixed the Node Grid parts that we discussed (now the previous/next buttons work and node filtering is a bit more intuitive as well). Additionally i reorganized the code a bit.
Here are some general points of feedback:

organize code into folders of components (and potentially subfolders), such that different parts are decoupled. Makes maintenance and understanding the code-base much better. See how i put all the NodeGrid-related components into it's own folder. Please try to do this for the other components as well. If some things are used in multiple top-level components, feel free to keep them on the top level.
try to split components into as many logically reasonable subcomponents as possible. If the return of a component contains more than 100+ lines, i would say that it's a good indicator of making sub-components. See e.g. i have made the NodeTable into a separate component.
Don't use memoization/useCallback prematurely. It makes code harder to read/maintain. Let's only use it if it's clear that there is a performance issue.
Prettier would be great to set up (i used it on the files that i modified).
ComputersGrid.jsx I commented/disabled for now, as it seems to duplicate a lot of the code. It should be integrated into the existing Components. E.g. the FilterSidebar could have an additional computers prop?

Let me know if you agree with the changes and feel free to comment. If you agree with everything, feel free to merge directly.

Note: just to say that this code can and should still be improved (many small issues). But the general functionality should be working now.


MouseMode.Confined locks the mouse when the game starts with its window unfocused

Version: Godot 3.2 beta 1
When you start the game while, for example, browsing the web with Chrome, the game starts unfocused; still, the game locks the mouse and you get to focus the window and unfocus again to unlock it.
Input.SetMouseMode(Input.MouseMode.Confined) is in an object's _Ready() in the first scene, if that matters.

Can anyone still reproduce this bug in Godot 3.2.3 or any later release?
If yes, please ensure that an up-to-date Minimal Reproduction Project (MRP) is included in this report (a MRP is a zipped Godot project with the minimal elements necessary to reliably trigger the bug). You can upload ZIP files in an issue comment with a drag and drop.


feat: Enable mirroring non-forked repos

This is a pretty simplistic change to add the ability to mirror repos which are not actually forks of upstream projects. This is useful for demos and testing but it also can be helpful if the public organization actually is the upstream, because the repo contains a project we own, so we're the top of the fork network.
Addresses #251
Readiness Checklist
Author/Contributor

[ ] If documentation is needed for this change, has that been included in this pull request
[x] run npm run lint and fix any linting issues that have been introduced
[x] run npm run test and run tests
[ ] If publishing new data to the public (scorecards, security scan results, code quality results, live dashboards, etc.), please request review from @jeffrey-luszcz

Reviewer

[ ] Label as either bug, documentation, enhancement, infrastructure, maintenance, or breaking

Marking this as a draft because I'm having a hard time validating whether it actually works. Want to run it through CI and get some more 👀 on it


Current Directory/WorkingDirectory is c:\windows\system32 when running an application as admin

Description

Steps To Reproduce

Right click an application for example process explorer (procexp.exe)
View the working directory, notice it's c:\windows\system32

Expected behavior
should be the same directory where the application resides in
Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22000.651
Windows Version
Windows 11 Pro Version	21H2  Windows Feature Experience Pack 1000.22000.651.0
Relevant Assets/Logs
debug_fulltrust.log
debug.log is empty

Is it the same if you do it from explorer?

when using explorer.exe and run as admin, the working directory the expected one which is the directory where executable resides in.

@yaichenbaum

@gave92 can you repro this?

Yes

Merging with #5648


read mixed XDMF

It's possible to meshio.write an XDMF file with more than one type of cell and the file appears to open correctly in ParaView but meshio.read raises a KeyError.
For example, the m.w.e. from #223, minimally updated, and with a read appended:
from numpy import array
from meshio import Mesh, write, read

points = array([[0.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]])
cells = {"line": array([[0, 1], [1, 2], [2, 0]]), "triangle": array([[0, 1, 2]])}
write("foo.xdmf", Mesh(points, cells))
bar = read("foo.xdmf")

raises
…
  File "/home/geordie/.local/share/miniconda3/envs/scikit-fem/lib/python3.7/site-packages/meshio/_xdmf/common.py", line 118, in translate_mixed_cells
    r += xdmf_idx_to_num_nodes[data[r]] + 1
KeyError: 2

And similarly with the example mwe1.xdmf.gz from #539.

Actually the problem isn't with TopologyType="mixed", since

Since #564 #569, read in the top (mixed line–triangle) example is still failing but with a different KeyError:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/geordie/src/meshio/meshio/_helpers.py", line 234, in read
    return format_to_reader[file_format].read(filename)
  File "/home/geordie/src/meshio/meshio/_xdmf/main.py", line 27, in read
    return XdmfReader(filename).read()
  File "/home/geordie/src/meshio/meshio/_xdmf/main.py", line 53, in read
    return self.read_xdmf3(root)
  File "/home/geordie/src/meshio/meshio/_xdmf/main.py", line 239, in read_xdmf3
    cells = translate_mixed_cells(data)
  File "/home/geordie/src/meshio/meshio/_xdmf/common.py", line 119, in translate_mixed_cells
    r += xdmf_idx_to_num_nodes[data[r]] + 1
KeyError: 0

Yes, we just need to increment r one more to skip the number of points in the XDMF Polyline.


Mistypo in the Migration section

[Enter feedback here]
Under the migration section it says:
Data is stored is maintained within Exchange Online, SharePoint Online and Microsoft Teams. Migration processes are handled by the applicable/relevant workloads.
Needs to be changed to
Data is stored in Exchange Online, SharePoint Online and Microsoft Teams. Migration processes are handled by the applicable/relevant workloads. (unless different message with the word maintained is pursued here)

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

ID: fe014ff6-01ac-802d-bd2c-b317bfd134c2
Version Independent ID: fe014ff6-01ac-802d-bd2c-b317bfd134c2
Content: Data Residency for Viva Topics - Microsoft 365 Enterprise
Content Source: microsoft-365/enterprise/m365-dr-workload-viva-topics.md
Service: microsoft-365-enterprise
GitHub Login: @kelleyvice-msft
Microsoft Alias: kvice

@vstanche Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/10710
Once the author approves, the changes will be live.
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @vstanche Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Information Content values broken in UberGraph

All IC values from UberGraph are NaNs: either +Inf, -Inf, +NaN or -NaN (https://api.triplydb.com/s/tZYctbg73).
Tracked at UberGraph at https://github.com/INCATools/ubergraph/issues/132
Example: https://api.triplydb.com/s/hVKIV_tKG

Hey @gaurav, I've been trying to get that fixed over the last couple days, and now it's done!

Thanks, Jim! It's working great now.


<EMAIL_ADDRESS>from<EMAIL_ADDRESS>

Hi, Im trying to install the "@trimble-oss/modus-angular-components --save "
in a project with angular<EMAIL_ADDRESS>This Gives me the error of...
Could not resolve dependency:
ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>Is possible to install Modus in a project with Angular 15.1.1?
Thanks..

hey Ana, we don't currently release for Angular 15.1.1, only 14.1.1.
I'll go ahead and release a version for 15.1.1 and make sure we add 15.1.1 as part of our releases in the future.
@anamarquezz

Thank you!,

hey @anamarquezz is the issue resolved ?

@anamarquezz Please feel free to reopen the issue if it is resolved.
cc @enowak1031 @coliff


exporting logs is not working

I am trying to get to work traces, metrics and logs via AWS Distro for OpenTelemetry Collector (ADOT Collector), using the following Lambda Layer: arn:aws:lambda:us-east-1:901920570463:layer:aws-otel-python-amd64-ver-1-20-0:3 and Python 3.8.
My understanding is that this version includes OpenTelemetry Python v1.20.0 and ADOT Collector v0.35.0 and should support, trace, metrics and logs as experimental.
The issue seems to be that no matter how I configure otlphttp, the collector does not seem to export logs at all.
Steps to reproduce:

create Python 3.8 Lambda
Add Layer arn:aws:lambda:us-east-1:901920570463:layer:aws-otel-python-amd64-ver-1-20-0:3
create collector.yml file with below content in root dir:

extensions:
  sigv4auth:
    region: "us-east-1"
    service: "osis"

receivers:
  otlp:
    protocols:
      http:
        endpoint:

exporters:
  logging:
    loglevel: debug
  otlphttp:
    traces_endpoint: "https://XXXX/v1/traces"
    metrics_endpoint: "https://YYYY/v1/metrics"
    logs_endpoint: "https:///ZZZZ/v1/logs"
    auth:
      authenticator: sigv4auth
    compression: none

service:
  extensions: [sigv4auth]
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [otlphttp,logging]

    metrics:
      receivers: [otlp]
      exporters: [otlphttp,logging]

    logs:
      receivers: [otlp]
      exporters: [otlphttp,logging]

  telemetry:
    metrics:
      address: localhost:8888

Set two environment variables:
AWS_LAMBDA_EXEC_WRAPPER = /opt/otel-instrument
OPENTELEMETRY_COLLECTOR_CONFIG_FILE = /var/task/collector.yml

Update lambda_function.py with below code:

import json
import boto3
from opentelemetry import metrics
from opentelemetry import trace
import logging

tracer = trace.get_tracer("appl.tracer")

meter = metrics.get_meter("appl.meter")

dir_counter = meter.create_counter(
    "dir.calls",
    description="The number of directory calls",
)

@tracer.start_as_current_span("do_work")
def lambda_handler(event, context):

    logging.getLogger().error("This is a log message")

    # This adds 1 to the counter
    result = '0'
    dir_counter.add(1, {"dir.value": result})

    client = boto3.client("s3")
    client.list_buckets()

    client = boto3.client("ec2")
    list = client.describe_instances()

    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

What is the expected behavior?
I would expect to see a similar output in logging for "logs" to what I get for traces and metrics.
What is the actual behavior?
I don't see any log output, only traces and metrics, see below example.
Function Logs
0\nScopeSpans SchemaURL: \nInstrumentationScope opentelemetry.instrumentation.botocore 0.41b0\nSpan #0\n Trace ID : b348c171927592ab5c0d60183c9352f4\n Parent ID : 6cdd27675458cb3f\n ID : f7ce677c8611cddd\n Name : S3.ListBuckets\n Kind : Client\n Start time : 2023-12-28 16:59:09.835148036 +0000 UTC\n End time : 2023-12-28 16:59:10.177052834 +0000 UTC\n Status code : Unset\n Status message : \nAttributes:\n -> rpc.system: Str(aws-api)\n -> rpc.service: Str(S3)\n -> rpc.method: Str(ListBuckets)\n -> aws.region: Str(us-east-1)\n -> aws.request_id: Str(VP5ZCEZERDWAKQ33)\n -> retry_attempts: Int(0)\n -> http.status_code: Int(200)\nSpan https://github.com/open-telemetry/opentelemetry-python/pull/1\n Trace ID : b348c171927592ab5c0d60183c9352f4\n Parent ID : 6cdd27675458cb3f\n ID : c9f69080451e23c4\n Name : EC2.DescribeInstances\n Kind : Client\n Start time : 2023-12-28 16:59:11.253592039 +0000 UTC\n End time : 2023-12-28 16:59:11.735706355 +0000 UTC\n Status code : Unset\n Status message : \nAttributes:\n -> rpc.system: Str(aws-api)\n -> rpc.service: Str(EC2)\n -> rpc.method: Str(DescribeInstances)\n -> aws.region: Str(us-east-1)\n -> aws.request_id: Str(8f664204-f9dd-4e05-9079-1a76caf78c84)\n -> retry_attempts: Int(0)\n -> http.status_code: Int(200)\nScopeSpans https://github.com/open-telemetry/opentelemetry-python/pull/1\nScopeSpans SchemaURL: \nInstrumentationScope appl.tracer \nSpan #0\n Trace ID : b348c171927592ab5c0d60183c9352f4\n Parent ID : 4c77eecbc20517cd\n ID : 6cdd27675458cb3f\n Name : do_work\n Kind : Internal\n Start time : 2023-12-28 16:59:08.037059752 +0000 UTC\n End time : 2023-12-28 16:59:11.793806031 +0000 UTC\n Status code : Unset\n Status message : \nScopeSpans https://github.com/open-telemetry/opentelemetry-python/pull/2\nScopeSpans SchemaURL: \nInstrumentationScope opentelemetry.instrumentation.aws_lambda 0.41b0\nSpan #0\n Trace ID : b348c171927592ab5c0d60183c9352f4\n Parent ID : \n ID : 4c77eecbc20517cd\n Name : lambda_function.lambda_handler\n Kind : Server\n Start time : 2023-12-28 16:59:07.968461942 +0000 UTC\n End time : 2023-12-28 16:59:11.793881653 +0000 UTC\n Status code : Unset\n Status message : \nAttributes:\n -> faas.id: Str(arn:aws:lambda:us-east-1:026459568683:function:AOS_Trace_Demo38)\n -> faas.execution: Str(0058b917-9560-4762-9e51-550b33479b0f)\n","kind":"exporter","data_type":"traces","name":"logging"}
{"level":"info","ts":1703782753.9983406,"msg":"MetricsExporter","kind":"exporter","data_type":"metrics","name":"logging","resource metrics":1,"metrics":1,"data points":1}
{"level":"info","ts":1703782753.9984167,"msg":"ResourceMetrics #0\nResource SchemaURL: \nResource attributes:\n -> telemetry.sdk.language: Str(python)\n -> telemetry.sdk.name: Str(opentelemetry)\n -> telemetry.sdk.version: Str(1.20.0)\n -> cloud.region: Str(us-east-1)\n -> cloud.provider: Str(aws)\n -> faas.name: Str(AOS_Trace_Demo38)\n -> faas.version: Str($LATEST)\n -> faas.instance: Str(2023/12/28/[$LATEST]c2c54d603ad44f4d8ee20f683340f655)\n -> service.name: Str(demo-lambda)\n -> telemetry.auto.version: Str(0.41b0)\nScopeMetrics #0\nScopeMetrics SchemaURL: \nInstrumentationScope appl.meter \nMetric #0\nDescriptor:\n -> Name: dir.calls\n -> Description: The number of directory calls\n -> Unit: \n -> DataType: Sum\n -> IsMonotonic: true\n -> AggregationTemporality: Cumulative\nNumberDataPoints #0\nData point attributes:\n -> dir.value: Str(0)\nStartTimestamp: 2023-12-28 16:59:08.093701828 +0000 UTC\nTimestamp: 2023-12-28 16:59:13.791589871 +0000 UTC\nValue: 1\n","kind":"exporter","data_type":"metrics","name":"logging"}
END RequestId: 0058b917-9560-4762-9e51-550b33479b0f
REPORT RequestId: 0058b917-9560-4762-9e51-550b33479b0f Duration: 6073.88 ms Billed Duration: 6074 ms Memory Size: 128 MB Max Memory Used: 128 MB Init Duration: 1847.31 ms

Hi @fhuthmacher, were you able to figure out a solution for this? I am facing the same issue. In my case, I am trying to use oltphttp exporter to send logs to Grafana Cloud in an AWS Lambda.

Are logs supported in the collector at all??

Hi @fhuthmacher, Auto instrumentation of the logs are not enabled by default as far as I know. So I think, you should enable it explicitly by setting OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED  env var to true: https://opentelemetry.io/docs/zero-code/python/configuration/#logging


vertx-batch

I'd like to propose a new module to work with Batch.
Currently we're building a Data Platform and there is no module to work with Batch processing. Our solution was integrate Vertx/Quartz, but we face some problems, e.g. Vertx has it own worker thread which is different from Quartz.
It would good Vertx provides a specific module for Batch processing. I'm willing to help with or share our experience in our projects. Some stats about our Data Platform:

Collect 15MM hits per day;
We process daily 15 data cluster almost 30MM records;

I hope it was a good feature to be included on Vertx Roadmap.
Best Regards.

@keuller get in touch with us on the vertx-enquiries list (email available on vertx.io)

@vietj Thanks.