What‘s the unit in the code?

Hi alantes,
I have been going though your paper. Very nice paper. However, I have a question about the units in your code. In the paper, your robot is in size of 20mm * 8mm * 0.8mm with Young's modulus and density setting to 84.5kPa and 1860kg/m^3 respectively. However, in your following code, you set length = 20, but Young's modulus = 84.5*10^6 and density = 1860.

So I am thinking which units you are using?

Looking forward to your reply. Thanks for advance.

Hi, Junang-Wang! Thank you for interest and sorry for the confusion. The work went through many trials and errors and it was not maintained neatly throughout the process. And many apologies for that I did not have enough time and energy to clean up my code before publishing since I have already graduated and get occupied by many other commitments.
Any way, strictly speaking, I did not use standard SI units but rather a scaled version. As you may know, many numerical softwares (like Abaqus subroutines) will not qualify the units you use, meaning that you do not have to adopt standard SI (though I believe it will be better to use SI, of course).
In my case, heights and lengths are in the units of mm.
Density of the materials is 1860 kg/m^3 = 1.86 * 10^6 g/(1000 mm)^3 = 1.86 * 10^-3 g/ mm^3, which was set in my programs to be 1.86e3/1000 = 1.86. So, you can see that my unit of mass is 10^-3 g.
Gravitational acceleration was -9.80665e0 * 1000. This is because 9.8 m/s^2 = 9.8 * 10^3 mm/s^2.
Like wise, Young's modulus is 84.5kPa = 84.5 * 10^3 * N/m^2 = 84.5 * 10^3 * (kg*m/s^2)/(m^2) = 84.5 * 10^3 * kg/(m * s^2) = 84.5 * 10^3 *10^6 * (10^-3 g)/(10^3 mm * s^2) =  84.5 * 10^6 * (10^-3 g)/(mm * s^2) = 84500000  (10^-3 g)/(mm * s^2).
In any cases, the units of time were not scaled.
If I recollect it correctly, I hoped to avoid extremely small numbers in Python in the first glance. For example, if I use SI, the small scale of the robots will make the mass of them very small, which might lead to some numerical problems in Python. But I am not sure if it is still the case. If you are willing to, you can turn all of the numbers into SI and have a try.

Hi, Junang-Wang! Thank you for your interest and sorry for the confusion. The work went through many trials and errors and it was not maintained neatly throughout the process. And many apologies for that I did not have enough time and energy to clean up my code before publishing since I have already graduated and get occupied by many other commitments.
Anyway, strictly speaking, I did not use standard SI units but rather a scaled version. As you may know, many numerical softwares (like Abaqus subroutines) will not qualify the units you use, meaning that you do not have to adopt standard SI (though I believe it will be better to use SI, of course).
In my case, heights and lengths are in the units of mm.
Density of the materials is 1860 kg/m^3 = 1.86 * 10^6 g/(1000 mm)^3 = 1.86 * 10^-3 g/ mm^3, which was set in my programs to be 1.86e3/1000 = 1.86. So, you can see that my unit of mass is 10^-3 g.
Gravitational acceleration was -9.80665e0 * 1000. This is because 9.8 m/s^2 = 9.8 * 10^3 mm/s^2.
Like wise, Young's modulus is 84.5kPa = 84.5 * 10^3 * N/m^2 = 84.5 * 10^3 * (kg*m/s^2)/(m^2) = 84.5 * 10^3 * kg/(m * s^2) = 84.5 * 10^3 *10^6 * (10^-3 g)/(10^3 mm * s^2) = 84.5 * 10^6 * (10^-3 g)/(mm * s^2) = 84500000 (10^-3 g)/(mm * s^2).
In any cases, the units of time were not scaled.
If I recollect it correctly, I hoped to avoid extremely small numbers in Python in the first glance. For example, if I use SI, the small scale of the robots will make the mass of them very small, which might lead to some numerical problems in Python. But I am not sure if it is still the case. If you are willing to, you can turn all of the numbers into SI and have a try.
Let me know if you have other questions.

Hi, alantes! Thank you for your reply, now I understand the unit problem.
I also have some other questions regarding your code. In your code, damping constant (denoted as "nu")is setting to 150. However, I am woundering how should I choose the appropriate damping constant in my system, is there any standard poccess or guideline I can follow?
The other equstion, quoting from your paper:
"As for Cosserat rod models, we noticed that the PyElastica numerical package had difficulties dealing with small scale soft robots",  "We found that if we increased the density of the robots while at the same time inverse-proportionally decreased gravitational acceleration, the gravity as well as deformation of robots remain the same, and timesteps can be set to larger values. In our case, when we set density to be 10.5 times larger and gravity acceleration to be 10.5 times smalle", so how should I choose the proper scale number? And does this approximation effectively reduce the Young's module? What do you think?
I appreciate your help in advance.

To the best of my knowledge, no, there are not standardized procedures of choosing damping coefficient. You can check this thread for more discussions: https://www.researchgate.net/post/Damping-ratio-is-always-the-parameter-that-determine-with-greatest-degree-of-uncertainty

In my opinion, the difficulties of calculating motion quantities of small-scale rods in PyElastica is not something well expected or examined. As I might have mentioned in my paper, a possible reason for the problem is that small-scale dimensions make moments extremely small, and as a result of this, in my experiments with PyElastica, after several steps of calculating the velocities will soon became extremely large and the program will generate NaN numbers. You can consider that there might be a curve describing the difficulties of calculating, and the x-axis is how small your models are.  I do not mean to attribute this as a bug of PyElastica because there will be tons of unexpected conditions when you are developing a large and comprehensive numerical software. As a researcher using the public repository for unregular purposes, I believe we should try to figuring out tricks to circumvent the limitations of the package. So, my way was to scale acceleration, and in my own experiments I found that 10.5 times larger will take the total computational time to what I can afford, and did not perform large tests to the convergence performance of PyElastica, i.e., the "curve" I described above. Therefore, I do not have a standardized procecesure for you to choose the scale factor. Sorry. However, as a general suggestion, the smaller your models are, the larger scale factor you should choose.

I do not think Young's modules are reduced, nor do the elastic forces. Any details about why you think so?

1.) To the best of my knowledge, no, there are no standardized procedures of choosing damping coefficient. You can check this thread for more discussions: https://www.researchgate.net/post/Damping-ratio-is-always-the-parameter-that-determine-with-greatest-degree-of-uncertainty
2.) In my opinion, the difficulties of calculating motion quantities of small-scale rods in PyElastica is not something well expected or examined. As I might have mentioned in my paper, a possible reason for the problem is that small-scale dimensions make moments extremely small, and as a result of this, in my experiments with PyElastica, after several steps of calculating the velocities will soon became extremely large and the program will generate NaN numbers. You can consider that there might be a curve describing the difficulties of calculating, and the x-axis is how small your models are.  I do not mean to attribute this as a bug of PyElastica because there will be tons of unexpected conditions when you are developing a large and comprehensive numerical software. As a researcher using the public repository for unregular purposes, I believe we should try to figuring out tricks to circumvent the limitations of the package. So, my way was to scale acceleration, and in my own experiments I found that 10.5 times larger will take the total computational time to what I can afford, and did not perform large tests to the convergence performance of PyElastica, i.e., the "curve" I described above. Therefore, I do not have a standardized procecesure for you to choose the scale factor. Sorry. However, as a general suggestion, the smaller your models are, the larger scale factor you should choose.
3.) I do not think Young's modules are reduced, nor do the elastic forces. Any details about why you think so?

Thanks for you reply, Alantes. Your discussion helps me a lot.
(1) Is the only method for determining damping constant through a manul comparsion of experiments and simulations and manually picking a number?
(2) I agree with your option that after several steps of evaluation, the velocities of small scale rods elements will become extremely large. Your explanation is reasonable.
(3) Let's say If one were to makes density 10.5 times larger. For an unshearable rod, from Newton's law, F=m* a, and the stress F = E \sigma, where m* is scale mass(10.5times), E is Young's modulus and \sigma  is strain. So that , m*a = E \sigma, and acceleration a and strain \sigma are given be current state which is not affected by scale mass. So, for my perspective, if one make density 10.5 times large, it will effectively scale down Young's modulus. I am not sure if my logic is current. What do you think?

Sorry. I am not an expert in this field, so I may not provide you with a definite answer.
Thanks.
When mass is scaled, gravitational acceleration will be scaled inversely, and the gravitational force will remain the same. So, m*g will not change. And you agreed that strain \sigma will not be affected by scaled mass, then Young's modulus will stay the same.

I understand m* g will not change. But I am discussing about total force rather than only gravity. From the Newton law, F_total = F_externel + F_gravity = m* (a_externel + g) = E \sigma. The contribution of gravity may not affect Young's modulus but the externel part affects.

In static and equilibrium cases, a_external = 0, meaning that the stable deformations will the the same as the unscaled version. In dynamic cases, the increased mass will increase the inertia of the robots, and acceleration will be smaller than the unscaled version. Young's modulus, as is set in the programs, stays the same. I hope it is clear now.

rnal = 0, meaning that the stable deformations will the the same as the unscaled version. In dynamic cases, the increased mass will increase the inertia of the robots, and acceleration will be smaller than the unscaled version. Young's modulus

I think ma = E \sigma may not be appropriate. ma represents the total effect of internal forces and external forces. And I am doubting that you may have assumed a to be constant, which makes you feel that E will change with m*a. But a is not a constant. It is E \sigma, along with other forces, that determines a.

Thanks man. It is much clear now.


Mhd/200 2 release

This updates version numbers for the 200.2 release.
@yo1995 @dfeinzimer - Anything I missed?

Does the test runner need to have a version number?

It can't hurt, plus it will help determine what version people are running if there are any issues.


Lidar sensor possibly wrongly modeled in carla

While using Carla 0.91 (and also in previous versions) I observed that there are always some dead angles in the Lidar data as shown in the image below from pygame window (manual_control.py):

