Windows 10 x64 issue with Fiddle and libui

I tried libui on Windows 10 x64 after installing Ruby 3.0.2 x64 via Ruby Windows Installer (and running gem install glimmer-dsl-libui to install gem + dependencies) and I keep getting this error upon loading libui:
$ ruby -r glimmer-dsl-libui -e "require 'examples/basic_window'"
e:/Ruby30-x64/lib/ruby/3.0.0/fiddle.rb:49:in `initialize': No such
file or directory (Fiddle::DLError)
        from e:/Ruby30-x64/lib/ruby/3.0.0/fiddle.rb:49:in `new'
        from e:/Ruby30-x64/lib/ruby/3.0.0/fiddle.rb:49:in `dlopen'
        from e:/Ruby30-x64/lib/ruby/3.0.0/fiddle/import.rb:86:in
`block in dlload'
        from e:/Ruby30-x64/lib/ruby/3.0.0/fiddle/import.rb:77:in `collect'
        from e:/Ruby30-x64/lib/ruby/3.0.0/fiddle/import.rb:77:in `dlload'
        from e:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/libui-0.0.10/lib/libui/ffi.rb:12:in
`<module:FFI>'
        from e:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/libui-0.0.10/lib/libui/ffi.rb:7:in
`<module:LibUI>'
        from e:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/libui-0.0.10/lib/libui/ffi.rb:6:in
`<top (required)>'
        from e:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/libui-0.0.10/lib/libui.rb:21:in
`require_relative'
        from e:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/libui-0.0.10/lib/libui.rb:21:in
`<module:LibUI>'
        from e:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/libui-0.0.10/lib/libui.rb:6:in
`<top (required)>'
        from <internal:e:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in
`require'
        from <internal:e:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in
`require'
        from e:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/glimmer-dsl-libui-0.1.4/lib/glimmer-dsl-libui.rb:31:in
`<top (required)>'
        from <internal:e:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in
`require'
        from <internal:e:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in
`rescue in require'
        from <internal:e:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:149:in
`require'
<internal:e:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in
`require': cannot load such file -- glimmer-dsl-libui (LoadError)
        from <internal:e:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in
`require'

I double checked the dll file path and the dll file does exist.
I installed both the Ruby MSYS and MING toolchains by the way. I did see an odd error in the beginning:
mkdir: cannot change permissions of ‘/dev/shm’: Permission denied
mkdir: cannot change permissions of ‘/dev/mqueue’: Permission denied

I am not sure if they are related at all.
Do you have any idea what is going on?

Hi!
Thank you for your report!

I double checked the dll file path and the dll file does exist.