Others have also noticed the problem as in #995.
I tried to configure the settings parameters of Lidar sensor but could not resolve it. But I noticed that keeping the rotation frequency constant (10Hz) if I increased points_per_second  the dead angle reduces while it is more if the points_per_second are low.
Also dead angles varies on different system with same configuration.
Upon checking the code RayCastLidar.cpp:
  const float CurrentHorizontalAngle = LidarMeasurement.GetHorizontalAngle();
  const float AngleDistanceOfTick = Description.RotationFrequency * 360.0f * DeltaTime;
  const float AngleDistanceOfLaserMeasure = AngleDistanceOfTick / PointsToScanWithOneLaser;

  LidarMeasurement.Reset(ChannelCount * PointsToScanWithOneLaser);

  for (auto Channel = 0u; Channel < ChannelCount; ++Channel)
  {
    for (auto i = 0u; i < PointsToScanWithOneLaser; ++i)
    {
      FVector Point;
      const float Angle = CurrentHorizontalAngle + AngleDistanceOfLaserMeasure * i;
      if (ShootLaser(Channel, Angle, Point))
      {
        LidarMeasurement.WritePoint(Channel, Point);
      }
    }
}

The for loop is from 0 to PointsToScanWithOneLaser which explains the cause of dead angle varying with points_per_second. (number of points get over before we complete 360 degree angle)
It should be something like:
delta_angle = 360/PointsToScanWithOneLaser

  for (auto Channel = 0u; Channel < ChannelCount; ++Channel)
  {
    for (auto i = 0u; i < PointsToScanWithOneLaser; ++i)
    {
      FVector Point;
      const float Angle = CurrentHorizontalAngle + delta_angle;
      if (ShootLaser(Channel, Angle, Point))
      {
        LidarMeasurement.WritePoint(Channel, Point);
      }
    }
}

I kindly request to fix this issue as many of us (autonomous vehicle researchers) are using carla because of it's support of lidar sensor.

@anshulpaigwar are you running your simulation in benchmark mode?
You should run the simulation in multiples of your Lidar Frequency to get a full 360 degree in one reading.
Alternatively, you could cache the Lidar reading to get a full 360 degree view.
The speed at which the server runs in non benchmark mode can vary a lot on a variety of factors.

@nsubiron could you help with this issue of lidar sensor I still haven't been able to find a solution?

Hi @anshulpaigwar, as @YashBansod proposed you should run the simulator at fixed time-step ("benchmark" mode: ./CarlaUE4.sh -benchmark -fps=X). Check out #835 for more info.

@YashBansod , how did the cache the Lidar readings?


Issue65 validate all examples

Hi @Echsecutor ,
ALL XML events and all but one JSON/JSON-LD files (--> came across two things to be discussed with José/Mark - so this effort was also valuable for the standardisation work) are now conformant to the respective schemas (still WIP though). Just in case you would like to go on...
I will adjust the file in question (epcisDocWithXMLstartTagAndErrorDeclaration.jsonld) as soon as the schema is finalised.
Kind regards,
@RalphTro

Hi @Echsecutor,
Made quite a number of adjustments of namespace declarations (I am not 100% sure if esp. the json files are already correct - the current version of the JSON schema does not seem to take ns declarations into consideration yet (alerted José to this) and especially replaced inline declarations with header-based one. Additional/superflous ns decalarations can IMHO be disregarded, so we can leave them in.

fixes https://github.com/RalphTro/epcis-event-hash-generator/issues/37


Error when running TransformMatchingShapes sample: ParseError: no element found: line 1, column 0

Description of bug / unexpected behavior
New to manim. When I try the sample in TransformMatchingShapes sample page, it failed with error: ParseError: no element found: line 1, column 0.
Expected behavior
Should render video as in the sample page
How to reproduce the issue
Code for reproducing the problem
Here is my code:
```python
from manim import *
class SquareToCircle(Scene):
def construct(self):
circle = Circle()  # create a circle
circle.set_fill(PINK, opacity=0.5)  # set color and transparency
    square = Square()  # create a square
    square.rotate(PI / 4)  # rotate a certain amount

    self.play(Create(square))  # animate the creation of the square
    self.play(Transform(square, circle))  # interpolate the square into the circle
    self.play(FadeOut(square))  # fade out animation

class Anagram(Scene):
def construct(self):
src = Text("the morse code")
tar = Text("here come dots")
self.play(Write(src))
self.wait(0.5)
self.play(TransformMatchingShapes(src, tar, path_arc=PI/2))
self.wait(0.5)
And here is the command line I tried to run the second scene:
```shell
manim start.py Anagram

Logs
Terminal output
```
https://pastebin.com/MyfenftC
```

System specifications
System Details

OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)): macOS 14.4
RAM: 32GB
Python version (python/py/python3 --version): 3.11.8
Installed modules (provide output from pip list):

Package                Version
---------------------- --------
certifi                2024.2.2
charset-normalizer     3.3.2
click                  8.1.7
click-default-group    1.2.4
cloup                  2.1.2
colour                 0.1.5
Cython                 3.0.9
decorator              5.1.1
glcontext              2.5.0
idna                   3.6
isosurfaces            0.1.0
manim                  0.18.0
ManimPango             0.5.0
mapbox-earcut          1.0.1
markdown-it-py         3.0.0
mdurl                  0.1.2
moderngl               5.10.0
moderngl-window        2.4.5
multipledispatch       1.0.0
networkx               3.2.1
numpy                  1.26.4
packaging              24.0
Pillow                 9.5.0
pip                    24.0
pip-review             1.3.0
pycairo                1.26.0
pydub                  0.25.1
pyglet                 2.0.14
Pygments               2.17.2
pyobjc-core            10.2
pyobjc-framework-Cocoa 10.2
pyrr                   0.10.3
requests               2.31.0
rich                   13.7.1
scipy                  1.12.0
screeninfo             0.8.1
setuptools             69.2.0
skia-pathops           0.7.4
srt                    3.5.3
svgelements            1.9.6
tqdm                   4.66.2
typing_extensions      4.10.0
urllib3                2.2.1
watchdog               3.0.0
wheel                  0.43.0

LaTeX details

LaTeX distribution (e.g. TeX Live 2020): mactex-2024.0312
Installed LaTeX packages:

FFMPEG
Output of ffmpeg -version:
ffmpeg version 6.1.1 Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.1.1_5 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
libavutil      58. 29.100 / 58. 29.100
libavcodec     60. 31.102 / 60. 31.102
libavformat    60. 16.100 / 60. 16.100
libavdevice    60.  3.100 / 60.  3.100
libavfilter     9. 12.100 /  9. 12.100
libswscale      7.  5.100 /  7.  5.100
libswresample   4. 12.100 /  4. 12.100
libpostproc    57.  3.100 / 57.  3.100

Additional comments

Since this code runs fine on the documentation bot ("make interactive") and on my machine, something must be wrong with your installation. The error seems to occur directly when the code creates the first Text() object, so I assume that even the following code will produce the same error and that it is not at all related to TransformMatchingShapes()
Did you get any error messages during installation?
Does the following code work?
class texting(Scene):
    def construct(self):
        src = Text("the morse code")
        self.add(src)

What happens when you run manim checkhealth

@uwezi Thanks a lot for your reply!

You're right. The simple testing scene meets the same error.

manim checkhealth seems OK at th first part, but got segment fault while rendering test scene:

❯ manim checkhealth
Manim Community v0.18.0

Python executable: /Users/neo/.envs/manim/bin/python

Checking whether your installation of Manim Community is healthy...
- Checking whether manim is on your PATH ... PASSED
- Checking whether the executable belongs to manim ... PASSED
- Checking whether ffmpeg is available ... PASSED
- Checking whether ffmpeg is working ... PASSED
- Checking whether latex is available ... PASSED
- Checking whether dvisvgm is available ... PASSED

No problems detected, your installation seems healthy!
Would you like to render and preview a test scene? [y/N]: y
[03/24/24 11:18:56] INFO     Caching disabled.                                               cairo_renderer.py:68
                    INFO     Animation 0 : Partial movie file written in                 scene_file_writer.py:527
                             '/Users/neo/Code/MathVis/manim/media/videos/1080p60/partial
                             _movie_files/CheckHealthDemo/uncached_00000.mp4'
                    INFO     Caching disabled.                                               cairo_renderer.py:68
[03/24/24 11:18:57] INFO     Animation 1 : Partial movie file written in                 scene_file_writer.py:527
                             '/Users/neo/Code/MathVis/manim/media/videos/1080p60/partial
                             _movie_files/CheckHealthDemo/uncached_00001.mp4'
                    INFO     Caching disabled.                                               cairo_renderer.py:68
[03/24/24 11:18:58] INFO     Animation 2 : Partial movie file written in                 scene_file_writer.py:527
                             '/Users/neo/Code/MathVis/manim/media/videos/1080p60/partial
                             _movie_files/CheckHealthDemo/uncached_00002.mp4'
                    INFO     Caching disabled.                                               cairo_renderer.py:68
                    INFO     Animation 3 : Partial movie file written in                 scene_file_writer.py:527
                             '/Users/neo/Code/MathVis/manim/media/videos/1080p60/partial
                             _movie_files/CheckHealthDemo/uncached_00003.mp4'
[1]    89054 segmentation fault  manim checkhealth
/opt/homebrew/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/multiprocessing/resource_tracker.py:254: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '

And, 4 partial rendered video files (like uncached_00000.mp4) in my media/videos/1080p60/partial_movie_files/CheckHealthDemo/ sub directory.

Have you checked your line endings ?
Maybe your editor is configured in a weird way that python just refuses to parse.

Using google translate
I had the same problem and managed to solve it, I use archlinux linux, while testing my animation, when using the command in the terminal to render, I realized that I had chosen the wrong quality, I wanted in 1080p, but I had chosen in the command -pql, What did I do? I used ctrl+c to abort the rendering, but right at the beginning of my animation there was some text, which I think when it started rendering and I canceled it must have broken the text's svg.
So I just deleted all the text in the "media/text" folder, and there are other formats there, video, text, text, etc.
I rendered and started loading the video without any problems.

@rianpatricio Thanks for sharing! My issue was gone and I considered it's due to some macOS upgrade (and solved some compatible issue in system libs).


Price API

Why you're using http://coinmarketcap.northpole.ro/ and not the official https://coinmarketcap.com/api/?
At the moment the ArkClient is showing a wrong price:
http://coinmarketcap.northpole.ro/api/v5/ARK.json - 0.000504466
https://api.coinmarketcap.com/v1/ticker/ark/ - 0.00060169

Agree we should migrate to official API. At the time i coded it, official API was not available. That is why http://coinmarketcap.northpole.ro/ created it.
Fix

Fixed #408


Toggle button no longer appearing on VSO stories

The start timer button is no longer appearing in Visual Studio Online. see screenshot below (normally it is near the circled area).