I thought I might have forgotten to include the dll in the gem in the 0.0.10 release, but when I unzipped the gem file (actually a zip file), the dll file was included. Then I removed existing libui gem and installed the libui gem from the remote rubygem server on Windows, and it worked. So it is not that I forgot to put in the dll.
And I see some of your glimmer-dsl-libui examples worked on Windows.
Great work! (

Thanks for confirming that it works on Windows. Something must be wrong with my Windows setup (I installed it on my Mac via VirtualBox). It is Windows 10 Pro (OS Built 19043.1237). I will keep digging. Perhaps, I will try with a real Windows PC too once I get ahold of one over the weekend.

But I don't know what's wrong with your libui installation.
Sometimes you may be using 32bit Ruby and libui will not work. In that case, you need to download libui.dll manually.
See https://github.com/kojix2/LibUI#development

I tested this on my windows 10 laptop, via the ruby one click installer, in a cmd.exe shell.
I could install libui 0.0.10 just fine; the examples also work (I noticed that I broke one of
my own examples recently in my gem ... when I have more time I have to fix tons of
things in my libui-related gem ... right now I focus a bit more on ruby-gtk3 again. I
alternate a lot!).
I have not tested it in msys2/mingw. However had, that error actually seems familiar
to me. msys2/mingw is quite complicated (for me), but I think this may be an issue
more pertaining to msys2 perhaps.
I do not know how your error can be solved, but I think that error may not happen always.
I remember I uninstalled mingw once, and then set it up again, because I had no idea what
was going on anymore on windows. I think, but I am not sure, I did not install the msys2
environment from the ruby one click installer, and only used the msys2 installer + 64 bit.
What I can, however had, say is that libui 0.0.10 works on my win10 laptop. One main reason
why I use libui on windows is because I actually needed that for an elder relative who does not
know how to work with computers very well. One small backup utility I wrote just so that backing
up data is simpler. I just verified that the same code works on libui 0.0.10 - and it does!
So I think this issue is most likely more pertaining to something in the setup and msys2/mingw.

I haven't had a chance to try a real Windows PC, but I uninstalled Ruby and tried to reinstall without msys as version 3.0.2, 2.7.4, 2.6.8 to no avail. Loading libui always resulted in that Fiddle error claiming the dll is not there when in fact it is there.
My Windows 10 installation in VirtualBox is definitely x64.
Here are the specs;
Edition	Windows 10 Pro
Version	21H1
Installed on	9/14/2021
OS build	19043.1237
Experience	Windows Feature Experience Pack 120.2212.3530.0
Device name	DESKTOP-OG3UV1I
Processor	Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz   2.49 GHz
Installed RAM	6.00 GB
Device ID	F086567A-34D5-48A3-8116-B7F09E19B97F
Product ID	00330-80000-00000-AA089
System type	64-bit operating system, x64-based processor
Pen and touch	No pen or touch input is available for this display
And, my Ruby definitely is x64 too. For example, here is what the 2.6 version says when I run ruby --version:
ruby 2.6.8p205 (2021-07-07 revision 67951) [x64-mingw32]

I will see if I get a chance in the near future to try on a real Windows PC instead of VirtualBox.
But, at least the specs above might give you a way to reproduce the problem by downloading the same exact version of Windows 10 from Microsoft and running on VirtualBox.

I ran into that issue too just today after I reinstalled my win10 laptop. Very strange.
I'll try the manual way in a moment.

@rubyFeedback
I have run LibUI on Windows, and have never had LibUI not work, either on a virtual box or on a real Windows computer. However, both Andy and shavy have experienced this problem on Windows. I think this error is very common. I can't help but wonder if other users are experiencing the same situation. I think there is some unknown reason why LibUI is not working on Windows.

Heya kojix2,
I think I may be able to add some info actually.
So my laptop has some issue ... I think this is not directly related to windows per se, but something to do with the chipset.
It kind of becomes super-slow sometimes and "lags". I even have this sometimes on linux, but not as bad as on linux.
Anyway, I actually noticed that I used a Windows Home installation. So, on that laptop I installed Fedora, which works fine. And on my second desktop machine I now have installed Windows Pro (or Enterprise, but either way NOT the home version). And on that same machine (running an Intel chipset, and NOT Windows Home), I just tested libui + fiddle, and on a first installation it works. \o/
No problem on that computer.
I can not say whether this has something to do with Microsoft Home windows (perhaps some dll is missing or different there), or whether it has to do with the chipset in use, but I wanted to just give that feedback here in the event that someone else runs into such an error. So the two parts I would recommend others to look out for is:
(a) Home version versus pro/enterprise windows
AND
(b) chipset in use (I think some chipsets cause more issues, just as my lenovo laptop shows. I never have these issues on my desktop computers ... one of them I bought just recently and no issue there either, but the old chipset from 2014 had issues; booting sometimes stopped for no reason at all. I don't know whether this may impact fiddle or not, but perhaps the information may be useful for someone in the future)

@rubyFeedback
Thanks for the reply.
I find it hard to believe that Home and Pro are different. If you run into the same situation again, download the compiled examples from the libui release and see if they work. if the libui examples don't work, the problem is probably unrelated to Ruby.
I will reopen this issue. If you are reading this and can't get LibUI to work on Windows, please post your environment here. (Or start a new issue).

@kojix2 I tried your suggestion to run binary C libui examples in the Windows that I had trouble with in the past (Windows 10 x64 running in VirtualBox on top of Mac Catalina or Big Sur) [Windows 10 on a real machine had no issues]
The examples ran successfully. I was able to run histogram and control gallery from these groups:

examples-alpha4.1-windows-amd64-mingw-static.zip
examples-alpha4.1-windows-amd64-msvc2017-static.zip

This must be a Ruby issue then?

Thanks @AndyObtiva
Then it might be a Ruby problem. At least, we might be able to do something about it.
Fiddle maintainer, @kou, said that the DLLs that libui.dll depends on may not exist in some Windows environments.

The DLLs used by libui.dll include MSVCP140.dll and VCRUNTIME140.dll. Are these DLLs included in RubyInstaller? If not, I think you will get a load error.

List of DLLs on which libui.dll depends

$ objdump -p vendor/libui.dll | grep -i dll
vendor/libui.dll:     ファイル形式 pei-x86-64
    DLL
DllCharacteristics    00000160
 vma:            Hint    Time      Forward  DLL       First
    DLL Name: USER32.dll
    DLL Name: KERNEL32.dll
    DLL Name: GDI32.dll
    DLL Name: UxTheme.dll
    DLL Name: d2d1.dll
    DLL Name: DWrite.dll
    DLL Name: ole32.dll
    DLL Name: MSVCP140.dll
    DLL Name: VCRUNTIME140.dll
    DLL Name: api-ms-win-crt-math-l1-1-0.dll
    DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
    40142       63  _seh_filter_dll
    DLL Name: api-ms-win-crt-convert-l1-1-0.dll
    DLL Name: api-ms-win-crt-stdio-l1-1-0.dll
    DLL Name: api-ms-win-crt-string-l1-1-0.dll
    DLL Name: api-ms-win-crt-utility-l1-1-0.dll
    DLL Name: api-ms-win-crt-heap-l1-1-0.dll
名前<PHONE_NUMBER>03ca0e libui.dll

He also said that dll problems can be investigated with Dependency, but I am not familiar with this. I know you are busy, but you could check it out if you would like to.

My mind is blown!!!
I ran dependencies, loaded libui.dll with it, and it said it loaded fine:

Next, I tried running glimmer-dsl-libui meta-example, and IT WORKED!!!

I don't know how! I am worried that dependencies might have brought over the dlls that are missing! I don't know. Oh well! So much for this issue. If I encounter on another machine or virtual machine, I will report again.

Hi, i got a solution for my Issue #48 - maybe this fix also this Error:
https://github.com/kojix2/LibUI/issues/48#issuecomment-1022022263

This issue is closed because it was confirmed that there is a case of missing dlls when libui does not work on Windows.
A link to issue #48 and comments will be included in the README.
However, there may still be other people who cannot get libui to work on Windows. If so, please create a new issue as this is a different issue.

One thing I neglected to mention before is that I also installed something called the WiX Toolset, which enables building Windows installers for applications. It might have as well brought the Visual C++ Redistributable with it. I wouldn’t be surprised if it did.
That said, to be honest, I don’t think this issue is resolved if it is confirmed that dll’s are sometimes missing. After all, the fix expects developers to install a developer toolkit (the VC++ redistributable). That means, they cannot just install the LibUI Ruby gem and expect it to work (one of the strongest selling points of LibUI).
Also, the issue is a bit unpredictable since it seems LibUI does work out of the box on some Windows systems of non-developers.
I think more attention need to be spent on ensuring the LibUI Ruby gem works out of the box on Windows. For example, by trying to include more binaries for Windows just in case they are missing. Keep in mind that Ruby developers use a dynamic programming language because they seek convenience above all else. They usually don’t care about memory and speed so much as long as they are reasonably within the limits of their machine. The developers who care so much about things other than convenience don’t use Ruby to begin with. They just resort to C, C++, Objective C, Swift, Java or Crystal instead. But when using Ruby, it is for tasks that are not too memory, disk, or performance sensitive. And, that constitutes more than 80% of software engineer business tasks these days. That’s why Rails is so successful despite obviously not being as optimal as using Java or C++ in performance. Anyways, in summary, it is very important to keep convenience as one of the top goals in any Ruby library.
Cheers and thank you for keeping LibUI alive and as convenient as it is for use. I look forward to continued attention to supporting productivity and maintainability with it.

I can think of a solution in two directions.
(1) To raise an error when Fiddle detects a missing DLL and display it in LibUI to prompt the user to install Visual C++ Redistributable. However, according to kou, Fiddle is unable to detect missing DLLs due to Windows limitations. Therefore, this method is not possible at the moment. But there may be a way we don't know of.
(2) To include frequently missing libraries in gem. This is also an issue of the C libui and depends on what the future release of libui-ng will be. There might be a way to use a custom libui.dll with Ruby's LibUI, but I don't want to do that because it would be too complicated for me.
I totally agree with you about the culture of Ruby and the benefits of the ecosystem. It certainly feels that way.

I reported it to Upstream...
https://github.com/libui-ng/libui-ng/issues/67


fix: fix-fulcio-unit-test

The fulcio unit tests are failing because it needs a go 1.21 image

/retest


fix(docs): Add the missing docs

Because the last PR didn't include the regen of the docs and the flake made it so we didn't get a reminder

got permission from @thomastaylor312 to merge this. :)


Bundling fix

Google changed the email address CSS selectors.. again.

Verified and tested changed merging in, great work @deepfriedfilth!


error when try op3_manager with standard op3

hi
i try op3 manager with standard op3, but i've checked for updates (from R+Manager on Windows) all servos and updated all of it to version 42 (from 40).
And now op3 manager starts with this errors
process[op3_manager-1]: started with pid [3424]
process[op3_localization-2]: started with pid [3425]
[ INFO] [1553715380.459634064]: manager->init
[ERROR] [1553715380.568218833]: Torque on DXLs! [[RxPacketError] Unknown error code!]
[ERROR] [1553715380.602368186]: Torque on DXLs! [[RxPacketError] Unknown error code!]
[ERROR] [1553715380.636528690]: Torque on DXLs! [[RxPacketError] Unknown error code!]
[ERROR] [1553715380.670664274]: Torque on DXLs! [[RxPacketError] Unknown error code!]
[ERROR] [1553715380.704805024]: Torque on DXLs! [[RxPacketError] Unknown error code!]
[ERROR] [1553715380.839121352]: Fail to control LED [[RxPacketError] Unknown error code!]
/dev/ttyUSB0 added. (baudrate: 2000000)
(/dev/ttyUSB0) [ID:  1]         XM-430 added.
(/dev/ttyUSB0) [ID:  2]         XM-430 added.
(/dev/ttyUSB0) [ID:  3]         XM-430 added.
(/dev/ttyUSB0) [ID:  4]         XM-430 added.
(/dev/ttyUSB0) [ID:  5]         XM-430 added.
(/dev/ttyUSB0) [ID:  6]         XM-430 added.
(/dev/ttyUSB0) [ID:  7]         XM-430 added.
(/dev/ttyUSB0) [ID:  8]         XM-430 added.
(/dev/ttyUSB0) [ID:  9]         XM-430 added.
(/dev/ttyUSB0) [ID: 10]         XM-430 added.
(/dev/ttyUSB0) [ID: 11]         XM-430 added.
(/dev/ttyUSB0) [ID: 12]         XM-430 added.
(/dev/ttyUSB0) [ID: 13]         XM-430 added.
(/dev/ttyUSB0) [ID: 14]         XM-430 added.
(/dev/ttyUSB0) [ID: 15]         XM-430 added.
(/dev/ttyUSB0) [ID: 16]         XM-430 added.
(/dev/ttyUSB0) [ID: 17]         XM-430 added.
(/dev/ttyUSB0) [ID: 18]         XM-430 added.
(/dev/ttyUSB0) [ID: 19]         XM-430 added.
(/dev/ttyUSB0) [ID: 20]         XM-430 added.
(/dev/ttyUSB0) [ID:200]        OPEN-CR added.
[ERROR] [1553715381.271926602]: Fail to load offset yaml.
[ WARN] [1553715381.580106068]: Head control - angle unit : 30
[ERROR] [1553715382.158283887]: [RobotisController] first bulk read fail!!
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info$  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
[op3_manager-1] process has died [pid 3424, exit code -6, cmd /home/robotis/catkin_ws/devel/lib/op3_manager/op3_manager$log file: /home/robotis/.ros/log/60334aba-50c7-11e9-9756-a0c5899b41a0/op3_manager-1*.log
I want to thank you for your assistance with these cases so far.

Is it normal that model number was changed from 1000 to 1020 for all servos when i update firmware?

Hi,
I think the opencr firmware has failed in updating the dxl firmware. Could you refer to the e-manual to recover the opencr firmware?
The rest of the questions will be answered after confirmation.
Regards,
Kayman

Dynamixels of OP3 are XM430-W350.
Model number 1020 is the correct value.
The model number can not be changed through firmware update.
Only recovery is possible.
Thanks,
Kayman

I have already updated firmware on opencr more than 3 times, but from windows. I'll try to do this from linux. (already read this issue - https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/50). I've even rebuilt all op3, replaced opencr (to new one), restored nuc from image and then reinstalled and catkin_make all catkin_ws.

Debug information from opencr
0	 Model_Number    	 29696	 0x7400
2	 Firmware_Version	 2	 0x2
3	 ID              	 200	 0xC8
4	 Baud            	 4	 0x4
5	 Return_Delay_Time 	 0	 0x0
16	 Status_Return_Level 	 2	 0x2
18	 Roll_Offset     	 0	 0x0
20	 Pitch_Offset    	 0	 0x0
22	 Yaw_Offset      	 0	 0x0
24	 Dynamixel_Power 	 1	 0x1
25	 LED             	 0	 0x0
26	 LED_RGB         	 992	 0x3E0
28	 Buzzer          	 0	 0x0
30	 Button          	 0	 0x0
31	 Voltage         	 124	 0x7C
32	 Gyro_X          	 16	 0x10
34	 Gyro_Y          	 40	 0x28
36	 Gyro_Z          	 14	 0xE
38	 Acc_X           	 6625	 0x19E1
40	 Acc_Y           	 1542	 0x606
42	 Acc_Z           	 15318	 0x3BD6
44	 Roll            	 59	 0x3B
46	 Pitch           	 -234	 0xFFFFFF16
48	 Yaw             	 -286	 0xFFFFFEE2
50	 IMU_Control     	 0	 0x0

Hi,
Did it work after rebuilt?
OPENCR looks good now.
Model number and firmware version, id, baud of OPENCR are fine.
If not, could you show me the log of op3_manager?
Regards,
Kayman

Hi, sure, here it is

Hi, here it is
master.log
roslaunch-robotis-op3-4169.log
rosout.log
rosout-1-stdout.log

Hi,
I looked at your log and it still seems that OPENCR is not responding.
Would you like to test it with dxl_monitor?
There is a program called dxl_monitor in the example of Dynamixel.
After connecting to OP3 with ssh, please follow the instructions below to see if OPENCR responds properly.

Installation method

build library
$ cd ~ / catkin_ws / DynamixelSDK / c ++ / build / linux64
$ make
$ sudo make install

build dxl_monitor and run
$ cd ~ / catkin_ws / DynamixelSDK / c ++ / example / dxl_monitor / linux64
$ make
$ ./dxl_monitor

test

Change baud
[CMD] baud 2000000
ping test
[CMD] ping 200

Done, ping to opencr (id 200) failed

I have tested with dxl_monitor from opencr dxl bus, and it works well!   Opencr without nuc succeed to ping, to write and read to XM430.

1.4.X core for opencr was the reason of this issue. Now i use 1.3.2 core and all works fine.
If it possible, i want to know why this happens. :)

Hi, @GramJr
I will check about this.
And if I know the exact cause, I'll let you know.

@GramJr
I've found a problem related to UART DMA function.
It was added in 1.4.0, but I found that it was not applied to the OP3 example.
I will update this with other features and will release it within this week.
Sorry for the inconvenience. And thanks for giving me more debugging info :)

@OpusK
Ok, thanks. Can I ask some questions about OP3 by mail, which is listed in the profile?

@GramJr
If possible, it would be nice for us and other users to leave the issue on GitHub.
But, if your question is difficult to address here, please ask me about OpenCR's Firmware and ask @ROBOTIS-Kayman for OP3's software.

@OpusK
Thank you!

@GramJr
I just released version 1.4.6 of OpenCR!

hello guys, i have same problem here. i use u2d2->opencr -> dynamixel mx-64. when tried to ping opencr, it always fails. when i roslaunch op3_manager, always error. i have used op3 code in arduino ide. i hope you can response my problem. Thank you

Hi @AlfretzNehemia
The OP3 is designed specifically for DYNAMIXEL X series and does not compatible with MX series.
Thank you.

thank you for answering my question. So, do you have any suggestion for me
to run robot with dynamixel mx,ud2d, and subcontroller opencr? and i still
have one
question, why my opencr can't success ping when i test dxl_monitor?
Pada tanggal Sen, 23 Agu 2021 pukul 09.08 Will Son @.***>
menulis:

Hi @AlfretzNehemia https://github.com/AlfretzNehemia
The OP3 is designed specifically for DYNAMIXEL X series and does not
compatible with MX series.
Thank you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/65#issuecomment-903389401,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APRRXKLRP3P2BWNRRGP5OJLT6GURFANCNFSM4HB2UQCQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

@AlfretzNehemia
You may try upgrading to MX-64(2.0) firmware via DYNAMIXEL Wizard 2.0.
MX series with Protocol 2.0 firmware is very similar to X series.
Also you'll need to make some modifications in the source such as OP3.robot file where specific DYNAMIXEL is defined.
In regard with the ping issue, please try searching the opencr issue page, for example, https://github.com/ROBOTIS-GIT/OpenCR/issues/147
Thanks!


⚠ Bofrost.be has degraded performance

In 33c2b20, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1143 ms

Resolved: Bofrost.be performance has improved in 33bb8cb.


sub_filter is not working

Hello.
I have a problem with sub_filter
It is not working in site-nginx.conf and rocket-nginx conf.
I hope you can help me with this problem.
Have a nice day.

For the test, I use the standard Nginx configuration for WordPress .
I need to change the theme name and time zone.
Example:
sub_filter 'ThemeName_v5.5.3' 'MyThemeName';
sub_filter '+00: 00 "' '' +03: 00" ';
sub_filter_once off;
Since the pages are packed in gzip format, Nginx cannot replace them.

This does not help. Please include all your configuration files for that site.
Thank you.


Add problem description

Currently, the repo only contains solution's problems but are not descriptive. You can add a README.md file describing the problem or solution (if possible) in detail.

I am interested to contribute a few solutions.

I will try to add a few descriptions.

Awesome @Sanghamitra1234 !


Aether network merging

When a conduit is added between two distinct existing networks, those two networks should be merged.

Issue nullified by new power system


Add PerConnectionLRUFactory for MySQL JDBC driver

Hi folks,
I am having some issues when my Spring Boot app when it starts, and it tries to use the Hikari connection pool. If I run the app using java -jar ... it works fine, but running the nativeBuild it throws a nasty error, I have no idea what to do with it.
I am building the project using my Mac Intel "macOS Monterey v12.5", using:
java -version
openjdk version "17.0.4" 2022-07-19
OpenJDK Runtime Environment GraalVM CE 22.2.0 (build 17.0.4+8-jvmci-22.2-b06)
OpenJDK 64-Bit Server VM GraalVM CE 22.2.0 (build 17.0.4+8-jvmci-22.2-b06, mixed mode, sharing)

gradle --version
------------------------------------------------------------
Gradle 7.5.1
------------------------------------------------------------

Build time:   2022-08-05 21:17:56 UTC
Revision:     d1daa0cbf1a0103000b71484e1dbfe096e095918

Kotlin:       1.6.21
Groovy:       3.0.10
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          17.0.4 (GraalVM Community 17.0.4+8-jvmci-22.2-b06)
OS:           Mac OS X 12.5 x86_64

I have attached a file, which is the project on ZIP
NativoProject.zip
format.
I have attached a file, which is the build and run of the project using JVM.
I have attached a file, which is the build of native code
I have attached a file, which is the run of the native code and the error.
Beware, I am using a basic MySQL 5.7.x server to connect, there is no need for tables.
You can create a basic MySQL database, be sure you change the application.properties file to have the correct, host "IP", the database name, and the credentials.
The error happens before it establishes a connection to the database server, meaning, if the credentials are valid or invalid, etc, it won't reach that stage, yet. it will throw the error first.
CREATE DATABASE `testing` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */

Here the files:
Build_and_run_for_JVM.txt
Error_when_running_native.txt
Build_for_native.txt

Hi! Could you please try copying these files into your src/main/resources/META-INF/native-image folder and try again?

Hi,
I did, and still getting the errors, please check the output
./gradlew nativeBuild
Starting a Gradle Daemon (subsequent builds will be faster)

> Configure project :
[native-image-plugin] Instrumenting task with the native-image-agent: aotTest
[native-image-plugin] Instrumenting task with the native-image-agent: generateAot
[native-image-plugin] Instrumenting task with the native-image-agent: generateTestAot
[native-image-plugin] Instrumenting task with the native-image-agent: test

> Task :generateAot
Execution optimizations have been disabled for task ':generateAot' to ensure correctness due to the following reasons:
  - Additional action of task ':generateAot' was implemented by the Java lambda 'org.springframework.aot.gradle.SpringAotGradlePlugin$$Lambda$809/0x00000008012f19a8'. Reason: Using Java lambdas is not supported as task inputs. Please refer to https://docs.gradle.org/7.5/userguide/validation_problems.html#implementation_unknown for more details about this problem.
2022-08-08 22:32:52.302  INFO 1838 --- [           main] o.s.a.build.ContextBootstrapContributor  : Detected application class: net.yisu.august.Nativo.NativoApplication
2022-08-08 22:32:52.307  INFO 1838 --- [           main] o.s.a.build.ContextBootstrapContributor  : Processing application context
2022-08-08 22:32:55.379  INFO 1838 --- [           main] o.s.a.build.ContextBootstrapContributor  : Processed 166 bean definitions in 3069ms
2022-08-08 22:32:55.716  INFO 1838 --- [           main] o.s.nativex.support.SpringAnalyzer       : Spring Native operating mode: native

> Task :compileAotMainJava
warning: unknown enum constant When.MAYBE
  reason: class file for javax.annotation.meta.When not found
/Users/jbianco/Downloads/Nativo/build/generated/runtimeSources/aotMain/org/springframework/boot/jdbc/_FactoryProvider.java:4: warning: [deprecation] AbstractDataSourceInitializerDatabaseInitializerDetector in org.springframework.boot.jdbc has been deprecated
  public static AbstractDataSourceInitializerDatabaseInitializerDetector abstractDataSourceInitializerDatabaseInitializerDetector(
                ^
/Users/jbianco/Downloads/Nativo/build/generated/runtimeSources/aotMain/org/springframework/boot/jdbc/_FactoryProvider.java:6: warning: [deprecation] AbstractDataSourceInitializerDatabaseInitializerDetector in org.springframework.boot.jdbc has been deprecated
    return new AbstractDataSourceInitializerDatabaseInitializerDetector();
               ^
/Users/jbianco/Downloads/Nativo/build/generated/runtimeSources/aotMain/org/springframework/aot/StaticSpringFactories.java:26: warning: [unchecked] unchecked conversion
  public static MultiValueMap<Class, Supplier<Object>> factories = new LinkedMultiValueMap();
                                                                   ^
  required: MultiValueMap<Class,Supplier<Object>>
  found:    LinkedMultiValueMap
/Users/jbianco/Downloads/Nativo/build/generated/runtimeSources/aotMain/org/springframework/aot/StaticSpringFactories.java:28: warning: [unchecked] unchecked conversion
  public static MultiValueMap<Class, String> names = new LinkedMultiValueMap();
                                                     ^
  required: MultiValueMap<Class,String>
  found:    LinkedMultiValueMap
5 warnings

> Task :generateResourcesConfigFile
[native-image-plugin] Resources configuration written into /Users/jbianco/Downloads/Nativo/build/native/generated/generateResourcesConfigFile/resource-config.json

> Task :nativeCompile
[native-image-plugin] Toolchain detection is disabled, will use GraalVM from /Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.2.0/Contents/Home.
[native-image-plugin] Using executable path: /Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.2.0/Contents/Home/bin/native-image
Warning: Using a deprecated option --allow-incomplete-classpath from 'META-INF/native-image/org.springframework.aot/spring-aot/native-image.properties' in 'file:///Users/jbianco/Downloads/Nativo/build/libs/Nativo-1-aot.jar'. Allowing an incomplete classpath is now the default. Use --link-at-build-time to report linking errors at image build time for a class or package.
WARNING: Unknown module: org.graalvm.nativeimage.llvm specified to --add-exports
WARNING: Unknown module: org.graalvm.nativeimage.llvm specified to --add-exports
WARNING: Unknown module: org.graalvm.nativeimage.llvm specified to --add-exports
========================================================================================================================
GraalVM Native Image: Generating 'Nativo' (executable)...
========================================================================================================================
Warning: Method com.zaxxer.hikari.HikariConfig.getScheduledExecutorService() not found.
Warning: Method com.zaxxer.hikari.HikariConfig.isInitializationFailFast() not found.
Warning: Method com.zaxxer.hikari.HikariConfig.isJdbc4ConnectionTest() not found.
Warning: Method com.zaxxer.hikari.HikariConfig.setInitializationFailFast(boolean) not found.
Warning: Method com.zaxxer.hikari.HikariConfig.setJdbc4ConnectionTest(boolean) not found.
Warning: Method com.zaxxer.hikari.HikariConfig.setScheduledExecutorService(ScheduledThreadPoolExecutor) not found.
Warning: Could not resolve condition com.zaxxer.hikari.util.Sequence$Factory for reflection. Reason: java.lang.ClassNotFoundException: com.zaxxer.hikari.util.Sequence$Factory.
Warning: Could not register org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer: allDeclaredConstructors for reflection. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
Warning: Could not register org.springframework.boot.liquibase.LiquibaseChangelogMissingFailureAnalyzer: allDeclaredConstructors for reflection. Reason: java.lang.NoClassDefFoundError: liquibase/exception/ChangeLogParseException.
[1/7] Initializing...                                                                                (14.2s @ 0.28GB)
 Version info: 'GraalVM 22.2.0 Java 17 CE'
 Java version info: '17.0.4+8-jvmci-22.2-b06'
 C compiler: cc (apple, x86_64, 13.1.6)
 Garbage collector: Serial GC
Warning: Could not register complete reflection metadata for org.springframework.validation.beanvalidation.SpringValidatorAdapter$ViolationFieldError. Reason(s): java.lang.NoClassDefFoundError: javax/validation/Validator
[2/7] Performing analysis...  [*********]                                                               (53.4s @ 1.98GB)
  15,563 (91.42%) of 17,023 classes reachable
  24,956 (64.44%) of 38,726 fields reachable
  74,869 (61.75%) of 121,252 methods reachable
     884 classes,   311 fields, and 4,416 methods registered for reflection
      67 classes,    75 fields, and    57 methods registered for JNI access
       5 native libraries: -framework CoreServices, -framework Foundation, dl, pthread, z
[3/7] 0KBuilding universe...                                                                               (6.5s @ 4.80GB)
[4/7] 0KParsing methods...      [***]                                                                      (6.2s @ 1.73GB)
[5/7] Inlining methods...     [***]                                                                      (2.8s @ 4.23GB)
[6/7] Compiling methods...    [******]                                                                  (40.0s @ 2.19GB)
[7/7] Creating image...                                                                                (6.6s @ 1.17GB)
  34.58MB (51.71%) for code area:    49,759 compilation units
  32.00MB (47.86%) for image heap:  351,600 objects and 327 resources
 293.56KB ( 0.43%) for other data
  66.87MB in total
------------------------------------------------------------------------------------------------------------------------
Top 10 packages in code area:                               Top 10 object types in image heap:
   1.66MB sun.security.ssl                                     7.35MB byte[] for code metadata
   1.08MB java.util                                            3.79MB java.lang.Class
 740.32KB jdk.proxy4                                           3.36MB java.lang.String
 732.49KB com.sun.crypto.provider                              3.18MB byte[] for embedded resources
 649.59KB org.apache.tomcat.util.net                           2.87MB byte[] for java.lang.String
 566.29KB java.lang.invoke                                     2.69MB byte[] for general heap data
 551.86KB org.apache.catalina.core                             1.31MB com.oracle.svm.core.hub.DynamicHubCompanion
 531.96KB com.mysql.cj.jdbc                                  890.61KB byte[] for reflection metadata
 493.46KB org.apache.coyote.http2                            697.94KB java.lang.String[]
 487.83KB java.lang                                          589.45KB java.util.HashMap$Node
  26.82MB for 636 more packages                                5.02MB for 3164 more object types
------------------------------------------------------------------------------------------------------------------------
                        5.4s (3.9% of total time) in 38 GCs | Peak RSS: 6.00GB | CPU load: 5.61
------------------------------------------------------------------------------------------------------------------------
Produced artifacts:
 /Users/jbianco/Downloads/Nativo/build/native/nativeCompile/Nativo (executable)
 /Users/jbianco/Downloads/Nativo/build/native/nativeCompile/Nativo.build_artifacts.txt (txt)
========================================================================================================================
Finished generating 'Nativo' in 2m 16s.
    [native-image-plugin] Native Image written to: /Users/jbianco/Downloads/Nativo/build/native/nativeCompile

> Task :nativeBuild
Task nativeBuild is deprecated. Use nativeCompile instead.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.5/userguide/command_line_interface.html#sec:command_line_warnings

Execution optimizations have been disabled for 1 invalid unit(s) of work during this build to ensure correctness.
Please consult deprecation warnings for more details.

BUILD SUCCESSFUL in 2m 46s
10 actionable tasks: 10 executed

build/native/nativeCompile/Nativo
2022-08-08 22:35:51.021  INFO 2009 --- [           main] o.s.nativex.NativeListener               : AOT mode enabled

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.7.2)