I don't know if you guys changed anything, maybe it was a caching issue on my end, but it's fixed now.


Backend service readme

Take #2
Create a backend service tutorial README.md to help new users configure the backend service for Hive metadata extraction.
Add links to the main README.md to link to the google groups.

@dmoore247 thank for the contribution. I will add one more troubleshoot SQL to this README.md

Looks good :)


[CommandBar Management] Number of button not accessible

From one of my scenario i want to make sure all buttons in the top ribbon (command bar) on different entities are displayed.
So far i try to get acces through:
xrmApp.CommandResults.Count
But it doesn't displayed the result i expected because it's not the commandBar button per se.
I also tried using xrmApp.CommandBar. but I can't find anything related to count the number of button.
By going deeper i can't find a property or a specific function for it.
Do you know if we can do it or so far it's only with selenium? (which is fine for me)
Thanks,

Hello @Haywaii
There is not currently a Count method on the CommandBar - however this is something we could look at adding. I don't think it would be too difficult to add based on the existing logic for targeting CommandBar buttons in ClickCommand.
For now, you would need to do handle this with raw selenium code. Marking this as a feature enhancement for consideration.
Thanks,
Tyler

No problem @TYLEROL , thanks for your quick answer again.
It works fine with selenium code ;)
I don't think it will be too difficult either. I am busy with my automation but once it's in good shape i can take a look to add some enhancement if you are keen to :)

@Haywaii - I've introduced a new method for UCI and WebClient under CommandBar.GetCommandValues(bool checkMoreCommandsMenu = false), currently in the develop branch via PR #591 .
This method will return a list of values from the command bar, with an option flag to return values from the more commands menu if desired. You should be able to use the Count property against the returned list of values.
Please let us know if you have any issues with this set of changes. I've assigned the milestone to the PR as a rough estimate for when this change should be merged into the releases/v9.1 branch.
Warm Regards,
Tyler

Hi @TYLEROL
Thanks for the update! I will test it and let you know how it goes.

Hi @TYLEROL,
"CommandBar.GetCommandValues" is really helpful to get primary menu available on commandbar,  I need to check with submenu from available ribbon buttons also, could you please suggest is there any way for it.
Thanks,
Raji


src/benchmark/processes.py spliting into package

the file src/benchmark/processes.py is overloaded with fucntionality, especially considering addition of openvino python and c++ benchmark launchers.
Our suggestion is to split this file to separate files and handle them as package.
we can have a 'frameworks' package containing sub-folders for openvino, tensorflow, intel caffe processes, and in near future - onnxruntime.
A factory/registry pattern will be used to create needed objects.
Such approach will simplify code maintenance and addition of new launchers.
We can handle the refactoring as well.

@nberezina, поддерживаю.

@valentina-kustikova назначьте на меня issue пожалуйста


[Backup] az backup vault: Add support for the public-network-access flag and update recoveryservices SDK version

Related command

az backup vault create
Description

(Tested using the recoveryservices SDK version 2022-09-30-preview, will be released with SDK version [to be confirmed]) The PR adds support for the updated recoveryservices SDK that specifies a public-network-access flag for vaults, impacting vault creation/editing/display. Vault display (az backup vault show) is handled by the existing code, we need to modify behaviour of vault create/delete (Both handled by az backup vault create).
Testing Guide

az backup vault show

When querying for a vault, under "properties" we should see the "publicNetworkAccess" field.

az backup vault create

With the updated SDK and without the changes, the vault cannot successfully be created: we get an "InvalidRestApiParameter" issue.
When creating a new vault, by default the value will be "Enable". After creation we can verify this by checking the properties as specified in az backup vault show testing steps
We can also set the flag manually: if we set it to "Disable", the result will be "publicNetworkAccess: Disabled", and likewise for "Enable".
This can also be used to edit vaults within certain criteria (check: https://learn.microsoft.com/en-us/azure/backup/private-endpoints-overview#before-you-start).

History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

Backup

E           AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_wl_sql_crr.yaml') in your current record mode ('once').
E           No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sql-clitest-rg/providers/Microsoft.RecoveryServices/vaults/sql-clitest-vault?api-version=2022-10-01>) was found.
E           Found 4 similar requests with 1 different matcher(s) :
E
E           1 - (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sql-clitest-rg/providers/Microsoft.RecoveryServices/vaults/sql-clitest-vault?api-version=2022-04-01>).
E           Matchers succeeded : ['method', 'scheme', 'host', 'port', 'path']

Please note that the api-version of Microsoft.RecoveryServices has been upgraded from 2022-04-01 to 2022-10-01. Please re-record the yaml files of failed tests

Hi @zhoxing-ms , all checks have passed now. Please approve the merge, thanks.


Trying to create tensor with negative dimension

File "/project/train/src_repo/YOLOX/yolox/core/trainer.py", line 158, in before_train
occupy_mem(self.local_rank)
│          │    └ 0
│          └ <yolox.core.trainer.Trainer object at 0x7f52788cb2e8>
└ <function occupy_mem at 0x7f522cde9d90>
File "/project/train/src_repo/YOLOX/yolox/utils/metric.py", line 38, in occupy_mem
x = torch.cuda.FloatTensor(256, 1024, block_mem)
│     │    │                      └ -106
│     │    └ <class 'torch.cuda.FloatTensor'>
│     └ <module 'torch.cuda' from '/usr/local/lib/python3.6/dist-packages/torch/cuda/init.py'>
└ <module 'torch' from '/usr/local/lib/python3.6/dist-packages/torch/init.py'>
RuntimeError: Trying to create tensor with negative dimension -106: [256, 1024, -106]

Remove -o in your training command

Remove -o in your training command

ok，tks！

tks for your help!


typo on Oracle Connection Manager 'If you wanna'

Should be 'If you want to'

@mcgolledge -- thank you for catching this.  Which learn.microsoft.com article is this in?

@WilliamAntonRohm The title is "Oracle Connection Manager"  SQL  SSIS  Microsoft connector for Oracle

@mcgolledge -- thanks for clarifying!  I am updating this article.


Does this support displaying the Fields of a class too?

I have many classes that all use Fields, does this support it?
Thank you!

I have many classes that all use Fields, does this support it? Thank you!

You can implement an ICustomTypeDescriptor to wrap your class, and then return your own PropertyDescriptor.


How to customize the code style?

Thank you for asking a question!
If you just want to change the colors, you can do so by specifying your StyleDictionary as an argument to the MarkdownPipelineBuilder.UseColorCodeWpf method.
The StyleDictionary is like this.


Change KES signature format to be more compact

Change KES signature representation and serialization format.
This is so that we can reduce the size of KES signatures.
Previously, we stored in the signature:

At the leaf node level (SingleKES):

The DSIGN signature of the leaf

At the branch node level (SumKES):

The signature of the 'active' child node (the subtree containing the current period)
The DSIGN VK's of both child nodes

This means that for a Merkle tree N levels deep, we store 1 DSIGN signature + 2N-1 DSIGN VK's.
In the new implementation, we store:

At the leaf node level (SingleKES):

The DSIGN signature of the leaf
The DSIGN VK for that signature

At the branch node level (SumKES):

The signature of the 'active' child node
The DSIGN VK for the 'inactive' child node

This representation reduces storage size to 1 DSIGN signature + N DSIGN VK's.
For performance reasons, we now split the verification process into two steps:

verifyDSIGN on the 'sigma' part of the signature. We include the VerKey for the leaf node in the signature itself, and just verify against that. This is not sufficient as validation on its own, hence...
...recursively calculate the root VerKey along the Merkle path down to the leaf node, and compare it against the VerKey to verify against.

The advantage of this is that we only ever calculate the hashes we
absolutely need, and avoid duplicate calculation efforts.
In order to facilitate migrating from the old representation to the new one,
the old SumKES has been left (mostly) unchanged, and the new implementation has
been added under the name CompactSumKES (with CompactSingleKES as the leaf
node type).

@dcoutts , if you don't have cycles to review this, who should look into it? Thanks

I'll review


pyzmq doesn't build cleanly on windows 7 64b

Building the current head of zeromq (or the zeromq-2.1.7 release) on Windows 7 64-bit using VS2010 doesn't yield a libzmq.lib in the lib/ directory.  If I place it there manually, I get this output after running "python setup.py configure --zmq=..\zeromq-2.1.7" in the pyzmq folder:
running configure
******************************************
Configure: Autodetecting ZMQ settings...
    Custom ZMQ dir:       ..\zeromq-2.1.7
<b>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -I..\zeromq-2.1.7\include -Izmq\utils -Izmq\core -Izmq\devices /Tcdetect\vers.c /Fodetect\vers.obj
vers.c
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe /nologo /INCREMENTAL:NO /LIBPATH:..\zeromq-2.1.7\lib libzmq.lib detect\vers.obj /OUT:detect\vers.exe /MANIFESTFILE:detect\vers.exe.manifest
vers.obj : error LNK2019: unresolved external symbol __imp_zmq_version referenced in function main
detect\vers.exe : fatal error LNK1120: 1 unresolved externals</b>
Fatal:
    Failed to compile ZMQ test program.  Please check to make sure:

    * You have a C compiler installed
    * A development version of Python is installed (including header files)
    * A development version of ZeroMQ >= 2.1.0 is installed (including header files)
    * If ZMQ is not in a default location, supply the argument --zmq=<path>
******************************************

Had the same problem as the OP when building with Visual Studio 2013 x64 (see below). He mentions "dropping the .lib" but I'm not clear what he means by this. Basically I'm following the instructions from http://zeromq.org/docs:windows-installations.
Can anyone give me a hint what to do next?
Configure: Autodetecting ZMQ settings...
    Custom ZMQ dir:       ..\libzmq
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -I..\libz
\include -Izmq\utils -Izmq\backend\cython -Izmq\devices /Tcbuild\temp.win-amd64-2.7\Release\scratch\vers.c /Fobuild\te
.win-amd64-2.7\Release\scratch\vers.obj
vers.c
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\link.exe /nologo /INCREMENTAL:NO /LIBPATH:..\libzmq\l
 libzmq.lib build\temp.win-amd64-2.7\Release\scratch\vers.obj /OUT:build\temp.win-amd64-2.7\Release\scratch\vers.exe /