2022-08-08 22:35:51.024  INFO 2009 --- [           main] n.yisu.august.Nativo.NativoApplication   : Starting NativoApplication using Java 17.0.4 on Jesus-MacBook-Pro.local with PID 2009 (/Users/jbianco/Downloads/Nativo/build/native/nativeCompile/Nativo started by jbianco in /Users/jbianco/Downloads/Nativo)
2022-08-08 22:35:51.024  INFO 2009 --- [           main] n.yisu.august.Nativo.NativoApplication   : No active profile set, falling back to 1 default profile: "default"
2022-08-08 22:35:51.055  INFO 2009 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2022-08-08 22:35:51.056  INFO 2009 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-08-08 22:35:51.056  INFO 2009 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.65]
2022-08-08 22:35:51.061  INFO 2009 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-08-08 22:35:51.061  INFO 2009 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 36 ms
2022-08-08 22:35:51.094  INFO 2009 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2022-08-08 22:35:51.094  INFO 2009 --- [           main] n.yisu.august.Nativo.NativoApplication   : Started NativoApplication in 5.092 seconds (JVM running for 5.095)
2022-08-08 22:35:51.094  INFO 2009 --- [           main] n.yisu.august.Nativo.NativoApplication   : -- Application Started (Spring Boot v2) --
2022-08-08 22:35:51.094  INFO 2009 --- [           main] n.yisu.august.Nativo.NativoApplication   : -- Java Version: 17.0.4 --
2022-08-08 22:35:51.094  INFO 2009 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2022-08-08 22:35:52.103 ERROR 2009 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

java.sql.SQLException: Can not find class 'com.mysql.cj.PerConnectionLRUFactory' specified by the 'queryInfoCacheFactory' configuration property.
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:67) ~[na:na]
	at com.mysql.cj.jdbc.ConnectionImpl.createPreparedStatementCaches(ConnectionImpl.java:1033) ~[na:na]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:420) ~[na:na]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[na:na]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[Nativo:8.0.30]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[na:na]
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359) ~[Nativo:na]
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) ~[Nativo:na]
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) ~[na:na]
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[na:na]
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100) ~[na:na]
	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81) ~[Nativo:na]
	at net.yisu.august.Nativo.Utilities.getMySQLDataSourceConnectionPool(Utilities.java:178) ~[na:na]
	at net.yisu.august.Nativo.NativoApplication.main(NativoApplication.java:31) ~[Nativo:na]
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.PerConnectionLRUFactory
	at java.lang.Class.forName(DynamicHub.java:1136) ~[Nativo:na]
	at java.lang.Class.forName(DynamicHub.java:1112) ~[Nativo:na]
	at com.mysql.cj.jdbc.ConnectionImpl.createPreparedStatementCaches(ConnectionImpl.java:1025) ~[na:na]
	... 12 common frames omitted

Exception in thread "main" com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Can not find class 'com.mysql.cj.PerConnectionLRUFactory' specified by the 'queryInfoCacheFactory' configuration property.
	at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:596)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:582)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
	at net.yisu.august.Nativo.Utilities.getMySQLDataSourceConnectionPool(Utilities.java:178)
	at net.yisu.august.Nativo.NativoApplication.main(NativoApplication.java:31)
Caused by: java.sql.SQLException: Can not find class 'com.mysql.cj.PerConnectionLRUFactory' specified by the 'queryInfoCacheFactory' configuration property.
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:67)
	at com.mysql.cj.jdbc.ConnectionImpl.createPreparedStatementCaches(ConnectionImpl.java:1033)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:420)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
	... 4 more
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.PerConnectionLRUFactory
	at java.lang.Class.forName(DynamicHub.java:1136)
	at java.lang.Class.forName(DynamicHub.java:1112)
	at com.mysql.cj.jdbc.ConnectionImpl.createPreparedStatementCaches(ConnectionImpl.java:1025)
	... 12 more

cd src/main/resources/META-INF/native-image
~/Downloads/Nativo/src/main/resources/META-INF/native-image]  ls -l
total 64
-rw-r--r--@ 1 jbianco  staff   129B  8 Aug 22:27 index.json
-rw-r--r--@ 1 jbianco  staff   348B  8 Aug 22:28 jni-config.json
-rw-r--r--@ 1 jbianco  staff   173B  8 Aug 22:29 proxy-config.json
-rw-r--r--@ 1 jbianco  staff   9.7K  8 Aug 22:30 reflect-config.json
-rw-r--r--@ 1 jbianco  staff    61B  8 Aug 22:30 resource-config.json
-rw-r--r--@ 1 jbianco  staff    48B  8 Aug 22:30 serialization-config.json

Ah, there's a hint missing for the MySQL driver.
You can fix this in your code with:
@NativeHint(types = {
  @TypeHint(types = {
    PerConnectionLRUFactory.class
  })
})

I've added the hint for the next version of Spring native.

Hi there,
This is still NOT funcional
I have added:
@NativeHint(types = {
		@TypeHint(types = {
				PerConnectionLRUFactory.class
		})
})

@SpringBootApplication
@EnableAsync
public class NativoApplication {

I have attached a log file "build and run native.txt"
and I have attached the entire project, Nativo2.zip
build and run native.txt
Nativo2.zip

Interesting, there are more problems lurking below. I've just added another hint to spring-native.
Can you give this a try and let me know if it works?
@NativeHint(trigger = ProxyAsyncConfiguration.class, types = {
        @TypeHint(typeNames = "org.springframework.core.annotation.TypeMappedAnnotation[]")
})

Hi @mhalbritter it worked !!!
I will add more code to the project, and let you know how it goes.
Thanks,

Hi, I switched-gears, and I added the changes you mentioned on another project, which is more realistic, it has more classes, and some features, again, I can build and run without problems if I use a JVM, java -jar ...
But when using Native, I am getting some errors, I don't know if it is because common names on some Beans? or else?
Again, I have attach the entire project on a ZIP file
I have attached 2 text files, one is the build, and the other is the run "errors" shown.
I'll appreciate any help, this is a game changer for me.
InhyuckProjectJava17.zip
nativeBuild.txt
build_native_error.txt

Hey, this seems like a different problem, please open another issue. Thanks!


Do not enter structure mode if the mode switcher is not present [WiP]

Fix #3667

Coverage decreased (-0.36%) to 87.31% when pulling c3625aaa22262b1cd5f6bfafe14ee628bf3bf53f on yakky:feature/fix_3667 into 49eb3b0cfbf62c5b87ef1501ac63204f763dbfbf on divio:support/3.0.x.

Coverage decreased (-0.36%) to 87.31% when pulling c3625aaa22262b1cd5f6bfafe14ee628bf3bf53f on yakky:feature/fix_3667 into 49eb3b0cfbf62c5b87ef1501ac63204f763dbfbf on divio:support/3.0.x.

Coverage decreased (-0.36%) to 87.31% when pulling c3625aaa22262b1cd5f6bfafe14ee628bf3bf53f on yakky:feature/fix_3667 into 49eb3b0cfbf62c5b87ef1501ac63204f763dbfbf on divio:support/3.0.x.

Coverage decreased (-0.36%) to 87.31% when pulling c3625aaa22262b1cd5f6bfafe14ee628bf3bf53f on yakky:feature/fix_3667 into 49eb3b0cfbf62c5b87ef1501ac63204f763dbfbf on divio:support/3.0.x.

@mkoistinen issue should have been fixed for real, please consider this for 3.0.10


Scaling down in two phases for bypass services

Changes proposed in this PR

Two-phase scale down for pods that are part of services in bypass mode
Kill instance function for k8 will add waiter/prepared-to-scale-down-at annotation to the pod that will be scaled down.
responder will only returns instances with :prepared-to-scale-down-at if they are ready (otherwise return no instances, as the autoscaler must repick the correct instance to fully scale down).
Added pod cleaner daemon that hard deletes pods after they have reached a certain timeout

Why are we making these changes?

Allows for safe scale down of instances that may be receiving requests from external load balancers.
External load balancers need to get updated that the instance is no longer able to receive new traffic. This is done by respecting the ejected flag for the instance

Followups

Use the external metrics to confirm that an instance has no in-flight requests when it is chosen for killing
Eagerly kill instances with no outstanding requests
Sort which instances are chosen to be killed by the least amount of total outstanding requests (right now we rely on current algorithm in the responder for picking an instance to be killed)
Optimize the scaling up function to attempt to relabel pods that are preparing to scale down so another pod doesn't need to be started

Where do we use the external metrics to confirm that an instance has no in-flight requests when it is chosen for killing?

Where do we use the external metrics to confirm that an instance has no in-flight requests when it is chosen for killing?

I did not do that here yet, it will be in a follow-up PR to keep this PR more concise.

Where do we use the external metrics to confirm that an instance has no in-flight requests when it is chosen for killing?

I did not do that here yet, it will be in a follow-up PR to keep this PR more concise.

Okay adding that to follow-ups above.

Closing in favor of https://github.com/twosigma/waiter/pull/1653 where we use the k8s preStop command instead for delaying termination of the pod and allowing requests to drain.


Adding items

Hello
I would like to know if there is any way to add items to a listview in java. I am planning to download data from json and parsing it into a listview.
Thank you

There are plenty of answers on SO. It's an issue not related to this library.


Beautify the navigation bar

I would like to give some hover and style in the menu bar .  Give some styling using css in the 'home', 'about', 'projects', 'contact us',  'Awesome JavaScript' headings. It would be look more attractive , If we give some color and hover effect.
Please assign me for this, I would really like to contribute in this section.

Thanks  for assigning me. I will make a pull request soon.

@RoliGautam Any update? , kindly reply within  2 days else I have to close this issue.


C_CPP : Maps in C

Description 📜
Issue #904 :  Maps in C
Desc : Making a map implementation in C using struct and hashtable.
Fixes #904

Type of change 📝

[x] Documentation (Content Creation in the form of codes or tutorials)

Domain of Contribution 📊

[x] C/CPP

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

Assign this to me.
Motasim (C/CPP Batch-01)

amazing work @a-rcane !!
@Saviour1001 @Suvraneel pls review this PR and merge it :)
Thank you