NIFEST /MANIFESTFILE:build\temp.win-amd64-2.7\Release\scratch\vers.exe.manifest
vers.obj : error LNK2019: unresolved external symbol __imp_zmq_version referenced in function main
build\temp.win-amd64-2.7\Release\scratch\vers.exe : fatal error LNK1120: 1 unresolved externals

error: command '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\link.exe"' failed with exit status 1
0

Fatal: Falling back on bundled libzmq, but setup.cfg has explicitly prohibited building the libzmq extension.

Never mind I'd placed the wrong libzmq.lib in the libzmg/bin directory Q-{ . dumpbin to the rescue!


missing builtin, attribute and static in ScriptKeywords

Some specifiers like writeonly and others are described in ScriptKeywords, but attribute, builtin and static are missing there. I added some notes below
attribute
The attribute keyword can be used like
struct A {
  import attribute int value;
  import int get_value(); // $AUTOCOMPLETEIGNORE$
  import void set_value(int value); // $AUTOCOMPLETEIGNORE$
};

builtin
We use builtin to prevent a managed struct to be created without a factory method or other method, that is usually in the Engine or in a Plugin.
IDEA I noticed it would be nice to be able to restrict to only factory method when it's outside the script unit (not in the asc/ash pair that contains the struct), because them we could also use this in script modules.
static
used together with things that can be imported in a struct, to specify you can call it without requiring an instance of the object. You can restrict it to appear only in the static variant of the auto-complete with a special comment.
managed struct B {
  import static B* Create(); // $AUTOCOMPLETESTATICONLY$
  int magic;
}

IDEA I noticed it would be nice to be able to restrict to only factory method when it's outside the script unit (not in the asc/ash pair that contains the struct), because them we could also use this in script modules.

AGS currently does not have a strict concept of "script unit", in theory any header (and even other src) may be included into any script. This is especially going to be a problem with standalone compiler, which does not know anything about the project structure and ash/asc pairing.

Ah, ok. I noticed this when testing the PR on pointers in managed structs, that I wanted a factory Create() static method in my managed struct, as the only way to create them, to make sure the fields that were pointers to other structs to also be initialized. This saves me from checking for null when using it's members.

Ah, ok. I noticed this when testing the PR on pointers in managed structs, that I wanted a factory Create() static method in my managed struct, as the only way to create them, to make sure the fields that were pointers to other structs to also be initialized. This saves me from checking for null when using it's members.

I think you may mark them as writeprotected?

This saves me from checking for null when using it's members.

Perhaps you could mark them as writeprotected, and assume they are always set? This may cause module user to get errors if they use new, but they will remember eventually, and there will be less checks in code.


MultiSigWallet, TokenHolder, Internal Actor, Branded Token Contracts

Resolves

Session Management in TokenHolder Contract.
Add TokenHolder Utility Functions called by TokenRules
Update Branded Token Contract Related with TokenHolder
Multisig wallet implementation for tokenholder[WIP]
Device/Owner Management

travis test has been fixed in #4 PR

Update:
Once code cleanup branch is reviewed and merged to develop, travis tests will be taken care.

Answering other points here:
Should airdrop JS stay if the airdrop contract is gone?
It has been taken care as part of code cleanup task. Changes has been pushed in feature/tokenholder branch.
Please confirm that you have reviewed the style guide and at least all of the new files you've added are consistent with the style guide?
After making the changes we went through style guide and tried to be as consistent as possible. Please point out if we missed any. It was a long guide and there could be few missing points from our side.
Please document at least all new functions consistent with the style guide.
Sure
I made some specific comments about error messages, but they should be considered as applying globally.
Sure. We will go through all error messages again.


Badge license leads to 404 error in readme.md

And the other badge also leads the wrong way

fixed


[bug] IOS pop-up keyboard causes webview to move outside the screen

Describe the bug
IOS pop-up keyboard causes webview to move outside the screen
Reproduction
Place an input element on the page, click on the element, and wake up the keyboard
Expected behavior
The webview height changes to screen height minus keyboard height
Full tauri info output
[✔] Environment
    - OS: Mac OS 14.5.0 X64
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.78.0 (9b00956e5 2024-04-29)
    ✔ cargo: 1.78.0 (54d8815d0 2024-03-26)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-apple-darwin (default)
    - node: 20.12.0
    - yarn: 1.22.22
    - npm: 10.5.0

[-] Packages
    - tauri [RUST]: 2.0.0-beta.20
    - tauri-build [RUST]: 2.0.0-beta.16
    - wry [RUST]: 0.40.0
    - tao [RUST]: 0.28.0
    - @tauri-apps/api [NPM]: 2.0.0-beta.12
    - @tauri-apps/cli [NPM]: 2.0.0-beta.18

[-] App
    - build-type: bundle
    - CSP: img-src 'self' data:; style-src 'self' 'unsafe-inline'; connect-src 'self' http://ipc.localhost; default-src 'self'; font-src 'self' data:
    - frontendDist: ../dist
    - devUrl: http://localhost:1420/
    - framework: React
    - bundler: Vite

[-] iOS
    - Developer Teams:

Stack trace
No response
Additional context
https://github.com/tauri-apps/tauri/assets/19303058/5cf1b708-9d20-466d-a6f1-9af9951fe8fe
No response

I think that is the default behavior for iOS. You may need to change your page height according to the visualViewport.height

I think VisualViewPort is no effect.
When the keyboard is not popped up, the window.innerHeight is 776，This is the window size when the keyboard pops up:

The following is the effect of using VisualViewPort. VisualViewPort events will be delayed, so the effect is very bad. I think it's still necessary to change the height of the container.
  const appBarRef = useRef<HTMLElement>(null);
  useEffect(() => {
    const onVisualViewportChange = () => {
      const offsetTop = window.visualViewport?.offsetTop;
      if (appBarRef.current) {
        appBarRef.current.style.transform = `translateY(${offsetTop}px)`;
      }
    };
    window.visualViewport?.addEventListener('scroll', onVisualViewportChange);
    window.visualViewport?.addEventListener('resize', onVisualViewportChange);

    return () => {
      window.visualViewport?.removeEventListener(
        'scroll',
        onVisualViewportChange,
      );

      window.visualViewport?.removeEventListener(
        'resize',
        onVisualViewportChange,
      );
    };
  }, []);

Does anyone follow up with this question?

Same problem on Android — the visualViewport height is incorrect and it rarely functions as expected.

Is anyone looking into this? I'm trying to make my app work on ios and this issue is a real problem


Allow for slowly ramping up load tests

While testing a different project there was a desire to have load tests that start off with a low number of workers and gradually build up to a larger number of workers to better simulate expected load on the service.

We can add a --ramp-time option, that will introduce workers gradually, from 0 to n. A new worker is added (each ramp-time / n) seconds.

I will add a linear ramp up - I guess it's good enough.


Add material for procedural windows on OSM buildings

This PR adds two materials for procedural windows on OSM buildings. For an overview of these materials and discussion, see https://github.com/CesiumGS/cesium-unreal-samples/issues/36.

In this PR:

MI_ProceduralWindowsMetadata, a material instance that adds windows and randomizes building color based on metadata.
MI_ProceduralWindowsSimple, a material instance that adds windows.
An example scene for each version of the material
MF_TriplanarWindows, the material function that applies the window texture.
Two Material Layers, one for each material instance
A Material Layer Blend
A tiling window texture

If we decide to add this to the Samples, prior to merging we should determine whether to create a full sample scene in CesiumSamples/Maps, or leave the sample scenes as they are in CesiumSamples/Materials/ProceduralWindows. I think it's important to include at least the Metadata scene, because in order for the material to work correctly, the Tileset actor must be set up properly with the CesiumEncodedMetadata component.

This looks awesome @argallegos! I'm all for turning this into a proper sample map.

This is now ready for review. I created a proper sample scene (10_CesiumOSMWindows_Metadata) with a Getting Started note. I deleted the example scene for the simple version of the material - I didn't feel it was necessary.

This is really cool @argallegos, nice job!
Only small thing I noticed is that when using MI_ProceduralWindowsMetadata, adding a raster overlay doesn't do anything. This isn't a problem, really, but I thought I'd mention it because there's a layer for raster overlays in the material instance. Might as well remove that and make the material simpler. MI_ProceduralWindowsSimple does work with a raster overlay, though. In any case, any changes here can be a separate PR.
We should definitely mention and screenshot this in the release roundup this month @slchow!


deleted dead code in second pass

Closes: RHOAIENG-2497
Description

Deleting dead code to improve overall code quality
How Has This Been Tested?

npm run test
Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

@christianvogt
confirming that checkModelMeshFailureStatus in  src/pages/modelServing/utils.ts:301:14 should be deleted right?

/lgtm
/approve

/retest


Multiple share: missing ack

Sometimes after sharing n resources, we have n calls to /partial-ack but zero call to /ack.

It could be a bug, or it could be the last request /ack not delivered, due to internet issues, or due to the user closing the browser tab.


feat(outbox): use content-type in the metadata for projections item

Description
This request it is linked to PR https://github.com/dapr/dapr/pull/8062. In fact that PR didn't cover if we are using the projection item to publish the event. In this request if the item has outbox.projection = true the contentType in the metadata will be take if it's not set in the request
PR cloned from https://github.com/dapr/dapr/pull/8132 for branch release-1.14

Issue reference

Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

cicoyle for this change created a new PR

Thanks @luigirende, please include an integration test for this change.

Thanks @luigirende, please include an integration test for this change.

@JoshVanL I've just added the integration tests.


WIP: edit pass SignalR tutorial

Internal review URL
Fixes #7630

@Rick-Anderson This is ready for re-review.


search_users by location returns duplicate users

Hello Tweepy developers, I wanted to get a list of users who are located in Rochester, NY (based on their profile), with the following snippet:
users = []
place = 'Rochester, NY'
for user in tweepy.Cursor(api.search_users,q='location:'+place).items(50):
    users.append(user.screen_name)

I expected it to return a list of unique users located in Rochester, NY, but then I got  a list of the same user, shown below.
['ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits', 'ajcustomsuits']
What did I do wrong?

I don't think the GET users/search endpoint that API.search_users uses has an explicit location search option.
However, this does seem to be a bug, although with Twitter's API, rather than with Tweepy.
Even with calls to the specific pages from 1-51, e.g. api.search_users(q="location:Rochester, NY", page = 51), each page returns that user as the single result. Oddly enough, it stops at page 51 and there is no page 52.
It might be worth making a forum post at https://twittercommunity.com/c/twitter-api/64 about this.

It seems like this is a longstanding issue that won't be fixed before a Twitter API v2 equivalent endpoint is released.
#958 and #959 are also related.

It seems like this is a longstanding issue that won't be fixed before a Twitter API v2 equivalent endpoint is released.
#958 and #959 are also related.


Add SpEL support for @Secret annotation

I want to externalize the keystore and backend property of @Secret annotation.
@Secret(value = "${vault.keyspace}")
But the following exception is thrown:
org.springframework.data.keyvalue.core.UncategorizedKeyValueException: Not enough variable values available to expand 'vault.keyspace'; nested exception is java.lang.IllegalArgumentException: Not enough variable values available to expand 'vault.keyspace'
Is it possible to add SpEL support?

That should be possible. Ideally, we handle this aspect in Spring Data KeyValue. I filed DATAKV-268.


Added example for Array sort_custom function

My apologies @akien-mga, I've fixed the whitespace issues now.


Bug: New "Format yaml array sections" toggle puts single Date value into array

Describe the Bug
With the new "Format YAML Array" and "Format yaml array sections" rules, a single non-array date value in the YAML is getting converted into an array. I do not understand why!
How to Reproduce
In "Settings" -> "Linter" turn on the first toggle under "Format YAML Array" and the "Format yaml array sections" toggle. Run the linter on the following:
---
date: 2022-08-14
tags: []
---

Result is:
---
date: [2022-08-14]
tags: []
---

This breaks all my dataview queries that use the date field, since they expect it to be a Date and not an array.
Expected Behavior
No changes made by linter. Expected output:
---
date: 2022-08-14
tags: []
---

Device

[x] Desktop

Thanks for reporting this. I will have to take a look at this. It left my dates alone when I tested it on my data, but maybe I just missed it happening. What are your format yaml array settings?

Gotcha. I will see if I can reproduce when I get a chance.

Interesting. It seems that for some reason it thinks this date format is an object if I am understanding what is going on correctly.

I have a fix for this. It will hopefully go out in a release soon. I would like to be able to release it with another bug fix if possible to avoid making a release for just one bug fix however I may end up releasing it today anyways as it is a bug fix for a new rule.

I did manage to find another bug which was reported by someone else. I will merge it in and plan to release this evening. Hopefully this will make it so bugs are kept to a minimum and get addressed more quickly while allowing time to add FRs.


Migrate elements-example-vue from Vue v2 to v3

Describe the bug
We have a vue example project which is currently based on Vue 2.x. Now that Vue 3 got released, we should also update our example project AND our migration guide to support both versions.
I made some first steps here: https://github.com/inovex/elements-example-vue/pull/3
But there are still some issues to address:

Everything below the ino-button won't be displayed (maybe the way the attributes of the other components are used is deprecated?)
I had to use the beta version of the vue-loader in order to compile successfully (see https://github.com/vuejs/vue-next/issues/1414#issuecomment-648998826). Is there any other way to make it work?
Upgrade our integration guide to support both versions (in this repo)

closed by https://github.com/inovex/elements-example-vue/pull/4


PHP 7.4

See related comments on https://github.com/forumone/docker-wordpress-cli/pull/3 for the same questions to be considered here.


istioctl manifest apply: use "smart" CLI output for progress

Current output looks like:
- Applying manifest for component Base...
✔ Finished applying manifest for component Base.
- Applying manifest for component Citadel...
- Applying manifest for component Addon...
- Applying manifest for component SidecarInjector...
- Applying manifest for component Galley...
- Applying manifest for component Telemetry...
- Applying manifest for component Policy...
- Applying manifest for component IngressGateways...
- Applying manifest for component Pilot...
✔ Finished applying manifest for component SidecarInjector.
✔ Finished applying manifest for component Citadel.
✔ Finished applying manifest for component Addon.
✔ Finished applying manifest for component Galley.
✔ Finished applying manifest for component Policy.
✔ Finished applying manifest for component IngressGateways.
✔ Finished applying manifest for component Pilot.
✔ Finished applying manifest for component Telemetry.

It would be nice if instead of printing a new line when its done we were replacing the - with a ✔. We can do similar for the output to --wait (this is a bigger motivator, since the output is really long).
Other CLI tools like linkerd, kind are doing this. If its 1000s of lines to write this though then obviously not worth the investment..

@howardjohn I am tempted to close this because your work adds much better support for apply output.
The remaining work are the bullet points on what a user should do post-install https://github.com/istio/istio/issues/20189#issuecomment-576833124 .  Shall I create a new issue that apply, install, and upgrade should also output a few lines of text making suggestions about what to do AFTER installing Istio?

Yeah I would say the original issue presented here is done. The followups of the actual output and "next steps" type info is not, could be separate issue if you want or this one


Include link to matched owners file(s) in GH comments

That way people can quickly find alternative approvers.

should we include the whole ancestor owner tree? or just at some depth (2?) ?

I thought basically the file(s) that triggered the people that are in the set. Does that make sense?

closed through https://github.com/google/github-owners-bot/commit/838910094998005601f8c4c2a173b44daa0b7428


Getting Error for  ng build--aot

ERROR in Cannot determine the module for class TextDirective in C:/xampp/htdocs/bw/ng/node_modules/angular4-color-picker/lib/color-picker.direc
tive.ts! Add TextDirective to the NgModule to fix it.
Cannot determine the module for class SliderDirective in C:/xampp/htdocs/bw/ng/node_modules/angular4-color-picker/lib/color-picker.directive.ts
! Add SliderDirective to the NgModule to fix it.
Cannot determine the module for class DialogComponent in C:/xampp/htdocs/bw/ng/node_modules/angular4-color-picker/lib/color-picker.directive.ts
! Add DialogComponent to the NgModule to fix it.
Please help to fix this.

This package is not maintained anymore. Please check https://github.com/zefoy/ngx-color-picker

@wartab I am using angular4-color-picker Package.

So? Why post here then?

angular4-color-picker doesn't seem to be any more maintained than this. Follow my advice above if you want to avoid headache.


update setup for PIP >= 20

Coverage remained the same at 85.312% when pulling b8d66a3a987b5b1fe3e9c16ae0246db7346ad35e on ixje-patch-1 into a7f8392c01104d43008edbc669374c9f1bbdcf0d on development.


[VS Code] Join failed. The specified value isn’t a valid Live Share URL. Please check the link provided by the host and try again.

Error:
Join failed. The specified value isn’t a valid Live Share URL. Please check the link provided by the host and try again.
Steps to Reproduce:

Version Data

extensionName
VSLS

extensionVersion
0.3.319

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.23.1

platformName
Linux

platformVersion
4.15.0-23-generic

123


Autodect parameters from dataset -- add dataset accessor

This PR makes possible to give a dataset as argument to gsw functions, and based on cf standard name the cf_xarray wrapper will pick the proper arguments. Example:
import xarray as xr
import gsw_xarray as gsw

ds = xr.open_dataset('the_dataset.nc')
gsw.sigma0(ds.SA, ds.CT)
# Or you can now use
gsw.sigma0(ds=ds)

@DocOtak What do you think of the API (I haven't written the doc yet)? To use the option one can simply give a dataset as keyword argument, i.e. gsw.sigma0(ds=ds).

Many arguments don't have a cf standard name. It is possible to add custom criteria in cf-xarray, so we could write our own standard names (and open a request to add them in the cf-convention) https://cf-xarray.readthedocs.io/en/latest/custom-criteria.html.
Or another option is to make the autodetect option only available for the parameters that have a standard name. What do you think?

@rcaneill apologies for delayed responses, I have been on a long holiday and have been attempting to actually "relax"... I'll be back "full time" next week.
I'm not sure about the gsw.func(ds=ds) type interface, all the functions (that I can recall) which take an entire Dataset does something to all variables in the dataset. Are you aware of any non "built in" numpy ufuncs that take entire datasets?
Elegant data selection is a hard problem faced by my seagoing group at Scripps... the functions that I have seen which take entire pandas dataframes are usually very messy.

I see your point. Would you then not be in favor of having this kind of detection, or is it more an API problem (that we could replace by something like ds.gsw['sigma0'] or ds.gsw.sigma0())?

Hello @DocOtak , I'm pinging you about my last question :)

I like your idea of using function call to use variable selection. That would easily tackle the issue of setting which variable to use when multiple fields are present with the same standard name.
I'll try to give a try to add an accessor (when I'll have time)
Enjoy your future field work :)

I had some (hopefully good) idea while cycling to university today:

I like to keep the ability to use __getitem__ calls: ds.gsw['sigma0']. It makes it easy to e.g. loop through a list of strings of properties we want to compute
It makes sense to me to also allow to pass a list of strings to getitem: ds.gsw[['sigma0', 'sigma1']]
We keep the possibility of function call: ds.gsw.sigma0(SP="psal1")
To tackle the choice of e.g. default practical salinity (CTD, bottle, etc), we add a property/list/dict (as we prefer) on the gsw accessor with default variables to use:

ds.gsw.defaults['sea_water_practical_salinity'] = 'psal1'