@ChetasShree Thank you :)

Didn't know how to code maps in C. Great work @a-rcane ! :tada:


W&B dir flag doesn't work.

Bug description
Initialising WandbLogger with save_dir=... properly sets the directory for the wandb folder with the logs files. dir= doesn't work and wandb is saved in the os.cwd().
What version are you seeing the problem on?
v2.0
How to reproduce the bug
from lightning.pytorch.loggers import WandbLogger
WandbLogger(project="abc-123", config=vars(args), save_dir=cluster.log_dir, mode=("disabled" if args.debug else "online")))

vs
from lightning.pytorch.loggers import WandbLogger
WandbLogger(project="abc-123", config=vars(args), dir=cluster.log_dir, mode=("disabled" if args.debug else "online")))

yield different results.

### Error messages and logs

Error messages and logs here please
N?A

### Environment

Name                    Version                   Build  Channel
lightning                 2.0.2                    pypi_0    pypi
lightning-cloud           0.5.38                   pypi_0    pypi
lightning-utilities       0.9.0                    pypi_0    pypi
pytorch-lightning         2.0.9                    pypi_0    pypi
wandb                     0.15.10                  pypi_0    pypi

Ubuntu 22.04. Python 3.10.

### More info

N/A

cc @awaelchli @morganmcg1 @borisdayma @scottire @parambharat

@awaelchli, can I take a look at this one?

You can take a look sure (don't need my permission 😅). But note that it is possible the user has misunderstood what the behavior is here. The two arguments "dir" and "save_dir" are equivalent, and they don't determine the location of the "wandb" directory. These are two different directories for different purposes.

@cemde - After taking a look at this issue, I observed the same scenario. save_dir should be the best argument to specify the location where data is saved. Note that, by default, save_dir is initialized to the current working directory. In your example, since save_dir wasn't overridden, it will default to the current working directory and hence, the saved directory for WandB will be in your current working directory.
I believe we can close this issue if there are no more follow-up questions.
cc: @awaelchli

@francislata it seems you agree that save_dir and dir do not behave exactly equal, which is contradicting the documentation.
In the code, it becomes apparent that dir is only ever interpreted, when save_dir is overwritten to None. This seems counter-intuitive.
@awaelchli could you elaborate on what you mean with they don't determine the location of the wandb directory? They get passed to wandb.init(dir=...). The W&B docs state that dir does in fact set the directory in which the wandb directory is stored. My experiments confirm that.


No Entry.Message in output

 logrus.WithFields(logrus.Fields{
    "tag": "walrus.app",
    "dscr": "description",
 }).Info("something happened")

Output:
 2015-08-20T14:56:51+03:00	walrus.app	{"dscr":"description","level":"info"}

@IvanRave  Thanks!
I add entry.Message to "message" when "tag" is set.
If "tag" is not set, entry.Message set to "tag" and not "message" :sushi:


Add a test suite

A test suite needs to be added for automatically testing the extension and validating the HTML output (both standalone and embed-able). The sample document in test/ could be used as a starting point.

A basic test suite has been added. Only the embed-able HTML output is tested in order to avoid needing to track upstream Asciidoctor CSS changes.
Closing this issue.

A basic test suite has been added. Only the embed-able HTML output is tested in order to avoid needing to track upstream Asciidoctor CSS changes.
Closing this issue.


ARROW-11282: [Packaging][deb] Add missing libgflags-dev dependency

@github-actions crossbow submit debian-* ubuntu-*

@github-actions crossbow submit debian-* ubuntu-*


[BUG] All-reduce incorrectly skipped

Currently we skip all-reduce if it is for gradient accumulation and rewritten (call them grad-acc all-reduce). However, after that, such an all-reduce can be merged with all-reduce not for grad-acc. Skip the merged one results in incorrect outputs, we should identify grad-acc all-reduce and only allow them to merge with grad-acc all-reduce.
A reproducible is:
class SkipAllReduceTest(PipelineBasicTest):

    def test_2_layer_bert(self):
        self.run_n_layer_bert(n_layers=2,
                             batch_size=4,
                             seq_len=4,
                             hidden_size=4,
                             num_heads=1,
                             pipeline_stage_mode="manual_gpipe",
                             forward_stage_layer_ids=[[0,], [1]],
                             overwrite_global_config_dict=dict(
                                sub_physical_mesh_shapes=[(1, 2)] * 2,
                                sub_logical_mesh_shapes=[(1, 2), (2, 1)],
                                submesh_autosharding_global_configs=[dict(force_batch_dim_to_mesh_dim=0)] * 2,
                                allow_all_gather=True,
                                use_scatter_gather=False
                             ))

Fixed by https://github.com/alpa-projects/tensorflow-alpa/pull/129


For shared use in di2 and soda-fountain

Soda-fountain is going to share di2's Cassandra cache for MapQuest results and this is what di2 is currently using.

socrata-thirdparty-utils #124 SUCCESS
This pull request looks good

ship it!


feat(js-sys) Implement String.split with regexp.

Tests are not running locally. Don't know why yet. Meanwhile, let's wait on Travis.

Thanks!


renderer: rewrite 8ba2505 in a better way, do not build unused GLSL shaders

This is just 8ba2505033014de931b5a00525b6b04b0b6d0e08 rewritten in a better way: no need to pop from a list something that is never added to the list to begin with.
Also maybe the bloom string for bloom was wrong since the shader is named screen.

This was tested on a large range of hardware and works as expected. Part of #381 can be rewritten in a better way once this is merged.


rapidjson/document.h is not found

Hi I am getting include error in JsonParson.hpp since i am not able to find this header file rapidjson/document.h in the line
#include <rapidjson/document.h> ..
I have succesfully built the libraries for the master branch in ubuntu.I adding the headers to run my code but i get errors due to dependency on this file. Kindly let me know where i can find this header file.

As a quick, but not-ideal solution, you can download, build, and install rapidjson the same way the SDK does (https://github.com/Tencent/rapidjson).
A better solution would be to either move rapidjson to a formal pre-requisite (ala Openssl) or have the external project do a build and install of the header files.

Ok Thanks a lot. I also get this error OpenSSLConnection.hpp" even though i have added the include path to aws-iot-device-sdk-cpp/network/OpenSSL in the include files.
fatal error: OpenSSLConnection.hpp: No such file or directory
#include "OpenSSLConnection.hpp"
^~~~~~~~~~~~~~~~~~~~~~~


Provide options context to apply_filter

Overriding apply_filter is the recommended way to implement custom
filters. However if filtering relies on the context (e.g. current_user)
it was not possible to implement the custom filter. This passes the
options context to the apply_filter method so it is available when
overriding in a resource.

Tests passing now.

Good catch.

Good catch. Thanks!


Fix delete of CNI socket file

Coverage increased (+0.09%) to 76.547% when pulling<PHONE_NUMBER>f26fb8c8e167d35191a0320abd0476 on rastislavszabo:master into 0504f779b333b092ec1a545f0aa2a65d22d18f17 on contiv:master.


Question: how to get the value of  a given label of a metric

Hi, all!
I've get a metric through some experssions, for example, the expression is discovering_paas_clusters{cluster_id="XXX",exporter_replica="XXX"} ,
and the metric i get is
discovering_paas_clusters{cluster_id="XXX",cluster_status="Hibernation",exporter_replica="XXX"}=1.
Now what i want to get is the value of the label "cluster_status". How can it achieve the goal?
Thank you!

I have the same problem :(

It makes more sense to ask questions like this on the prometheus-users mailing list rather than in a GitHub issue. On the mailing list, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.


Can't use filter

I tried to put the filtering criteria according to the help in this page (https://docs.gramaddict.org/#/configuration) in the config.yml file but I am getting these errors:
config.yml has been saved last time at 2024-03-18 20:49:35
[03/18 20:50:30]     INFO | Do you want to update/create your config-examples folder in local? Do the following:
pip3 install --user gitdir (only the first time)
python3 -m gitdir https://github.com/GramAddict/bot/tree/master/config-examples (python on Windows)
[03/18 20:50:33]     INFO | Checking for updates...
[03/18 20:50:33]     INFO | Bot is updated.
[03/18 20:50:33]     INFO | GramAddict v.3.2.11
[03/18 20:50:33]     INFO | Loading plugins . . .
[03/18 20:50:33]     INFO |   - ActionUnfollowFollowers: Handles the functionality of unfollowing your followers
[03/18 20:50:33]     INFO |   - ClonedApp: Adds support for cloned apps
[03/18 20:50:33]     INFO |   - CoreArguments: Simply adds core arguments
[03/18 20:50:33]     INFO |   - DataAnalytics: Generates a PDF analytics report of current username session data
[03/18 20:50:33]     INFO |   - InteractBloggerPostLikers: Handles the functionality of interacting with a blogger
[03/18 20:50:33]     INFO |   - InteractBloggerFollowers_Following: Handles the functionality of interacting with a bloggers followers/following
[03/18 20:50:33]     INFO |   - InteractBloggerPostLikers: Handles the functionality of interacting with a blogger post likers
[03/18 20:50:33]     INFO |   - InteractOwnFeed: Handles the functionality of interacting with your own feed
[03/18 20:50:33]     INFO |   - InteractHashtagLikers: Handles the functionality of interacting with a hashtags likers
[03/18 20:50:33]     INFO |   - InteractHashtagPosts: Handles the functionality of interacting with a hashtags post owners
[03/18 20:50:33]     INFO |   - InteractPlaceLikers: Handles the functionality of interacting with a places likers
[03/18 20:50:33]     INFO |   - InteractPlacePosts: Handles the functionality of interacting with a places post owners
[03/18 20:50:33]     INFO |   - LikeFromURLs: Likes a post from url. The urls are read from a plaintext file
[03/18 20:50:33]     INFO |   - RemoveFollowersFromList: Remove account followers from a list of usernames
[03/18 20:50:33]     INFO |   - TelegramReports: Generate reports at the end of the session and send them using telegram
[03/18 20:50:33]    ERROR | Unknown arguments: --min_followers=100, --max_followers=1000, --min_followings=300, --max_followings=50000, --min_potency_ratio=1, --max_potency_ratio=2, --min_posts=100, --blacklist=“sex”, --blacklist=“furry”, --blacklist="sexy", --mandatory_words=“cat”, --mandatory_words=“kitten”, --mandatory_words=“meow”, --specific_alphabet=“LATIN”, --specific_alphabet=“ARABIAN”, --biography_language=ch, --biography_language=en, --biography_banned_language=es, --biography_banned_language=ch
These are the important filtering criteria, is it not supported?

Where should I place the filters.yml file? Should I put it in accountname folder or the folder same level with config.yml and gramaddict?

Inside your accounts/yourname folder

thanks.... it works now.


[23.1] helidonQuickStart fails due to experimental options warning

It fails with:
helidonQuickStart{TestInfo}  Time elapsed: 60.555 s  <<< FAILURE!
org.opentest4j.AssertionFailedError:
build-and-run.log log should not contain error or warning lines that are not whitelisted. See /disk/graal/upstream-sources/mandrel-integration-tests/testsuite/target/archived-logs/org.graalvm.tests.integration.RuntimesSmokeTest/helidonQuickStart/build-and-run.log and check these offending lines:
[INFO] Warning: The option '-H:IncludeResources=io/helidon/common/media/type/default-media-types.properties' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] Warning: The option '-H:IncludeResources=META-INF/helidon/media-types.properties' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
[INFO] Warning: The option '-H:Path=/disk/graal/upstream-sources/mandrel-integration-tests/apps/helidon-quickstart-se/target' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] Warning: The option '-H:IncludeResources=application.yaml|META-INF/native-image/reflect-config.json|logging.properties' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/io.netty/transport/reflection-config.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] Warning: The option '-H:Name=helidon-quickstart-se' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future. ==> expected: <true> but was: <false>
        at org.graalvm.tests.integration.RuntimesSmokeTest.testRuntime(RuntimesSmokeTest.java:166)
        at org.graalvm.tests.integration.RuntimesSmokeTest.helidonQuickStart(RuntimesSmokeTest.java:227)

All the integration test is doing is invoking mvn package. The rest is driven by the helidon-maven-plugin. We might need to remove/disable helidon when 24.0 comes out and blocks experimental flags use without unlock.


Added options for "force" and animation timing.

Do I have to do something? It says my "fork" is still tow commits ahead of yours?...

Hi, sorry for my partial approval of your PR. It was actually my first on GitHub and I was in a hurry on my way out so it seemed that I didn't do it correct.
Should be OK now...?

Looks good! I'll delete my fork now. :)


Bug: Pagination show-last variant clickable on overflow icon

On pagination variant show-last, when I click the overflow icon, the pagination suddenly expanded and stops working properly (not triggering on Select). To reproduce:

Open storybook https://opensource.ebay.com/ebayui-core-react/main/index.html?path=/story/ebay-pagination--variant-showlast-interactive (ebay-ui-core-react v3.6.0)
Click the overflow  (...) icon
The pagination suddenly expanded and you cannot update the selected page anymore

See video below
https://user-images.githubusercontent.com/1072047/205666370-499cc953-d703-41a6-9a0a-baac7316a914.mov
Expected:

The overflow icon should not be clickable for show-last. The icon should be not interactive (see eBay skin https://opensource.ebay.com/skin/#pagination)

looks like it was broken by overflow implementation


feat(validator): allow to use custom validator

PR Type
New feature
BC Break
Yes, see CHANGELOG file
Description
Allow end user to define a custom validator
Sample
PhoneFormField(
  validator: (PhoneNumber? phoneNumber) {
    if (phoneNumber == null) {
      return null;
    }
    final PhoneParser parser = PhoneParser();
    if (!parser.validate(phoneNumber, PhoneNumberType.mobile)) {
      return 'not a mobile line';
    }
    if (!parser.validate(phoneNumber)) {
      return 'invalid format';
    }
  },
);

In your example you use the PhoneParser with the phoneNumberType.
I assume that's just an example you picked to be explicit. However I'm still wondering what's the use case where you'd not want the validation to happen by this lib. I can see one:

The validation that happens in the library is faulty

Not only, in my case I want 2 différents messages depending on invalid or not expected type. I picked up this from my real project :)

I see the need. I've one question: In your current project would it make sens to use a BasePhoneFormField as it would be mostly UI, and do the validation, formatting manually ?

Another common use case is to set this field required as well as a phone number validator.
We can even to expose a validator class, so that it can used as follow:
PhoneFormField(
  // message argument is optional
  validator: PhoneValidator.compose([
    PhoneValidator.required(context, message: "This field is required"),
    PhoneValidator.invalid(context, message: "Invalid phone number"),
    PhoneValidator.type(context, PhoneNumberType.mobile, message: "Not a mobile phone number"),
  ]),
)

This way, end user may use multiple validators depending on the use case and define a specific message for each type if wanted. Inspired by flutter_form_builder validation

I've done the changes PARTIALLY :

PhoneValidator is created with defaults error messages, no localization texts added for now.
I don't change the phoneNumberType usage for now.

This may be confusing to have phoneNumberType, errorText message, and validator, I can see 2 ways of handling this :

perform an assertion on PhoneFormField constructor to check that phoneNumberType and validator cannot be defined simultaneously, and then internally :

when neither phoneNumberType nor validator are supplied : create the invalid validator (using errorText if supplied)
when phoneNumberType is supplied : create the type validator (using errorText if supplied)
in all case : remove the default errorText value and let property be nullable as this is now handle by the validator itself

remove the phoneNumberType & errorText and let user defines it own navigator if needed, otherwise add a default invalid validator

In both case above, I suppose it makes sense to always add an invalid validator when user does not explicitly set a validator.
In rare case where the user don't want this default validator, it can be disable by adding a fake validator : (PhoneNumber? p) => null
IMHO I think that solution 2 is more reliable : less conditions to test, less tests to write, less complexity, so less code and less bugs. (Keep in mind, that solution 2 is however a BC break change)
Any ideas, recommandations before I perform these latests changes ?

In your last message, are you using the word navigator incorrectly or is it on purpose ?
For example here

remove the phoneNumberType & errorText and let user defines it own navigator if needed, otherwise add a default invalid validator

A Validator interface could do the work and the user can give a new one (deprecation of old fields). I like the idea of a class, because it would allow for compose method like in your example.

It's an error, should be validator ;)

I'm not against breaking changes as this library is kind of young it's better to do those changes now, with deprecation when possible is the way to go.

My initial use case was to have 2 distincts message for invalid & type not allowed.
But with your remark, I think you're right, and exposing an invalid validator, with an optional type may be sufficient, just a bit less explicit.
Moreover, my original use case is still available like this:
  validator: PhoneValidator.compose([
    PhoneValidator.invalid(context, errorText: "Invalid phone number"),
    PhoneValidator.invalid(context, type: PhoneNumberType.mobile, errorText: "Not a mobile phone number"),
    // ...
  ]),

Is this what you had in mind ?

I want to deprecate the phoneNumberType property to completely remove if in a future release. Or alternatively we could completely remove it now but that introduce a breaking change without warning.

I will update this way. Good practices are good practices, whatever amount of users ;)

What about the errorText property, do you think it makes sense to remove it in a future release too (and thus, deprecate it too) ? My opinion is yes, looking forward to hear yours ;)
Do you want me to write a migration guide ?

But with your remark, I think you're right, and exposing an invalid validator, with an optional type may be sufficient, just a bit less explicit.

May be you tell me what you think of my proposition above when you had time to ?

Sorry for multiple questions in one, as I will be offline in a moment for the next few hours and will try to finish this tonight, this might be helpful for me to have your opinion when I will get back so I can make the changes in the expected way ;)

What about the errorText property, do you think it makes sense to remove it in a future release too (and thus, deprecate it too) ?

Yes, it is now the responsibility of the validator.

Do you want me to write a migration guide ?

In my opinion if the validation is explained in the documentation and the changelog is explicit, then a migration guide is not needed.

But with your remark, I think you're right, and exposing an invalid validator, with an optional type may be sufficient, just a bit less explicit.

Well I'm not sure and I was not sure when writing it either. I hoped the discussion would bring us toward a decision. If we consider the use cases people generally have I'd say they generally want any phone number or a mobile phone only.
In that case PhoneValidator.invalid(PhoneNumberType.mobile, 'Invalid mobile phone number'); might provide a better API.
Or even:  PhoneValidator.invalidMobile & PhoneValidator.invalidFixedLine & PhoneValidator.invalid, which better handles error messages by default.

Wouldn't this work ?
Validators.compose([
  Validators.required(),
  Validators.invalid('Incorrect format'),
  Validators.invalidMobile('This number is not a valid cellphone number'),
])