(This point is more relevant to #30 ) We can cache intermediate variables used for computation (if a variable needs steps in between), cf xarray doc on accessor. This can be set as an option (for users with small datasets it is a nice option, but for big datasets it can be a bad option), either through context, settings, or arguments: ds.gsw.sigma0(use_cache=False)

At commit e81063c we have a working version of the accessor! (we can't use getitem with lists yet)
Could you have a look?

(We can now use lists in items)

(cf https://github.com/DocOtak/gsw-xarray/issues/57#issuecomment-1377041549)
Roadmap of this PR:

[ ] add detection of reference scale t90 and t68
[ ] deal with t argument that is temperature of sea-ice or of sea-water depending on the function's name
[ ] Create a way to the user to configure the variable's names (e.g. gsw.set_non_cf_name({'entropy':'entropy_name_in_ds', 'SA_seaice':'salinity_of_sea_ice_name_in_ds'}) or ds.gsw.defaults['sea_water_practical_salinity'] = 'psal1')

Note on t argument:
Used in ice

Helmholtz_energy_ice
adiabatic_lapse_rate_ice
alpha_wrt_t_ice
chem_potential_water_ice
cp_ice
enthalpy_ice
entropy_ice
gibbs_ice_part_t
internal_energy_ice
kappa_const_t_ice
kappa_ice
pressure_coefficient_ice
pt0_from_t_ice
pt_from_t_ice
rho_ice
sound_speed_ice
specvol_ice

used in sea-water

SA_freezing_from_t
SA_freezing_from_t_poly
CT_first_derivatives_wrt_t_exact
CT_from_t
C_from_SP
SP_from_C
alpha_wrt_t_exact
beta_const_t_exact
chem_potential_water_t_exact
cp_t_exact
dilution_coefficient_t_exact
enthalpy_t_exact
entropy_from_t
kappa_t_exact
pot_rho_t_exac
pt0_from_t
pt_from_t
rho_t_exact
sound_speed_t_exact
specvol_t_exact
t_deriv_chem_potential_water_t_exact
SP_salinometer
latentheat_evap_t

And so?
Good point for us, all the functions for sea-ice that use t have 'ice' in their names

Argo data don't have a reference_scale attribute for ITS-90 temperature (it is present in the long name). I am in favor in considering that all in situ temperature are ITS-90, unless the user explicitly uses the gsw.t90_from_t68 function
(attached is a screenshot of ncdump -h of an argo profile)

What is left:

[ ] doc
[ ] there is problem: autocompletion doesn't work anymore in ipython. I may have broken something by rearranging the modules. I'll have a look

[ ] Write doc for options

@DocOtak could you review? I think that it is soon ready to merge!

Sure thing! Have you tried this out on any "real world" datasets?

Sure thing! Have you tried this out on any "real world" datasets?

Not yet, I'll try with some ARGO profiles in the following days

While trying with some real ARGO data, I realized that ARGO still uses the old standard name for practical salinity (i.e. 'sea_water_salinity' instead of 'sea_water_practical_salinity'), so I added this case
(tests are failing due to mismatch of poetry versions... I'll sort this)

I updated poetry to a newer version

The tests are failing as gsw has been updated and now includes gibbs and gibbs_ice functions. These 2 functions return different units depending on the order of the derivative. While we could parse the arguments to get the order of the derivatives, I open a new issue (#65 ) for this and leave it for later. I don't think that many people will use these 2 functions.

@DocOtak Ready to review!
I added doc for the accessor in the README, and a notebook that uses some ARGO data to show all functionalities of gsw-xarray, including the new accessor.

First off, this is amazing work.
I played around with it a bit with my data from CCHDO. For CTD data, it worked pretty well since there tended to be only a single variable with a given standard name. The bottle data, being more complicated, wanted a bit more massaging to make work. I found myself wanting the set_non_cf_name to be an override, since it is only checked after failing to find a variable with the standard name, you will get an exception about multiple variables. For example, the argo example notebook you have. I somewhat expected this to work with the unfiltered argo data:
ds = xr.open_dataset('ARGO_example.nc')
with gsw.set_non_cf_name(p="pres_adjusted", SP="psal_adjusted", t="temp_adjusted"):
    ds.gsw.SA_from_SP()

Aside: An even crazier idea would be for this to accept some callable that gets passed the dataset and figured out the right variable. e.g. set_non_cf_name(p=some_function_that_knows_how_to_pick_the_pressure_in_argo_files)
What are your thoughts on this figuring out intermediate parameters not already present in the dataset? e.g. ds.gsw.CT_from_t() calculates SA from SP if not already present. Somewhat related, right now the get item syntax uses the function name: ds.gsw["SA_from_SP"] if there is something that can figure out the intermediate properties, it might be better to just have the property name: ds.gsw["SA"]. If you think this is too difficult, don't worry about it for this round of changes.

I found myself wanting the set_non_cf_name to be an override, since it is only checked after failing to find a variable with the standard name, you will get an exception about multiple variables.

The way it is done now was on purpose (cf my next comment).

ds = xr.open_dataset('ARGO_example.nc')
with gsw.set_non_cf_name(p="pres_adjusted", SP="psal_adjusted", t="temp_adjusted"):
   ds.gsw.SA_from_SP()

About this, I agree it would make sense to make it possible. However, I think that it would be better to force the users to use standard names when available, i.e. an option that would look more like:
ds = xr.open_dataset('ARGO_example.nc')
with gsw.set_cf_name_preference(
    sea_water_pressure="pres_adjusted",
    sea_water_practical_salinity="psal_adjusted",
    sea_water_temperature="temp_adjusted"
):
    ds.gsw.SA_from_SP()

Using standard names would tackle the issue that some arguments (e.g. t and p) exist for both sea water and sea ice.
However, as you mentioned, it makes sense that if the user sets set_non_cf_name he wants it to be an override. We can raise a warning if the user sets either p or t saying to be careful to not mix sea ice and sea water.
We still need to prioritize the way we treat options: if one sets an option both with standard name and set_non_cf_name, I thin that option with standard name should have the priority, then set_non_cf_name, and finally our internal mapping.

What are your thoughts on this figuring out intermediate parameters not already present in the dataset? e.g. ds.gsw.CT_from_t() calculates SA from SP if not already present. Somewhat related, right now the get item syntax uses the function name: ds.gsw["SA_from_SP"] if there is something that can figure out the intermediate properties, it might be better to just have the property name: ds.gsw["SA"]. If you think this is too difficult, don't worry about it for this round of changes.

About this, it is issue #30 that I decided to split into 2 different PR. The 1st one (this PR) to create the accessor and possibility to use the standard names, and a 2nd one to have the autodiscovery (to be done, but I had a good draft of the algo here https://gist.github.com/rcaneill/0aa8b9e72112d079c4919e462a4bb378)

I use an internal function from cf_xarray for performance, I opened an issue there: xarray-contrib/cf-xarray#465

Had an answer and problem solved!

Oh awesome, in that gist. I'm not familiar with that graph library. Is it able to tell you if cycles or loops exist in the graph?

Oh awesome, in that gist. I'm not familiar with that graph library. Is it able to tell you if cycles or loops exist in the graph?

Hm I don't remember but I guess that yes. As far as I remember (I did this notebook 1 year ago), in the end the easiest was not to find a path within the graph with one classical algorithm but simply brute force to find all possible variables that one can compute with a certain set of inputs.

I played with the latest commits, I really like it and think this is the right track. There are two things I noticed:

Do you think the accessor API is stable? i.e. should we say it is "provisional" while we make sure it is ok in more "real world" testing. Part of this I think would be documenting our intent (vs the implementation that might not match due to bugs), I can take a first crack at it if you'd like.
That one comment I made about missing name, I've had bad luck with making reviews actually visible to not me...

I played with the latest commits, I really like it and think this is the right track. There are two things I noticed:

Do you think the accessor API is stable? i.e. should we say it is "provisional" while we make sure it is ok in more "real world" testing. Part of this I think would be documenting our intent (vs the implementation that might not match due to bugs), I can take a first crack at it if you'd like.

I think that the API is stable if using the accessor + providing the name of each variable inside the dataset. If only relying on standard names (but practical salinity, as 2 standard names are used so it may raise issues) I think it is also robust. And the mixture of standard and non standard names using the options manager may need more focus. I tried to write good tests, but maybe we could write some more.
We could raise a warning when the accessor is used, saying that it may be unable to autodetect the arguments in certain unusual cases (so versio 0.4.0 of gsw-xarray would have the warning, maybe also 0.4.1 if 0.4.1 adds the autodiscovery, and 0.4.2 would be considered as stable if we have enough feedback)
If you have time to document our intent, I'm pleased if you do so. I can try to write some more tests + resolve your comment about modules

This comment is to list all tests with should have for the accessor. Feel free to add more configurations if needed. I'll try to implement them tomorrow:
Basic tests

[x] give names
[x] with standard names (getitem)
[x] with standard names (method)

More advanced

[x] with standard names + option to choose from dataset which array to pick (getitem)
[x] with standard names + option to choose from dataset which array to pick (method)
[x] with non cf names + option set to say which array to pick (method)
[] with non cf names + option set to say which array to pick (getitem)
[ ] mixture of standard names + decide with array to pick + non cf names (method)
[ ] mixture of standard names + decide with array to pick + non cf names (getitem)

With Pint

[ ] Test with a pint quantified dataset (method)
[ ] Test with a pint quantified dataset (getitem)

These tests should be done with the method ds.gsw.sigma0() and the getitem ds.gsw["sigmao"]

Question: if user uses the accessor to get a variable that is already present in the dataset, what should we do? I think that we should return the variable from the dataset based on the standard name / non cf option. Other thoughts?

[ ] Implement this

[ ] We should add in the doc that the names we provide to the accessor with getitem are the names or the underlying function, and not the name of the variables (this is confusing as many function have the same name as the output variable). This is probably clear when using the method, as it is an explicit call to a function.

Any reason to not merge (so we can not let this prevent forward movement)?

I think it was ready, I was waiting for your review but it seems that I forgot to ask you...
So if you can have a last check, if seems good you can merge afterward

We can do any cleanups in future PRs I think, tests are passing and I don't think we have broken any currently used public interfaces. Maybe we could mark the "auto detector" as experimental. I also suspect a refactor of things might be worth it eventually, there are some deep indentations that are indicative of a "code smell" but I am not worried about that for now.


Allow developers to get the current crud entry based on route parameter

Bug report
What I did
Referenced $this->crud->entry->[property] within a CRUD controllers setupUpdateOperation() function when editing an existing entry.
What I expected to happen
A reference to $this->crud->entry to exist.
What happened
The reference to $this->crud->entry is null.
What I've already tried to fix it
Nothing.
Backpack, Laravel, PHP, DB version
When I run php artisan backpack:version the output is:
PHP VERSION:
PHP 7.3.15-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.15, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans
with Zend OPcache v7.3.15-3+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
LARAVEL VERSION:
v7.29.3@93f6d565a07045baa0e4b941ae1f733cd5984d65
BACKPACK VERSION:
4.1.27@bd1bab5dde08df20eebd730ca3a2992e1bf334f7

Hello @selected-pixel-jameson thanks for the report.
Backpack has no setupFields function built-in. Would you mind to clarify your question ?
If you are refering to the edit function, have a look in Backpack code on how we get the entry: https://github.com/Laravel-Backpack/CRUD/blob/2298dd028d6379ad93973226018d87c21aa2c6c5/src/app/Http/Controllers/Operations/UpdateOperation.php#L64
Best,
Pedro

Sorry. I meant setupUpdateOperation()

Thanks for clarify @selected-pixel-jameson.
Indeed is not possible to have the crud entry inside the setupUpdateOperation() because at the time that function is run we (Backpack) don't know what entry is going to be edited.
If you notice, in my last comment where I refereed you to the edit() function, that's the first place where you get the editing entry, there we get the fields that you setup in setupUpdateOperation().
$this->crud->setOperationSetting('fields', $this->crud->getUpdateFields());

So if you want to get the entry and manipulate the fields based on the entry you would need to overwrite the edit() function, and add/remove your fields there based on current editing entry.
Let me know if I missed something.
Best,
Pedro

It seems like providing a reference to the instance that is going to be updated within the setupUpdateOperation() function would be a much more convenient and elegant way vs. forcing someone to figure out they need to override the undocumented edit() function and then write a function to filter out fields, add fields or create custom_html fields based on the current instance values.
I’m just going to create a helper function that will pull the model id out of the URL and load the model that way within the setuUpdateOperation() vs trying to figure out how to add a conditional field within the edit function.
public function getCurrentModel()
{
$id = \Route::current()->parameter('id');
$currentModel = null;
if ($id) {
$currentModel = $this->crud->getEntry($id);
}
    return $currentModel;
}

Jameson Parker
Owner & Software Engineer
www.selectedpixel.com
www.linkedin.com/in/jamesonwparker
(920) 203-4106

On Dec 15, 2020, at 5:19 AM, Pedro Martins<EMAIL_ADDRESS>wrote:
Thanks for clarify @selected-pixel-jameson https://github.com/selected-pixel-jameson.
Indeed is not possible to have the crud entry inside the setupUpdateOperation() because at the time that function is run we (Backpack) don't know what entry is going to be edited.
If you notice, in my last comment where I refereed you to the edit() function, that's the first place where you get the editing entry, there we get the fields that you setup in setupUpdateOperation().
$this->crud->setOperationSetting('fields', $this->crud->getUpdateFields());
So if you want to get the entry and manipulate the fields based on the entry you would need to overwrite the edit() function, and add/remove your fields there based on current editing entry.
Let me know if I missed something.
Best,
Pedro
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Laravel-Backpack/CRUD/issues/3400#issuecomment-745225300, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGXF36JFZDRUJ6YV5EWDE5DSU5A4LANCNFSM4U4ETUIA.

That's a valid and very good solution.
Technically if you know how to write stuff inside setupXXXOperation you know how to write it inside edit(). There are developers that prefer to ovewrite edit and create and add the fields there etc. you have $this->crud there too.
There is documentation on how to overwrite crud operation functions https://backpackforlaravel.com/docs/4.1/crud-operation-update#callbacks
Not sure if it's something we should provide in core, or even how to do it properly in core if we do it.
We cannot use setupUpdateDefaults, The defaults for every operation, are loaded along with the CrudPanel, so even if you go to ListOperation, you will have the UpdateDefaults loaded. What you setup inside setupUpdateOperation is what is specific only for that operation, and we run it only when the specific operation is called. That said, if we do it inside defaults, sometimes we will have the entry, sometimes don't.
Having an helper function like getEntryFromUrlAttribute($attribute) does not sound bad at all. That way we could tell devs if they want to get the entry inside the setupXXXOperation they could use it, even if we don't do it as a default for the operation.
I am in for anything that helps developers (like myself) to speedup our development, we here (Backpack) just need to make sure that we don't pollute (more) the CrudPanel with very niche cases.
I don't think this is a niche case and it could be helpfull for anyone who needs it.
That said, even if we don't make this into core I would probably just create an addon that adds this functionality to the crud (Crud is macroable, very easy to add anything without polluting the core)
@tabacitu @promatik  what you think about this ?
I think yesterday somebody asked about the same in gitter. (changing fields based on the current editing entry).
Thanks for the suggestion @selected-pixel-jameson .
Wish you the best,
Pedro

I totally agree, and I think this should be a core function, I have this helper for my projects since ever 😅. Many times I want to access the current entry when editing.
These are my helpers (my crud controllers use a trait with it);
public function getEntryId()
{
    return request()->route('id');
}

public function getEntry()
{
    $id = $this->getEntryId();
    return $id ? $this->crud->getEntry($id) : null;
}

I agree on setting just the entry $this->crud->entry, so $this->crud->entry->id ?? null in case you need the id.

Hi all, instead of a helper function that will result in one extra query, why not a simple hook (some sort of function with closure as parameter).

Maybe to avoid the extra query this should be a getter?
But getters are ugly on PHP  😅 and I don't know about performance ...
public function __get($property) {
  if (property_exists($this, $property)) {
    return $this->$property;
  }
  if ($property === "entry") {
    $id = request()->route('id');
    $this->$entry = $id ? $this->crud->getEntry($id) : null;
    return $this->entry;
  }
}

Hi @promatik, @tabacitu, maybe something like this:
CRUD::field('ref')->label('Reference')->if(fucntion ($crud, $entry) {
    return (int) $entry->ref > 1000 && $crud->hasAccess('access_sensitive_data');
});

Boy do I have good news for you guys 😂
The existing $this->crud->getCurrentEntry() does just that 🤯😂, and can be used inside setupUpdateOperation() just fine. So this sounds to me like a documentation problem, rather than a feature request right?

Previously the only place where it was documented was inside CRUD API page. But since this issue came up, it's obvious that might not be enough.
Maybe we need to mention this inside the Update operation too. Done - just mentioned it there too.
Let me know if you guys think there's another place to mention it, or a better/alternative wording for it. Difficult to get in the mindset of someone looking for this, since I'm the one that created the method. It's one of the pitfalls of documentation I guess - the person most likely to write the docs is the person less likely to be able to put himself in a users' shoes. For example if it were me, I would have been searching the docs for "get current entry" and I would have found it:

But that's just because those are the exact words I would use - someone else might use different words.
Closing since I believe we already have a solution for this. But we should think about ways to better document it - let me know if you have ideas on that and we'll do it.
Cheers!

@tabacitu good and here's example of how to use it inside store function
in my example i'm checking the object if already exists or not based on a column identifier if there are an object with same identifier or not already added to DB if no it continue the creation otherwise it show and alert and redirect the user to the list view
public function store()
    {
        $this->crud->setRequest($this->crud->validateRequest());

        $req = $this->crud->getRequest();
        if ($object !== false) {
            $this->crud->setRequest($req);
            $this->crud->unsetValidation(); // validation has already been run
            $store = $this->traitStore();

            $newEntry = this->crud->getCurrentEntry();
            $newEntryId = this->crud->getCurrentEntryId();

            // you can use getCurrentEntry or getCurrentEntryId for any propose now
            return $store;
       }
        \Alert::error('Object already exists')->flash();
        return redirect(backpack_url('object'));
    }


TST: Replace test datasets with pyogrio-generated files where possible

Per #433, we were including test data files from other parties and may not have been in great compliance with their licenses, even though we were usually using a tiny extract of the source files.
See the updates to tests/fixtures/README.md first for updated guidance on managing test files, and steps used to create those still present as files.
Where we were using GeoJSON files, I migrated those directly into conftest.py so they are generated using code, which should make the licensing of those files more clear (i.e., part of Pyogrio source code so our MIT license is clear).  I don't have a strong opinion about whether these should be files or in code, but putting them in code seemed reasonable; let me know if you disagree.
This also made it easier to create an invalid GeoJSON file for testing polygons with insufficient coordinates (replaces data file with problematic license).
Where we were using 3rd party FGDB datasets, I created new datasets to mimic how we were using those.  I used QGIS to hand-digitize (super simple) LineString ZM, Polygon ZM, Curve, CurvePolygon, and MultiSurface datasets, since we were using one of the FGDB datasets to verify that they were correctly downgraded to supported geometry types.

Added tests to verify roundtrip using OpenFileGDB driver, and test of int64 dtype handling for GDAL >= 3.9 via dataset creation option.


Cannot use variable of relative path in list

Describe the bug
Cannot use variable of relative path in list.
To Reproduce
from omegaconf import OmegaConf

# OK, output:  {'a': 1, 'tmp': {'b': [1]}}
config = """
    a: 1
    tmp:
        b: ["${a}"]
"""
cfg = OmegaConf.create(config)
cfg = OmegaConf.to_container(cfg, resolve=True)
print(cfg)

# ERROR when using a relative path in list
config = """
    tmp:
        a: 1
        b: ["${.a}"]
"""
cfg = OmegaConf.create(config)
cfg = OmegaConf.to_container(cfg, resolve=True)
print(cfg)

Expected behavior
A clear and concise description of what you expected to happen.
Additional context

[x] OmegaConf version: 2.1.1
[x] Python version: 3.7
[x] Operating system: Ubuntu 16.04
[x] Please provide a minimal repro

You need two periods b: ["${..a}"] instead of one period b: ["${.a}"].
This is because the list is an additional level of nesting, hence another period is needed to go "up" another level.

Using .. works. Thanks!


[Networking] socket error EINPROGRESS sometime appear using fetch on some Android devices

Description
I got sometime a Network Request Error when using fetch on Samsung Ax phones on Android 10 only (1 request / 3 fail). After debugging native code (NetworkingModule), an exception is raised by OkHttp client (into okhttp3.internal.connection.RealConnection.connectSocket) with android.system.ErrnoException: connect failed: EINPROGRESS (Operation now in progress).
After some research I found a post that talk about this android issue on Samsung device:
https://www.softax.pl/blog/solved-samsung-a70-problems-after-upgrade-to-android-10-do-i-have-to-wait-for-samsung-to-help-my-app-users/
This developer says that the error occur when connectTimout is set to 0 ms when opening a socket connection.
By default OkHttp client builder use 10 000ms connectTimeout: https://github.com/square/okhttp/blob/06d38cb795d82d086f13c595a62ce0cbe60904ac/okhttp/src/main/java/okhttp3/OkHttpClient.java#L494
But React Native OkHttp client provider override default timeout for request setting them to 0 ms:
https://github.com/facebook/react-native/blob/aee88b6843cea63d6aa0b5879ad6ef9da4701846/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java#L66-L68
There is no way to set timeout from JS side nor native side, because it's hard coded in RN XMLHttpRequest:
https://github.com/facebook/react-native/blob/0b9ea60b4fee8cacc36e7160e31b91fc114dbc0d/Libraries/Network/XMLHttpRequest.js#L121
So there is a reason that socket timeout are set to 0 in React Native network module ?
It will be good think to allow users to customize their http/socket timeout.
Either by a global settings on a network manager, ex:
XMLHttpRequest.setTimeout(10000); // statically or some other way
or by request through fetch option, ex:
 fetch('/my/url', { timeout: 10000 });
React Native version:
System:
OS: macOS 10.15.5
CPU: (4) x64 Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz
Memory: 26.50 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.13.1 - /var/folders/dk/00snz9k93s16_9x8yg4tpxp40000gn/T/yarn--1595497465154-0.37374595055775384/node
Yarn: 1.22.4 - /var/folders/dk/00snz9k93s16_9x8yg4tpxp40000gn/T/yarn--1595497465154-0.37374595055775384/yarn
npm: 6.12.1 - ~/.nvm/versions/node/v12.13.1/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
IDEs:
Android Studio: 3.6 AI-192.7<IP_ADDRESS>92135
Xcode: 11.5/11E608c - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0
react-native: 0.61.4 => 0.61.4
Steps To Reproduce
Make multiple fetch (async) on a Samsung Ax phone with Android 10
Expected Results
This error should not be raised OR/AND connectTimeout should be overridable through react native.

cc @dulmandakh

How can I label this issue ? I have no rights on it.

I have same issue. I use axios lib to send a post request. android will display network error (timeout error message) when response duration time > 10s  (default OkHttp client builder use 10 000ms connectTimeout)
https://github.com/facebook/react-native/pull/28491 <-- I have try this change, but also cannot fix the issue.
anyone have solution ?
Thanks


Fixing typo in documentation.md file

The documentation file has a typo- where User is written instead of Users. Thus, whenever a person tries to test the tool, it raises an error. See the screenshot below.

The fix for this issue is simple, just correct the typo.
Also, User class is mentioned later on instead of Users under Scrape User Details. That also needs fixing.

Hey @nikhil25803 , can you assign me this issue under GSSoC'23? Thank You!


FFMpeg can't compile with Stitch

Based on this article:
https://wasmi-labs.github.io/blog/posts/wasmi-v0.32/#ffmpeg---193mb
It seems that ffmpeg failed to compile in Stitch

Article author here: This is because of Stitch's built-in limits for Wasm function body size.


A few minor cleanups in fabric2_db_crud_tests

Made a silly error building the accumulator list:
[Row, Acc] -> [Row | Acc]

Left some debugging code in list_dbs_tx_too_old test
The test was supposed to setup only 1 failure in the user callback

Check with:
make eunit apps=fabric suites=fabric2_db_crud_tests

+1 on the test code, but CI is failing due to a header issue

@tonysun83 thanks! CI runs on master only so it tries to run erlfdb compile and everything without having any fdb bits


Using Eventeum with multiple different applications

From my understanding, Eventeum will push all contract events to the same topic (contract-events) in Kafka. Let's say that I have applications A, B, and C which are completely different apps. Now, lets I have events A, B, and C which are for the above applications, and I register all three into Eventeum. How do I ensure that application A will only process event A, application B will only process event B, and application C will only process event C? Will I have to filter on the Kafka topic?

Hey Chang, thats correct.  Right now Eventeum doesn't support different topics / queues for different event specifications, so a single instance for multiple apps is not natively supported.  One option is to perform some topic message filtering at the consumer as you mentioned.  Another is to implement a service between eventeum and the applications, that consumes all eventeum messages and forwards them to application specific topics, based on some configuration.  I hope that makes sense.

Yes! That makes sense. I guess this opens up two other questions.

Does this mean the intended way to use Eventeum is to have one instance running with its own isolated Kafka for each application?
Are there any plans to add additional user defined topics (for different applications) for Eventeum to push events into?

Thanks for the help!

Hey sorry about the delayed response.

Yes, you're correct, Thats how Eventeum is designed to be used right now.
I think this functionality would be cool, and its something that I've thought about.  I think if this was to be implemented, it could be in the form of an Eventeum add-on service kind of like what I described in my previous comment, sitting in the middle between the generic eventeum topics and application specific ones.  This isn't in the roadmap right now though, unfortunately. :(


Conventions for converting Matrix Market files to binsparse

These are not strictly spec issues, but I have two unresolved issues with how to convert Matrix Market files to binsparse files.

What shall we label the Matrix Market comments?  I'm currently going with the key "comment," but we could also be more explicit and use a key like "MatrixMarket_comment."

Given the following Matrix Market types, what should the default type for values be?

real - presumably float32 or float64.  I would assume that most ASCII representations have a precision more suitable for float32?  Which is more appropriate is difficult to determine empirically, even if you inspect the whole matrix.
complex - same issue as real, just slightly more complex
integer - I think we need to default to int64, unless we inspect the whole matrix to look for a max value.
pattern - This one is straightforward, I think.  An ISO-valued matrix with a bint8 value equal to true.

Some of the Matrix Market files would require float64.  Using float32 would lose some information.  The result looks fine.

@DrTimothyAldenDavis Is there any straightforward way to identify which files require float64, or should I just use float64 for everything?

The only way would be to try it by converting each entry: float64 to float32, then back, and see if it differs.  There's no metadata in the Matrix Market format in general, and no structured comments in my Matrix Market files, that has this information.
When I create a Matrix Market file from a float64 matrix, I use a method that minimizes the # of ascii characters printed in the output file.  It's very tedious.  For each entry, I write it to a string using 1 digit of precision, read it back, and compare.  If the numbers differ, continue with 2 digits, 3 digits, etc, until I reach the number of digits just for that single number.  Then  I use that # of digits to write the floating-point value to the file.  That way, I ensure that each matrix is identical in all 3 formats (MATLAB *.mat file, Matrix Market file, and Rutherford Boeing file).
When I read a Matrix Market file, I always use float64 (if the matrix real or complex).


XP mana bar does not go down when the wand is put in your off-hand.

Instead, the xp bar goes up, then shoots back down when using a wand in your offhand slot.

Correct. It briefly shows you mana when you cast, but otherwise shows XP.
This is by design.

Well, I should say it's by design for now. Maybe in 7.0 once wands can share mana it'd make sense for the offhand wand to get full XP bar status, but for now I think it just gets confusing.


Clean up HirasawaProject.kt

This file is annoying long, would be better to move packet router code and webserver routes to the internal plugin

This also allows us to make this project more of a shell for osu! allowing further plugins to add, amend and remove certain features we have as standard that wouldn't be possible with the current event system.


Resolve #140 snlinverter night tare power issue

Fixing #140 by changing the start power (Pso) comparison to use the DC input power (p_dc) instead of the calculated AC power (ac_power).

Great. One easy request and one slightly harder request:
Easy: Add a brief note to the "Bug fixes" section of the pvlib/docs/sphinx/source/whatsnew/v0.3.1.txt file and add your name or username to the "Contributors" list.
Slightly harder: Add a new test to pvlib/test/test_pvsystem.py that requires this new behavior in order for it to pass. You basically want a copy of test_snlinverter but with one of the inverters and the input parameters that were giving you the wrong results.
Thanks!

I'll give it a shot a bit later today.

All done (I think).

@ejmiller2 thank you for fixing this.


no video embed / playback

as per title, it doesn't give playing video previews in telegram or discord

Thanks for the report. Working on this now and will have a fix soon.


Use Func instead of custom comparison delegate in GrowableArray

Codecov Report

Merging #269 into master will not change coverage.
The diff coverage is 80%.

@@           Coverage Diff           @@
##           master     #269   +/-   ##
=======================================
  Coverage   24.35%   24.35%
=======================================
  Files         197      197
  Lines      112379   112379
  Branches    11208    11208
=======================================
  Hits        27368    27368
  Misses      84984    84984
  Partials       27       27

Flag
Coverage Δ

#2015
24.35% <80%> (ø)
:arrow_up:

#2017
24.35% <80%> (+9.45%)
:arrow_up:

#Debug
15.81% <80%> (-0.12%)
:arrow_down:

#Release
14.9% <80%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

src/FastSerialization/GrowableArray.cs
68.75% <ø> (ø)
:arrow_up:

src/TraceEvent/Computers/TraceProcess.cs
11.51% <0%> (ø)
:arrow_up:

src/TraceEvent/TraceLog.cs
66.59% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

LGTM


Why this happens?

https://github.com/ZhengLinLei/paste-code/assets/77938581/2e18ca56-69d2-43a0-b385-3411e2a394a9

Maybe there are problem with the triple click

Maybe there are problem with the triple click

Maybe


Adding time dependency to essential BC breaks dynamic solid adjoint test

@tupek2 I located a very small change (adding time to essential bc) that breaks the sensitivity test, here is a branch with the change https://github.com/LLNL/serac/tree/swartz10/transientEssentialBCtest

I was looking through the physics modules and noticed that ode_time_point_ isn't updated in reverseAdjointTimestep(). The check-pointed time steps and states are grabbed, but the absolute time doesn't seem to be decreasing during the reverse pass. Could this be the issue?

I have a branch that addresses all of this.  I need to run your problem to make sure the dirichlet time dependence works now.

Fixed by #1183

Fixed by #1183


Logic app Standard New Designer_  Azure function_Experience failure.

Describe the Bug with repro steps
1.Create a Logic app standard and add http trigger.
2.Add azure function fill all the mandatory details after created connection.
3.Try to add new parameters in function app.
Expected: The new parameters should be added fine.
Actual: Encountering the issue.

What type of Logic App Is this happening in?
Standard (Portal)
Are you using Preview Designer or GA Designer
Preview
Workflow JSON
No response
Screenshots or Videos
No response
Browser
Edge
Additional context
Environment Details:
URL: https://aka.ms/emastaging-flowstip1
Version: 2.30508.1.2

@Eric-B-Wu Issue fixed.
Environment Details:
URL: https://aka.ms/emastaging-flowstip1
Version: 2.30529.1.1


Add missing new stubs

In Laravel 5.4 added new stubs, which are not yet in the package:

markdown-mail.stub (artisan make:mail --markdown)
markdown-notification.stub (artisan make:notification --markdown)
unit-test.stub (artisan make:test --unit)

Done.

@atehnix artisan make:view?

@Kristories
This package uses only officially available framework commands.
As far as I know, at the moment there is no such command and stubs in Laravel.
Let me know when this command becomes available in the Laravel release and I will be happy to add the appropriate stubs to the package.
:)

I'm looking for a package that does that yours does bust also allows to add custom generators for example
make:service
make:response
@atehnix
etc.. would be nice if your package could be more flexible like that