Or even:
Validators.compose([
  Validators.required(),
  Validators.invalid('Incorrect format'),
  Validators.invalidType(PhoneNumberType.mobile, 'This number is not a valid cellphone number'),
])

I've refactor code according to your advices.
PhoneValidator.required(context, ...),
PhoneValidator.invalid(context, ...)
PhoneValidator.invalidType(context, expectedType, ...)

// convenience method for PhoneValidator.invalidType(context, PhoneNumberType.mobile, ...)
PhoneValidator.invalidMobile(context, ...)

// convenience method for PhoneValidator.invalidType(context, PhoneNumberType.fixedLine, ...)
PhoneValidator.invalidFixedLine(context, ...)

Can you please validate the default message in English so I can make the translations for others languages ? It's quite a repetitive tasks to translate in all supported languages, so I would like to avoid doing it twice as possible ;)
Note that I will use Deepl for this, tell me if you have a better solution/strategy ;)

I have another interrogation about deprecating errorText in BasePhoneFormField.
I did not find another solution than removing default value and make errorText nullable to ensure it will still work on both previous and new manner of handling validator.
However this seems like a breaking change as a standalone BasePhoneFormField ...

without errorText supplied
and a custom validator not properly written (ie: not returning the String that user want to be displayed)

...may not flag a field as invalid if the validator is not properly defined.
But as it seems to be like a bug on previous version (ie: the validator returned value was ignored due to the usage of errorText property), I think this an acceptable BC. Curious to hear what's your opinion about that ;)

Sorry for some reason I did not see your last message:
For your other PR I made a change to the translation files which are now .arb files and need to be generated with the command -flutter gen-l10n . The property keys must be valid dart property names though. So please either rebase on the localization_arb_fix branch or use already valid names so it will be easy for me to make the merge.
Therefor the properties should look like this:
  "phoneNumberRequired": "Phone number required",
  "phoneNumberInvalid": "Phone number invalid",
  "invalidCountry": "Invalid country", // although I'm not sure where that is displayed ?
  "invalidMobilePhoneNumber": "Invalid mobile phone number",
  "invalidFixedLinePhoneNumber": "Invalid fixed line phone number",

For the error text issue, tbh I did not understand exactly what you were saying. Does the field not become invalid when the errorText is not provided by the user ? If the field is marked as invalid when it is invalid I don't see an issue with a BC especially if it's a bug.

Sorry for the delay, this was a busy week.

For the localization strings keys, I will update this. Be aware that it can introduce breaking change for english application as the PhoneFormLocalization was optional to get corrects invalid message. Updating this will make it required otherwise the camelCase string will be used instead ;)

For the errorText,  if the errorText is not provided, it still flag the field as invalid with the previous default errorText as expected. The problem is only with the usage of BasePhoneFormField when supplying validator property. Previously, the validator output was not used because the getErrorText method was returning the widget errorText property and not the errorText state info. I maintain this weird behavior (seems more like a bug imho) to avoid breaking change. This may however create kind of a breaking change if validator was defined manually and not used properly.

Here's an example of a previous code that will be affected:
BasePhoneFormField(
  validator: (...) {
    if (/* check for invalid */) {
      return 'fake message not expected to be used as widget.errorText '
        'was displayed (validator output was ignored)';
    }
  }
  //errorText not defined
)

With the above example :

previously: the default previous constructor argument errorText was returned (ie: Invalid phone number)
now: it will return the fake message above as I have removed the default errorText value and change it to a nullable String

Hmmm, due to the recently introduced localization changes (from localization_arb_fix branch), this PR is already breaking backward compatibility.
Thus, I don't see the interest anymore in deprecating errorText & phoneNumberType, only cons (more complex, more error prone). What's your opinion about this ?

Yeah just go ahead and remove the unnecessary code, let's keep things simple

I don't think translations keys are problematics as they are not reals words anymore. At least in deepl, they aren't translated.
FYI,  at work, according to our team mates who are native from others countries, we use deepl because they find it more efficient and it produces less word by word translations than google translations.

Ouch, I don't think the add-favorites feature should be included here. I've rebased on localization_arb_fix and it seems that this branche includes WIP code. I've squash my commits after rebasing so it looks like only my last commit and yours addressing l10n issues should be included here.
Take a look and tell me if you want me to rebase/squash for a proper git history and/or separated features branches.
I've also updated CHANGELOG & README, don't hesitate to reword for better comprehension/english ;)

Ho damn, yeah I might have started from your other branch for that fix to see if it fixed your issue.
As you might have seen I'm not a git history maniac. However since this project is growing in size of contributors it will become increasingly important to have a standard clean git strategy.
So for future PR I'll adhere to the standard of squashing for pull request and not mixing things up.
Concerning this one, the git history here just has too many files to do a clean review. If you already rebased, fixed the comments and the test pass I'm okay with either (merging this as is or merge before your rebase).
What I propose though, is merging the other merge request first. The one with validation (I merged it on a separate branch in order to create the flutter issue) but it eventually needs to be merged in dev. That flutter issue has been reproduced by the flutter team btw.

I can merge my last changes done yesterday about favorites countries in this one (I've added few tests), resolve conflicts with current dev branch and ensure that all tests are passing so you have only this PR to accept.
Is this ok for you ?
I hope I can do this in the evening/night or tomorrow at most :)

Yes that would be perfect. Then a new major version could be released beginning of next week. I've a breaking change I need to introduce as well and now is a good time.

My idea is to have favorites countries feature and custom validator feature in this PR. I will perform rebase or cherry pick (I don't really know currently what will be the easiest/secured way) to have a forward history related to current dev branch.

Not sure if it will help but I've refactored the inputs in a branch called refactor_controllers_form_field. If you hit a problem it might be fixed there as it seems it fixed multiple issues.

I haven't work yesterday evening due to lack of sleep. Seing your message, I think this was a good idea, as I would probably had squash the localization_arb_fix to perform a rebase without having to resolve conflicts on each of your commit.
As your new fix branch start from localization_arb_fix, squashing is not an option anymore.
Although it will give me more work, this may be a better strategy to start working from your last development. In this way, if you are confident with latests fixes introduced in your fresh refactor branch, it may be a good idea to merge your code into dev branch, and I will manage to update my code from this new starting point.
However those last changes will produce a lot of friction with my current development. I don't know how it can be addressed easily. I won't surprised if it forces me to refactor lots of the new features code.

Oh, you don't have to rebase on my latest fixes dude, my plan was to wait for your PR, I just did some prepary work to see if my refactor idea could work.
I was just letting you know that there is a new branch  where the code is a bit easier to understand. I'll do the merge after don't worry. Of course if you want to rebase anyway you are welcome to do it but that's certainly not a requirement

I just notice that the BasePhoneFormField is not a FormField anymore in your last refactored branch. I'm not sure of the consequences of this change, but I'm very worried about this and usage of this widget inside a form, as well for submitting data and retrieving it, data validation, autovalidation features, and all the handling previously done by form field.
The validation I've add seems almost useless, at least obsolete with this way of handling data. Either the package/widget name are pretty confusing too. Sure you wan't to refactor this in the upcoming next version ? (I think this needs more tests in a Form context to ensure that the package will still be usable)

Before PhoneFormField was a StatefulWidget and base was FormField now it's the opposite. Making them both FormField is an option though.
No the refactor does not have to be in the upcoming version.

I miss the fact that it has been swapped between PhoneFormField and BasePhoneFormField.
Thanks for this clarification ;)

Is that okay if I merge this on a lateral branch to apply the fixes on it myself or have you started ?

I don't understand the produced diff, a lots of files are fully modified but contents is the same. Did you change formatting ? spaces/tabs ?

I have merged the changes from this branch onto my other branch. There is just 2 files with errors regarding validation.
I ve done it on that branch validation_favs, does that help ?

When I switch onto validations_favs I've got 16 errors on my side

there should be 5 now

Got 6 ;) but I'm still on flutter 2.2.3 because my work app cannot be upgraded until all dependencies have been updated.
Currently upgrading to 2.5.1 for this project only...

What dart sdk version are you on ?

[✓] Flutter (Channel stable, 2.2.3, on macOS 11.3 20E232 darwin-x64, locale fr-FR)
    • Flutter version 2.2.3 at /Users/emri/fvm/versions/2.2.3
    • Framework revision f4abaa0735 (3 months ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

I notice that you have removed usage of the light parser in the validator class, but not the arguments useLightParser is this present. just a missed point or volontary ? ;)
Noticed too, that I forgot to remove a comment I made to validate a test (phone_validator.dart:61-62) ;)

That is a missed point. light parser is not used anymore. Actually in the way it was included it never was.

https://gitter.im/cedvdb/phone_form_field I've created a gitter for discussion


Fix for #9922, Part 2: content type

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
As commented on #9922, an additional regression with the introduction of the new github_api action at #8971 causes file uploads to fail in the set_github_release action when the filename does not include ".zip".

Description
This PR restores the pre-existing behavior of using the application/zip content type header for all uploaded binary files.

😄

is this not released yet? could we make the release faster? as our teams need to attach the binaries immediately 😄

ah nevermind, its still possible with .zip though. thanks for the fix anyway @provTheodoreNewell

Hehe, we generally avoid shipping new releases during a weekend 😉


added some error handling + logging

Running into issues when create_annotation mode was run before copying screenshots. Adding error handling for same,


Expiration date for false positives

Hi,
there are various reasons why this is useful to have:

Prevent alert fatigue. Sometimes it's not possible to work on a finding right away. Then you currently have two choices: either do nothing and the scan will keep failing with a chance that you're missing new findings, or record it as false positive and probably forget about it.
Hygiene. Code changes a lot, so to prevent the list of false positives to grow out of control, it's a good idea to revisit findings regularly to see whether they are still relevant, and potentially clean them up.

OWASP dependency-check, for example, supports this:
<suppress until="2020-01-01Z">

Thanks!

Hello @dAnjou ,
Reading your issue , I had some thoughts like:

Sounds like a "autoclean" feature for false-positives (when they should vanish/deleted automatically)
How shall the suppression be configured? Globally, per project or by using the SecHub go client/new REST API call?
Shall it be automatically done or is this a manual process ?
New REST API necessary ?
Which role does describe this, is allowed to ? Every project user, the project owner?
What if there are people who want the expiration and some not - an auto cleanup feature which drops old false positives could be problematic for some projects (means effort)
... some more thoughts...

But I think there are good reasons for something like an expiration (you described 2 of them).
We had a similar issue at #2138 were we thought about disabling false-positives for a job by config json - e.g. for security experts to check if the false positive parts are really still false positives.
Please read
https://github.com/mercedes-benz/sechub/issues/2138#issuecomment-1534604043
I added there an idea of  exclude/filter configurations which are older than a given amount of time.
Would this target your issue as well?

Hi @de-jcup, thanks for the response!

Sounds like a "autoclean" feature for false-positives (when they should vanish/deleted automatically)

I'd rather not have them auto-cleaned. It should still be a human who decides whether a false positive entry is still necessary.

How shall the suppression be configured? Globally, per project or by using the SecHub go client/new REST API call?
Shall it be automatically done or is this a manual process ?
New REST API necessary ?

Not sure, I understand these questions. From a user perspective, I like how OWASP dependency-check does it: per false positive entry.

Which role does describe this, is allowed to ? Every project user, the project owner?

The people maintaining the false positive entries decide when they should expire.

What if there are people who want the expiration and some not - an auto cleanup feature which drops old false positives could be problematic for some projects (means effort)

If I understand correctly, a false positive entry belongs to a certain codebase. So, the team who maintains that codebase should agree on whether the finding is in fact a false positive and if so, when the entry should expire.

We had a similar issue at #2138 were we thought about disabling false-positives for a job by config json - e.g. for security experts to check if the false positive parts are really still false positives.

We don't have a use case for disabling all false positive entries.

Please read #2138 (comment) I added there an idea of exclude/filter configurations which are older than a given amount of time.
Would this target your issue as well?

Hmm, it's a bit hard for me to follow your comment over there because you mix user experience aspects with implementation details in the backend.
It seems your suggested filter would apply to all false positive entries, and like I mentioned, I'd rather have it per each entry. Maybe having both is possible, with entry configuration taking precedence over project configuration.
In any case, I'm generally not a fan of the word "filter", it's a bit arbitrary, I never really know what is kept and what is discarded. I'd rather use more descriptive words, like "include" or "exclude".

We will think about the feature and give you feedback.
Just a remark: Marking false positives is a ONE step only which should be done only once by a developer / security expert and should normally not be part of automation steps (CI/CD). If you need this for your (current) workaround it is okay, but if we implement your wanted feature you should not automate it afterwards (IMHO).

Hello @dAnjou - I'm a little bit curious: Do you normally use the sechub client interactive mode to mark your false positives? Or do you download the false positive JSON, change it and update it ? Just to clarify if the client change (for interactive mode) is also urgent for you or not.


add extendRoutes Support for meta properties

Route meta property is not supported using extendRoutes configure.

Codecov Report

Merging #3239 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #3239   +/-   ##
=======================================
  Coverage   97.27%   97.27%
=======================================
  Files          18       18
  Lines        1100     1100
  Branches      295      295
=======================================
  Hits         1070     1070
  Misses         27       27
  Partials        3        3

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 0aa6e9b...3e62642. Read the comment docs.

?


Improve mean/median_absolute_error

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (114de6e) to head (142a95f).
Report is 9 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #276   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           97        97
  Lines         2358      2358
  Branches       214       214
=========================================
  Hits          2358      2358

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Precompiled releases

Can we get precompiled releases so we can sideload qflipper as an option?

Hi! Could you be more specific? What kind of problem you trying to solve?

Hi! Could you be more specific? What kind of problem you trying to solve?

Adding a precompiled .ipa to the releases page. I forgot my apple account info on my ios test device and don't feel like getting my info reset or using some annoying cert signing service like test flight. A simple checkra1n, wget link, then apt install *.ipa is all anybody should need to use a piece of FOSS on ios instead of having to use or get around walled gardens and other noise like it. So for those who have a rootable ios devices it would simplify/be faster installing qflipper that way, even better is to make a cydia repo and push qflipper there to make it even easier for people with a rooted ios device.


Mapped entity listeners are now processed by metadata exporters

The current implementation of the exporters are not taking the entity
listeners into account. I have added test cases for most of the edge
cases I could think of and implemented the Exporter handling.
This PR originates from https://github.com/doctrine/doctrine2/pull/5864,
I was overwhelmed by the amount of conflicts I had to resolve so I
started anew on a clean master HEAD.

@tPl0ch see failures on https://travis-ci.org/doctrine/doctrine2/jobs/260960064#L594

@Ocramius I think I have fixed the issues regarding the nullable return types. I totally forgot that a method that has no return statement now actually is none and not null. Also inversed a few conditions to have early returns.

@Ocramius should be fine now (hopefully)...

@tPl0ch manually merged via doctrine/doctrine2@76e2155fb34f69901bff7c0e3cd3768fc54dcf75
Sorry for the method hints - I had to revert them, since those classes are open for inheritance, so the additional hints are a BC break.
See https://3v4l.org/kSIhN for the specifics.

Also, thanks for enduring the review hell we generally fire in contributors' direction :-)

@Ocramius is there a phpcs standards configuration file for Doctrine so that all that CS issues can be caught during development?

There is, but we don't apply CS changes yet due to the amount of open PRs that would conflict for no good reason

https://github.com/doctrine/coding-standard
On 16 Aug 2017 9:10 PM, "Thomas Ploch"<EMAIL_ADDRESS>wrote:

@Ocramius https://github.com/ocramius is there a phpcs standards
configuration file for Doctrine so that all that CS issues can be caught
during development?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/doctrine/doctrine2/pull/6593#issuecomment-322870388,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJakDnXSzCZ5F10qVpA0dtIVkMNhAJiks5sYz61gaJpZM4OphCN
.


NVD list is running on the screen

Describe the bug
I started EMBArk as
$ TIME_ZONE="CET" sudo -E ./run-server.sh -a <IP>
and after the initialization the nvd list was running for 3 minutes on the screen:

Maybe it is ok but it has never been displayed.
Another minor issue is that I wanted to use my AI API key, which is valid, but EMBArk faild to use it and this was displayed many times:

To Reproduce
Steps to reproduce the behavior:

EMBArk installation (default mode)
Start EMBArk: sudo ./run-server.sh -a IP
See the output

OS: Ubuntu Server 22.04.3

I haven't used the openai api key in EMBArk yet, but that particular error would indicate a problem with the api key
When you say it's valid, is it working somewhere else?(e.g curl directly)
The NVD output is a sync between the actual submodule directory and the one used by the server. (just as an explanation)
Will see what's the issue is

I exceeded my quote with the key, please ignore this screenshot.
I just wanted to share the running nvd section, which takes some time when I start EMBArk, but it goes fine at the end.

Sorry, but the nvd list is running for 5 minutes during EMBArk initialization:

It is not critical but I can't see any difference. May it is good as it is just a bit of a surprise to wait.

Current sync operation is the fastest, i checked
It's due to a lot of separate files on initial copy


Error during add integration

Hello,
first thank you for your exciting work. I was searching very intense how the Amper.Storage can be integrated in some HomeAutomation system. Trying to test the integration I ended up in the following error:
Config flow could not be loaded: {"message":"Invalid handler specified"}

I run HASS in WSL (installed after this: https://www.home-assistant.io/installation/windows#install-wsl, with version 2024.10.3)
I installed the component as descripted via HACS and verified that all files in custom_components folder:

In the logs I found:
2024-10-20 23:43:19.950 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading flow for integration ampere_modbus: No module named 'pymodbus.register_read_message'
Checking Python-Environment pymodbus is installed:
(homeassistant) homeassistant@Computer:~$ pip list pymodbus
Package Version
------- -------
pip     24.0

Are there some requirements missing? I'm new to HASS - are missing requirements added automatically if a new custom component is added?
Thank you for your help in advance!

I found the issue - in hub.py the import has to be changed to:
from pymodbus.pdu.register_read_message import ReadInputRegistersResponse
After that I could import it.
But nevertheless - is there something to enable. Connection from inverter is refused.
2024-10-21 14:58:43.722 ERROR (SyncWorker_3) [custom_components.ampere_modbus.hub] Reading inverter data
2024-10-21 14:58:43.729 ERROR (SyncWorker_3) [pymodbus.logging] Connection to (<IP_ADDRESS>, 502) failed: [Errno 111] Connection refused
2024-10-21 14:58:43.730 ERROR (MainThread) [custom_components.ampere_modbus.hub] Reading realtime data failed! Inverter is unreachable.

Some additional comment - I tested it on an Raspi, too. It seems there are different version used of pymodbus. Here the initial import is working.

Thanks for the hint.
Did you install the component manually (copy & paste) or by adding the repository in HACS?

Information about the REST API:
The Ampere.IQ-BOX provides an API. There is a yaml for HA for this:
https://github.com/dboeni/home-assistant-ampere-storage-pro
However, I will only focus on and develop the Modbus variant

For WSL I installed it via HACS and cross-checked it where it is installed. I just checked with pip the packages installed (I didn’t install additional packages – so I think HACS take care – I did see the requirements in the manifest). The modification I made in place.
On Raspi, I used the Backup from WSL and modified in place.
Thanks for the hint.
Did you install the component manually (copy & paste) or by adding the repository in HACS?
—
Reply to this email directly, view it on GitHub https://github.com/dboeni/home-assistant-ampere-storage-pro-modbus/issues/6#issuecomment-2428795167 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AZ3XB6BXDDZJLU2I2BZ2HU3Z4YMU5AVCNFSM6AAAAABQI5KA6GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRYG44TKMJWG4 .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AZ3XB6EZ5CEBCRB66ZAQWHLZ4YMU5A5CNFSM6AAAAABQI5KA6GWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUQYR4R6.gif Message ID: @.*** @.***> >


Mealie V1.00 support for Arm64 (such as Rpi)

Hi Alex
Thanks for some great addons.
I've noticed that you only support version 0.4.3 for AR; devices such as the Raspberry Pi. Raspberry Pi can also run 64bit ARM (eg.:https://github.com/home-assistant/operating-system/releases/download/8.5/haos_rpi4-64-8.5.img.xz), which perfectly well supports version 1.00beta4 (currently the newest version).
I was hoping you could change your build.json to support v1.00 on 64bit ARM devices?
Thanks!

Hello, actually this request is already open here : https://github.com/alexbelgium/hassio-addons/issues/356
Due to the way mealie 1.0 is created, I prefer to have a all-in-one solution instead of 2 separated addons. We are lucky that a dev is already working on this, and have put in place images for amd64! He is also working on images for aarch64 https://github.com/hendrix04/mealie-combined/issues/2#issuecomment-1163043687, as soon as those are available, I'll update my ARM 64 bit addon to v1.0

I'll therefore close this request, as it is already tracked elsewhere. Thanks for raising the point!