cant signInWithCustomToken using .getToken as parameter

Trying to sort out a persistent login where I save the token using getToken in storage and then log back in with it when the page loads, using signInWithCustomToken (mobile app).
Error:
ERROR Error: Uncaught (in promise): Error: signInWithCustomToken failed: First argument "token" must be a valid string.
Part of code ('current_session' set to .getToken() when signInWithEmailAndPassword)
`
try {
  this.storage.get('current_session').then((token) => {
    const result = this.afAuth.auth.signInWithCustomToken(token).then(function(result){
      var usertoken = result.getToken();
      this.storage.set('current_session', usertoken);
      console.log("onload:"+usertoken)
    })
  });

`

This is likely from your token being empty, you have no handling for that; also you don't have to do this. Firebase will persist the login for you.

The token wasn't empty and persist login doesnt seem to be automatically set up for me any solution to this?


Code cleaning

First round of code cleaning, a result of sonarcube scans. What is left to be done, is to ditch regular pointers, and use the managed ones.

There is a lot left to be done, like migrating pointers to something managed


⚠ GreatPosterWall has degraded performance

In 56c272b, GreatPosterWall ($GPW) experienced degraded performance:

HTTP code: 200
Response time: 1998 ms

Resolved: GreatPosterWall performance has improved in 967fbca.


[Bugfix] Fix cookie addition in ghostdriver

This fixes the problem of needed domain (while the spec specify that the current domain should be take instead).

@Nek- have you tried building phantomjs 2.1.1 with commit d0388371cfda166d97165c1b68182857b954cc83?

@jesg thanks for reactivity :)
About domain required, according to your link it's guesst automatically based on the current page !
Fact is that selenium guess it most part of the time. Just like phantom if there was no check in the webdriver script. This is a problem because it's a compatibility break with selenium and breaks many libs that don't specify the domain when the user decide to use phantom... So I guess it should be considered.
(thanks anyway I didn't found the spec and wasn't expected it from w3c)
About the commit that explain why I didn't find the bug: I was looking the good code :D. Anyway I compiled the wrong version of the code so I'm going to compile the good one to confirm it's ok. (but still doen't fix the second problem, I will need to change my PR but still accurate, isn't it?)
Is it a way to not re-compile the whole project each time ? :S (use to big project in cpp)

@Nek- you are correct ghostdriver does not conform to the webdriver spec when setting cookies.  i'll create a pull request to fix that when i get some time.
the second issue you mentioned is fixed in commit d038837.

Is it a way to not re-compile the whole project each time ?

imo the best solution is to recompile the project.  if your unable to compile the project you can use a bash script i created.  set the PHANTOMJS_GHOSTDRIVER_PATH environment variable to <path to ghostdriver project>/src/main.js.

Ok so I tried to make a fix on master and build a release without success. I don't get how the master branch should be build. So for my usage I took this fix and put it on 2.1 branch.
This is not optimal but well. It works.

btw @jesg I fixed my PR.

@jesg is this issue covered by your PR?

is this issue covered by your PR?

yes.  ghostdriver will set the domain if none is provided.

Ok, closing this one then.


image matcher needs miro data?

I'm trying to use the jackal routines and have done the teach. But for the data matching, the error comes up about there not being file or directory: /home/user/miro/data/full
I modified the launch file so that it knows the folder of current data for matching, but image_matcher.py line 17 throws this error

Which launch file did you modify, and how? Which launch file do you execute?

uriah@uriah-jetson:~/catkin_ws/src/teach-repeat/launch$ cat data_matching_jackal.launch

<rosparam param="data_load_dir">~/robot/teach-repeat-data/2022-03-17_06:17:06</rosparam>
<rosparam param="data_save_dir" subst_value="True">~/robot/teach-repeat-data/2020-09-15_07:00:47-repeat-$(arg odom_corruption_factor)-$(arg repeat_num)</rosparam>

<!--rosparam param="data_load_dir">~/robot/teach-repeat-data/2020-09-17_13:27:47</rosparam>
<rosparam param="data_save_dir" subst_value="True">~/robot/teach-repeat-data/2020-09-17_13:27:47-repeat-$(arg odom_corruption_factor)-$(arg repeat_num)</rosparam-->

<!--rosparam param="data_load_dir">~/robot/teach-repeat-data/2020-10-02_15:24:54</rosparam>
<rosparam param="data_save_dir" subst_value="True">~/robot/teach-repeat-data/2020-10-02_15:24:54-repeat-$(arg odom_corruption_factor)-$(arg repeat_num)</rosparam-->

<rosparam param="wait_for_ready">false</rosparam>
<rosparam param="image_resize_width">115</rosparam>
<rosparam param="image_resize_height">44</rosparam>
<rosparam param="image_subsampling">1</rosparam>
<rosparam param="image_field_of_view_width_deg">75</rosparam>
<rosparam param="patch_size">(9,9)</rosparam>
<rosparam param="image_recognition_threshold">0.1</rosparam>
<rosparam param="goal_pose_separation">0.3</rosparam>
<rosparam param="lookahead_distance_ratio">1.3</rosparam>
<rosparam param="turning_target_range_distance_ratio">0.2</rosparam>
<rosparam param="goal_theta_tolerance">15</rosparam>
<rosparam param="save_full_res_images">false</rosparam>
<rosparam param="save_full_res_images_at_goal">true</rosparam>
<rosparam param="save_gt_data">true</rosparam>
<rosparam param="publish_gt_goals">false</rosparam>
<arg name="use_corrupted_odom"     default="true"/>
<arg name="odom_corruption_factor" default="1.0" />

<!-- Odom corrupter -->
<node pkg="teach_repeat" type="odom_corrupter.py" name="odom_corrupter" output="screen" if="$(arg use_corrupted_odom)">
<arg name="odom_corruption_factor" value="$(arg odom_corruption_factor)"/>
	<!-- remap from="odom" to="odometry/filtered" / -->
	<rosparam param="translation_error_factor" subst_value="True">$(arg odom_corruption_factor)</rosparam>
	<!-- rosparam param="rotation_error_factor" subst_value="True">$(arg odom_corruption_factor)</rosparam -->
	<rosparam param="rotation_error_factor">1.0</rosparam>
</node>

<!-- Load image files for matching -->
<node pkg="teach_repeat" type="image_matcher.py" name="image_matcher" output="screen" >
	<rosparam param="use_old_dataset_format">false</rosparam>
	<rosparam param="use_depth">false</rosparam>
	<rosparam param="use_middle_weighting">false</rosparam>
</node>

<!-- Follow the previous poses using odometry, but use images to correct for odometry drift -->
<node pkg="teach_repeat" type="localiser.py" name="localiser" output="screen" >
	<remap from="odom" to="odometry/filtered" unless="$(arg use_corrupted_odom)" />
	<remap from="odom" to="odom_corrupted" if="$(arg use_corrupted_odom)" />
	<remap from="image" to="ros_indigosdk_occam/image0" />
	<rosparam param="stop_at_end">true</rosparam>
	<rosparam param="discrete-correction">false</rosparam>
	<rosparam param="search-range">3</rosparam>
	<rosparam param="global_localisation_init">true</rosparam>
	<rosparam param="min_init_correlation">0.5</rosparam>
</node>
<!-- Republish the goal as a PoseStamped if we need (send to move_base) -->
<node pkg="topic_tools" type="transform" name="goal_repub" args="/goal goalPose geometry_msgs/PoseStamped m.pose"/>

<!-- Drive to goal pose -->
<node pkg="teach_repeat" type="drive_to_pose_controller.py" name="drive_to_pose" output="screen" >
	<!--remap from="odom" to="odometry/filtered" /-->
	<remap from="odom" to="odometry/filtered" unless="$(arg use_corrupted_odom)" />
	<remap from="odom" to="odom_corrupted" if="$(arg use_corrupted_odom)" />
	<rosparam param="min_omega">0.15</rosparam>
	<rosparam param="max_omega">0.93</rosparam>
	<rosparam param="max_v">0.35</rosparam>
</node>

<!-- Show image matching -->
<!--node pkg="image_view" type="image_view" name="image_match_debug_view" >
	<remap from="image" to="match_image_debug" />
</node-->

When I try to run the above, this error comes up:
uriah@uriah-jetson:~$ roslaunch teach_repeat data_matching_jackal.launch
... logging to /home/uriah/.ros/log/8ccf407c-a6b6-11ec-8691-4b22728317b1/roslaunch-uriah-jetson-9419.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
RLException: [/home/uriah/catkin_ws/src/teach-repeat/launch/data_matching_jackal.launch] requires the 'odom_corruption_factor' arg to be set
The traceback for the exception was written to the log file

Can you try moving this line almost to the top of the file and try again?

Apologies, it didn't copy for some reason:

Yes, that seemed to help. Now this!
uriah@uriah-jetson:~$ roslaunch teach_repeat data_matching_jackal.launch
... logging to /home/uriah/.ros/log/56576f9e-a727-11ec-9d76-9d21e0a58f79/roslaunch-uriah-jetson-8920.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
RLException: [/home/uriah/catkin_ws/src/teach-repeat/launch/data_matching_jackal.launch] requires the 'repeat_num' arg to be set
The traceback for the exception was written to the log file

What is a proper value for 'repeat_num"?

Any value is good, e.g. "1"

Thanks for the answer!
Making progress. But the cmd_vel connection may need adjustment. Mine used
/jet_drive_controller/cmd_vel
How do I remap or get these to connect?
process[odom_corrupter-1]: started with pid [9387]
process[image_matcher-2]: started with pid [9388]
process[localiser-3]: started with pid [9389]
process[goal_repub-4]: started with pid [9390]
process[drive_to_pose-5]: started with pid [9391]
ERROR: Wrong input topic (or topic field): /goal
[goal_repub-4] process has died [pid 9390, exit code 1, cmd /opt/ros/melodic/lib/topic_tools/transform /goal goalPose geometry_msgs/PoseStamped m.pose __name:=goal_repub __log:=/home/uriah/.ros/log/4a831e70-a78b-11ec-8c50-ef8782604021/goal_repub-4.log].
log file: /home/uriah/.ros/log/4a831e70-a78b-11ec-8c50-ef8782604021/goal_repub-4*.log
(1.0, 1.0)
[INFO] [1647699269.959751]: [Image Matcher] no calibration file for left camera specified. Assuming not calibrated
[INFO] [1647699269.969640]: [Image Matcher] no calibration file for right camera specified. Assuming not calibrated
loading images...
[INFO] [1647699270.038363]: [Image matcher] Using cached preprocessed images.
loading complete: 135 images
Global localisation - waiting for first odom and image messages

See https://github.com/QVPR/teach-repeat/blob/1926f80ec45ab0d8a781946104e8e26c80d36cb0/launch/data_matching_miro.launch#L58

Hey, that was wild! Robot mostly spun in place, did some driving forward, hit the wall twice, and spun some more!
I examined the data files saved by the teach routine. I'm not sure that my pose information is correct in saved odom info. I don't see the numbers increasing much for x or y.
uriah@uriah-jetson:~$ roslaunch teach_repeat data_matching_jackal.launch
... logging to /home/uriah/.ros/log/c4454c32-71d1-11ec-9f75-a1ffe840129e/roslaunch-uriah-jetson-9016.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://uriah-jetson:34021/
SUMMARY
PARAMETERS

/data_load_dir: ~/robot/teach-rep...
/data_save_dir: ~/robot/teach-rep...
/drive_to_pose/max_omega: 0.93
/drive_to_pose/max_v: 0.35
/drive_to_pose/min_omega: 0.15
/goal_pose_separation: 0.3
/goal_theta_tolerance: 15
/image_field_of_view_width_deg: 75
/image_matcher/use_depth: False
/image_matcher/use_middle_weighting: False
/image_matcher/use_old_dataset_format: False
/image_recognition_threshold: 0.1
/image_resize_height: 44
/image_resize_width: 115
/image_subsampling: 1
/localiser/discrete-correction: False
/localiser/global_localisation_init: True
/localiser/min_init_correlation: 0.5
/localiser/search-range: 3
/localiser/stop_at_end: True
/lookahead_distance_ratio: 1.3
/odom_corrupter/rotation_error_factor: 1.0
/odom_corrupter/translation_error_factor: 1.0
/patch_size: (9,9)
/publish_gt_goals: False
/rosdistro: melodic
/rosversion: 1.14.12
/save_full_res_images: False
/save_full_res_images_at_goal: True
/save_gt_data: True
/turning_target_range_distance_ratio: 0.2
/wait_for_ready: False

NODES
/
drive_to_pose (teach_repeat/drive_to_pose_controller.py)
goal_repub (topic_tools/transform)
image_matcher (teach_repeat/image_matcher.py)
localiser (teach_repeat/localiser.py)
odom_corrupter (teach_repeat/odom_corrupter.py)
ROS_MASTER_URI=http://<IP_ADDRESS>:11311
process[odom_corrupter-1]: started with pid [9025]
process[image_matcher-2]: started with pid [9026]
process[localiser-3]: started with pid [9027]
process[goal_repub-4]: started with pid [9028]
process[drive_to_pose-5]: started with pid [9029]
[INFO] [1647728607.371245]: [Image Matcher] no calibration file for left camera specified. Assuming not calibrated
[INFO] [1647728607.381103]: [Image Matcher] no calibration file for right camera specified. Assuming not calibrated
loading images...
[INFO] [1647728607.447178]: [Image matcher] Using cached preprocessed images.
loading complete: 135 images
(1.0, 1.0)
Global localisation - waiting for first odom and image messages
Global localisation - best match at pose 133 [correlation = 0.598821]
within goal distance, but theta offset not within tolerance = -19.90 degrees [distance = 0.371]
within goal distance, but theta offset not within tolerance = -19.90 degrees [distance = 0.371]
within goal distance, but theta offset not within tolerance = -19.90 degrees [distance = 0.371]
within goal distance, but theta offset not within tolerance = -19.90 degrees [distance = 0.019]
within goal distance, but theta offset not within tolerance = -19.82 degrees [distance = 0.030]
within goal distance, but theta offset not within tolerance = -19.74 degrees [distance = 0.047]
within goal distance, but theta offset not within tolerance = -19.74 degrees [distance = 0.047]
within goal distance, but theta offset not within tolerance = -19.74 degrees [distance = 0.065]
within goal distance, but theta offset not within tolerance = -19.65 degrees [distance = 0.087]
within goal distance, but theta offset not within tolerance = -19.65 degrees [distance = 0.087]
within goal distance, but theta offset not within tolerance = -19.61 degrees [distance = 0.090]
within goal distance, but theta offset not within tolerance = -19.57 degrees [distance = 0.103]
within goal distance, but theta offset not within tolerance = -19.57 degrees [distance = 0.103]
within goal distance, but theta offset not within tolerance = -20.28 degrees [distance = 0.131]
within goal distance, but theta offset not within tolerance = -18.78 degrees [distance = 0.144]
within goal distance, but theta offset not within tolerance = -18.51 degrees [distance = 0.170]
within goal distance, but theta offset not within tolerance = -18.51 degrees [distance = 0.170]
within goal distance, but theta offset not within tolerance = -18.49 degrees [distance = 0.195]
within goal distance, but theta offset not within tolerance = -18.57 degrees [distance = 0.227]
within goal distance, but theta offset not within tolerance = -18.57 degrees [distance = 0.227]
within goal distance, but theta offset not within tolerance = -18.90 degrees [distance = 0.260]
within goal distance, but theta offset not within tolerance = -18.90 degrees [distance = 0.260]
within goal distance, but theta offset not within tolerance = -19.13 degrees [distance = 0.318]
within goal distance, but theta offset not within tolerance = -19.22 degrees [distance = 0.350]
within goal distance, but theta offset not within tolerance = -19.22 degrees [distance = 0.350]
within goal distance, but theta offset not within tolerance = -19.47 degrees [distance = 0.382]
^C[drive_to_pose-5] killing on exit
[goal_repub-4] killing on exit
[localiser-3] killing on exit
[image_matcher-2] killing on exit
[odom_corrupter-1] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
uriah@uriah-jetson:~$

rod@rod-HP-Pavilion-Laptop-15-eh0xxx:~$ rostopic list -v
Published topics:

/rosout [rosgraph_msgs/Log] 15 publishers
/rosout_agg [rosgraph_msgs/Log] 1 publisher
/tf_static [tf2_msgs/TFMessage] 3 publishers
/tf [tf2_msgs/TFMessage] 5 publishers
/odom [nav_msgs/Odometry] 1 publisher
/diagnostics [diagnostic_msgs/DiagnosticArray] 2 publishers
/jet_drive_controller/odom [nav_msgs/Odometry] 1 publisher
/jet_drive_controller/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/jet_drive_controller/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/joint_states [sensor_msgs/JointState] 2 publishers
/encoder_left_value [std_msgs/Int32] 1 publisher
/encoder_right_value [std_msgs/Int32] 1 publisher
/imu/data_raw [sensor_msgs/Imu] 1 publisher
/camera/realsense2_camera_manager/bond [bond/Status] 2 publishers
/camera/stereo_module/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/stereo_module/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/rgb_camera/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/rgb_camera/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/depth/image_rect_raw/compressedDepth [sensor_msgs/CompressedImage] 1 publisher
/camera/depth/image_rect_raw/compressedDepth/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/depth/image_rect_raw/compressedDepth/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/depth/image_rect_raw/compressed [sensor_msgs/CompressedImage] 1 publisher
/camera/depth/image_rect_raw/compressed/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/depth/image_rect_raw/compressed/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/depth/image_rect_raw [sensor_msgs/Image] 1 publisher
/camera/depth/image_rect_raw/theora [theora_image_transport/Packet] 1 publisher
/camera/depth/image_rect_raw/theora/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/depth/image_rect_raw/theora/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/depth/camera_info [sensor_msgs/CameraInfo] 1 publisher
/camera/depth/metadata [realsense2_camera/Metadata] 1 publisher
/camera/color/image_raw/compressedDepth [sensor_msgs/CompressedImage] 1 publisher
/camera/color/image_raw/compressedDepth/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/color/image_raw/compressedDepth/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/color/image_raw/compressed [sensor_msgs/CompressedImage] 1 publisher
/camera/color/image_raw/compressed/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/color/image_raw/compressed/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/color/image_raw [sensor_msgs/Image] 1 publisher
/camera/color/image_raw/theora [theora_image_transport/Packet] 1 publisher
/camera/color/image_raw/theora/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/color/image_raw/theora/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/color/camera_info [sensor_msgs/CameraInfo] 1 publisher
/camera/color/metadata [realsense2_camera/Metadata] 1 publisher
/camera/extrinsics/depth_to_color [realsense2_camera/Extrinsics] 1 publisher
/camera/stereo_module/auto_exposure_roi/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/stereo_module/auto_exposure_roi/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/camera/rgb_camera/auto_exposure_roi/parameter_descriptions [dynamic_reconfigure/ConfigDescription] 1 publisher
/camera/rgb_camera/auto_exposure_roi/parameter_updates [dynamic_reconfigure/Config] 1 publisher
/goalPose [geometry_msgs/PoseStamped] 1 publisher
/miro/match_image_debug [sensor_msgs/Image] 1 publisher
/jet_drive_controller/cmd_vel [geometry_msgs/Twist] 1 publisher
/odom_corrupted [nav_msgs/Odometry] 1 publisher
/goal [teach_repeat/Goal] 1 publisher

Subscribed topics:

/rosout [rosgraph_msgs/Log] 1 subscriber
/encoder_right_value [std_msgs/Int32] 2 subscribers
/encoder_left_value [std_msgs/Int32] 2 subscribers
/joint_states [sensor_msgs/JointState] 1 subscriber
/jet_drive_controller/cmd_vel [geometry_msgs/Twist] 2 subscribers
/reset [std_msgs/Empty] 1 subscriber
/camera/realsense2_camera_manager/bond [bond/Status] 2 subscribers
/goal [teach_repeat/Goal] 2 subscribers
/odom_corrupted [nav_msgs/Odometry] 2 subscribers
/odom [nav_msgs/Odometry] 1 subscriber
/cmd_vel [geometry_msgs/Twist] 1 subscriber
/camera/color/image_raw [sensor_msgs/Image] 1 subscriber
/tf [tf2_msgs/TFMessage] 1 subscriber
/tf_static [tf2_msgs/TFMessage] 1 subscriber

From the logs:
Global localisation - best match at pose 133 [correlation = 0.598821]
within goal distance, but theta offset not within tolerance = -19.90 degrees [distance = 0.371]
...

The system thinks you started the robot at the end of the teach path based on the images. But the robot isn't able to turn to be in the right direction for the goal.
If your teach path did a loop, going through the start location more than once, the global initialisation might think you're starting somewhere along the route instead of at the start. If this is happening you can disable the global initialisation (then you have to start the robot at the start of the route), or change the teach route not to have this overlap if you can.
But like you say, checking the odometry is a good idea. Could you drive a teach route of say 5 metres in a straight line, then check the saved odometry looks correct?

Looking at the pose.txt entries, driving 5 meters in a straight line shows x increasing each time and y barely changing. In orientation, x and y don't change, z increases but not over 0.1, and w stays close to 1.0
Is that correct?

Yes, x is the forwards direction (from where the robot starts), so if you drive forward 5 metres and get approximately x=5, y=0 and the orientation doesn't really change, then it sounds like your odometry is working correctly.
Are you able to repeat a simple route like this? And what kind of robot are you using? You might need to change the controller settings so the robot drives nicely.

Well, tried that but robot wouldn't move at all. It's a four wheel, four motor skid-steer robot, powered by Raspberry Pi and the D435 camera is connected to an Nvidia Jetson TX1. It also has an inexpensive 2D Lidar unit but it wasn't on for these tests. I tried the full loop of room again, and it did start the robot moving, but again, spinning or shaking in place, almost like someone shaking their head, "No, I won't do it. I won't do it!" Thanks for the patient help, you guys are great! I may set up a LinoRobot with Ros2 and try to work with that (on chassis and Raspi.) Teach-Repeat is running on the Jetson, so it might bridge between Ros1 and Ros2, and I wouldn't have to change the Jetson at all! Host is an HP Pavillion laptop with Ryzen 7 processor. I love this laptop! Running Ubuntu 20.04. Jetson has Ubuntu 18.04, and Raspi has Mate 20 and Noetic Ros. Cheers!

Sounds like an issue with the controller speeds then if the robot just won't move. Maybe teleop your robot around and change the speeds to find out what works. Then change the speeds in the launch file below to match.
https://github.com/QVPR/teach-repeat/blob/1926f80ec45ab0d8a781946104e8e26c80d36cb0/launch/data_matching_jackal.launch#L66-L68

min_omega - what is the slowest turning speed that will make the robot move. Usually for skid steer it takes a bit
max_omega - maximum turning speed - so the robot doesn't tip over while turning
max_v - maximum linear speed - so it won't damage itself or anything else


use the CipherSuiteName function exposed by qtls

This function was recently added to the standard library TLS implementation.
No functional change expected.

Codecov Report

Merging #2394 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master   #2394      +/-   ##
=========================================
+ Coverage   85.89%   85.9%   +0.01%
=========================================
  Files         119     119
  Lines        8945    8935      -10
=========================================
- Hits         7683    7675       -8
+ Misses        934     932       -2
  Partials      328     328

Impacted Files
Coverage Δ

internal/handshake/qtls.go
90.67% <ø> (+1.25%)
:arrow_up:

internal/handshake/crypto_setup.go
67.92% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


update Coban Logo

Hey,
I successfully merged my token in the PR #1223 but I made mistake with the logo, if you can merge it!
Thanks

@rmshea Hello ryan, do you have any idea when the logo link will be updated? Thank you

Hello. I am not sure you tried something, but logo link isn't update yet. Can you have a look please?


Add distance traveled widget based on steps

Knowing the height of the user (and approximate average step length) or the average step length, the distance traveled can be calculated from steps.

+1. Please, I NEED this feature. I bought the Stratos thinking that it would show the daily distance and it was a disappointment to discover that it does not take it :____(

There is already a pull request providing this feature by alvaroDigio.
This issue will close after the integration.

Done, commint 0868bcd0774b39579a265832ceac9a9a81164fc9

Hi love your work and I find the Version 4.0 on my Stratos is working great and stable but can you tell me when is this updated version with the daily steps distance going to be released thanks again.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Grammatopoulos Apostolos<EMAIL_ADDRESS>Sent: Sunday, August 25, 2019 9:39:23 AM
To: GreatApo/GreatFit<EMAIL_ADDRESS>Cc: Kookie69<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [GreatApo/GreatFit] Add distance traveled widget based on steps (#36)
Done, commint 0868bcdhttps://github.com/GreatApo/GreatFit/commit/0868bcd0774b39579a265832ceac9a9a81164fc9
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/GreatApo/GreatFit/issues/36?email_source=notifications&email_token=AKNU7URLG3T4S2KFDKDLHEDQGHBCXA5CNFSM4GSBRUZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5CJK4Q#issuecomment-524588402, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AKNU7UXJZX3KSF62NY4QVX3QGHBCXANCNFSM4GSBRUZQ.

It will be released in the following days


Use LMSS jurisdiction codes to tag interviews

Ex:  NAM-US-US+MA
This isn't exactly the same as the default state/default country used for addresses

See: https://github.com/SuffolkLITLab/courtformsonline.org/issues/8


Expiry date with validation helper not aligned with valid CVV

Describe the bug
When the expiry date of a card is invalid, but the CVV is valid, the helptext underneath the expiry date nudges it out of alignment with the CVV text field.
To Reproduce
Steps to reproduce the behavior:

Instantiate a CreditCardForm
Purposefully introduce an invalid expiry date, but valid CVV
Validate.

Expected behavior
Expiry date and CVV always aligned, regardless of validation errors
Screenshots

Desktop (please complete the following information):
-Windows 11
Smartphone (please complete the following information):
-Android Emulator. Pixel 4a
Comments
Not a particularly terrible issue, but I would still consider this a visual bug.
The fix would probably be as simple as setting crossAxisAlignment on the row containing both expiry date and cvv fields.

@levitanong I think it's default TextFormField behaviour where if the TextFormFiled will have an error it goest slide up and in the screenshots which you have attached above we can simply identify that Expiry date is having an error and CVV is correct... so if either both will have an error or both are valid then both will be aligned properly. So it's a basic flutter widget behaviour... Please let me know if you need information regarding the same.

I’m closing this issue because it's the default behaviour of the flutter TextFormField while there is a validation error.


Kubernetes port annotations - match addresses with or without declared ports

This change updates port relabeling for pod and service discovery so the
port relabeling regex matches addresses with or without declared ports.
As well, this change uses a consistent style in the replacement pattern
for the two expressions.
Previously, for both services or pods that did not have declared ports, the
relabel config regex would fail to match:
__meta_kubernetes_service_annotation_prometheus_io_port
regex: (.+)(?::\d+);(\d+)

__meta_kubernetes_pod_annotation_prometheus_io_port
regex: (.+):(?:\d+);(\d+)

Both regexes expected a : pattern.
The new regex matches addresses with or without declared ports by making
the : pattern optional.
__meta_kubernetes_service_annotation_prometheus_io_port
__meta_kubernetes_pod_annotation_prometheus_io_port
regex: (.+)(?::\d+)?;(\d+)

This change is

Thanks!

I'm getting doubled ports for pods with this regex.
http://hostname:8080:9000/metrics
I can reproduce it her:
https://regex-golang.appspot.com/assets/html/index.html

Regex: (.+)(?::\d+)?;(\d+)
String: localhost:8000;900

The matches are: localhost:8000 and 900

Uff. Thank you for reporting this.
I've tested this regex: ([^:]+)(?::\d+)?;(\d+)
It works for both cases. Is there a simpler expression?

Added a new PR with this fix.


Toggle and range slider are not working but radio button are working fine

Hello,
I' m using daisy ui with react and as said in the subject range slider and toggle animation are not working.
here is my tailwind config
module.exports = {   purge: ['./src/**/*.{js,jsx,ts,tsx}', './public/index.html'],   darkMode: false, // or 'media' or 'class'   theme: {     extend: {},   },   variants: {     extend: {},   },   plugins: [     require('daisyui'),   ],   daisyui: {     styled: true,     themes: true,     base: true,     utils: true,     logs: true,     rtl: false,   }, }
Everything else seems to work fine.
Thanks

@mel-in-a  Can you make a small repo on GitHub so I can reproduce this issue?

hello and thank you for this quick answer. i can't really share my repo it's the beginning of a private project. Do you have an idea what could explain that ? can i try something ?

@mel-in-a

make sure your purge config is working correctly
make sure the class names are correct. No typo, etc...
make sure you're not using an old version of daisyui. range was added in version 1.11.0 so older versions won't have it.
make sure there aren't any external CSS affecting the the exact styles. For example there could be another .toggle style in your project somewhere. Or could be some external global reset style *{...} affecting all elements
try another browser. Maybe there's a browser plugin, applying some changes on pages.

Hello, im' using the right version

but  'have a message in console that could help us :

it's solved :

i used the defaultChecked
Thank you for your help, you framework is wonderful ! Have a nice day


I can´t set a default value if the data comes from an $resource

First, apologize for my bad English, I want to load a list of  states and set selected one of this by default in my ui-select element. I dont have any problem if i do something like this.
$scope.constants = {
states: [
{
codeId: "SIN",
codeDescription: "SINALOA"
},
{
codeId: "MICH",
codeDescription: "MICHOACAN"
},
{
codeId: "COL",
codeDescription: "COLIMA"
},
]
};
$scope.constants.selected = "COL";
But the problem is that my list of states comes from an API call with $resource method and i cannot set a default value in the same way, Any ideas why? o what i have to do?

Setup a

Setup a plunker to be able to help faster


update-05-version-aware tests failed

There were 14 test errors due to the setup failure of the testscript, per discussion with touchstone, this should be a touchstone testscript defect, touchstone team already added this defect to their queue, we will need to re-run the test to find out if there if any other issue when the touchstone fix is ready.
https://touchstone.aegis.net/touchstone/scriptexecution?exec=201910090957018398892466&qn=/FHIR4-0-0-Advanced/Patient/04-update/fhir-api-r4-patient-update-05-version-aware#WAITING_OPER

problem is in test suite. waiting for fix from Touchstone.

Touchstone fixed the test. Albert verified.


github: Add commit message check

Add in the commit message check based on the
https://github.com/kata-containers/kata-containers/blob/main/.github/workflows/commit-message-check.yaml
given that we have matching commit guidance

Fixes: #45
Signed-off-by: stevenhorsman<EMAIL_ADDRESS>

@wainersm, @bpradipt - I think adding some automatic checking of the commit message format (like kata-containers) does is worthwhile to help get new commits ready for merging into main when the time comes, so I copied over the GHA check. You can see it running (for this PR) at https://github.com/confidential-containers/cloud-api-adaptor/runs/6684767833?check_suite_focus=true. Let me know what your thoughts are on whether we are ready to start using this. Thanks!

Thanks for working on that @stevenhorsman ! I will review it still today, I promise :)


docker.sock group mismatch between container and docker server?

Hi, your Dockerfile works when on Docker for Mac, but I can't get it to work against my Ubuntu 16.04 docker server (docker info below).
$ docker run -ti -v /var/run/docker.sock:/var/run/docker.sock docker-jenkins bash
jenkins@5b4596d7f2ab:/$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied

Seems the problem is the group is docker instead of staff.
jenkins@5b4596d7f2ab:/$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 Mar 18 17:36 /var/run/docker.sock
jenkins@5b4596d7f2ab:/$ grep -E 'staff|docker|jenkins' /etc/group
staff:x:50:jenkins
jenkins:x:1000:
docker:x:999:

$ docker info
Containers: 48
 Running: 37
 Paused: 0
 Stopped: 11
Images: 1146
Server Version: 17.03.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 977c511eda0925a723debdc94d09459af49d082a
runc version: a01dafd48bc1c7cc12bdb01206f9fea7dd6feb70
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 31.31 GiB
Name: 61
ID: YR2M:APBK:24BJ:3VVQ:IQ57:TYG2:FE5A:E7UQ:I337:O65O:BODC:GUJ5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
 provider=generic
Experimental: false
Insecure Registries:
 <IP_ADDRESS>:5000
 <IP_ADDRESS>/8
Live Restore Enabled: false

See https://github.com/docker/docker/issues/31872 for a workaround.

Dear @jamshid , I did add the docker group to the jenkins user.
Could you check that this new image (logimethods/jenkins:latest) indeed solves your issue?

Thanks it seems to work. Is the image portable to any docker server? I though the docker group id number had to be looked up dynamically, to be sure it matches whatever group id happens to be used on the docker server host.

I don't know if this image is truly portable. If someone figures it is not, I will try then to do the look up dynamically. But for now, I prefer to keep this image is as simple as possible...


Error: Cannot find module './lib/mediaType'

Elasticsearch version:
7.8
Moloch version:
2.7.1
OS name and version:
Debian GNU/Linux 10 (buster)
How was Moloch built/installed: (rpm, deb, easybutton, ...)
deb
Provide logs, stack traces and steps to reproduce:
Error: Cannot find module './lib/mediaType'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at loadModule (/data/moloch/node_modules/negotiator/index.js:114:16)
at Negotiator.mediaTypes (/data/moloch/node_modules/negotiator/index.js:76:29)
at Accepts.type.Accepts.types (/data/moloch/node_modules/accepts/index.js:105:33)
at IncomingMessage.req.accepts (/data/moloch/node_modules/express/lib/request.js:134:23)
at ServerResponse.res.format (/data/moloch/node_modules/express/lib/response.js:664:11)
at ServerResponse.redirect (/data/moloch/node_modules/express/lib/response.js:925:8)
at /data/moloch/viewer/viewer.js:1176:9
at Layer.handle [as handle_request] (/data/moloch/node_modules/express/lib/router/layer.js:95:5)
at next (/data/moloch/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/data/moloch/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/data/moloch/node_modules/express/lib/router/layer.js:95:5)
at /data/moloch/node_modules/express/lib/router/index.js:281:22

Need more information please

what is the url you downloaded from
what action are you performing, or is this just on viewer start up?

When I look at line 1176 in viewer.js for 2.7.1 it is blank, so I'm wondering if you modified some files?
I tried https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-18.04/moloch_2.7.1-1_amd64.deb on docker run -it debian:buster  bash and it seems to start

It's a problem coming from NPM.

why are you running NPB if you are using the deb?

ERROR - Couldn't load some dependancies, maybe need to 'npm update' inside viewer directory Error: No such module: http_parser_llhttp
    at process.binding (internal/bootstrap/loaders.js:81:36)
    at Object.<anonymous> (/data/moloch/viewer/decode.js:26:26)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/data/moloch/viewer/viewer.js:44:16)

did you mean to close this issue?  If not please reopen.
What version of node are you using, looks like you are using the wrong one. You should use the one included.

why are you running NPM if you are using the deb?

Cuz as for the error, I found the solution to solve Negotiator problem by:
npm install negotiator

Then I fixed this problem. But I got another problem as I gave above.

Are you trying to build yourself or run from the deb? If deb, please provide the url?

I tried both:
https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-18.04/moloch_2.7.1-1_amd64.deb
https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-20.04/moloch_2.7.1-1_amd64.deb

You should use 18 if it is based on 18. Please wipe everything and start over. Make sure you are using /data/moloch/bin/node from the viewer directory. You do NOT need to run npb if you installed from deb.

Are you trying to build yourself or run from the deb? If deb, please provide the url?

Yes. Any My elasticsearch version is 7.8.0. The default version seems to be 7.7.1. So I did not install it.

My OS version is Debian GNU/Linux 10 (buster).

it is fine to use your own ES

please come to slack, this would be much easier to discuss there

Okay. I will try. Thanks for your support. I posted the error on slack. No one can solve or answer.

I did reply to your slack

Hahaha. I just found it. Talk there. Thanks

Incase anyone else hits the problem. The issue ended up being that the package wasn't installed, just downloaded and extracted. This led to all the paths being wrong and confusion. Use dpkg -i not dpkg -x


Introduce two separate configuration to manage OIDC consent flow

With https://github.com/wso2/product-is/issues/7256 separate configurations introduced to manage the consent during OIDC login and logout flow.
[oauth]
prompt_login_consent = false
prompt_logout_consent = false

If these properties are not defined the value of the  oauth.prompt_consent will be applied to them.
This needs to be documented and pointed in the migration doc

documented at https://is.docs.wso2.com/en/next/setup/migrating-what-has-changed/#introducing-two-separate-configuration-to-manage-oidc-consent-flow


Right click output - create node and connect

If you right click a node output, it should show the add node ui, then automatically connect the added node to the clicked output if compatible.
I'm happy to pick up this work.

Sounds like a good UX improvement :smile:. I've also been meaning to add this related improvement for a while:
If you drag a connection into an empty space, also show the node finder (a.k.a. add node UI) and allow selecting a node that would be compatible with that output.
There are some things to keep in mind: For instance, we need to filter out the nodes based on the available input datatypes, because not all nodes will have an input parameter to take that connection. When there are multiple input parameters that could hold the connection, I would add some simply heuristic like always picking the first.
This will require extending the NodeTemplate trait, adding an additional method that lists the accepted input datatypes for each node.


return valid results from genRelatedPosts in js/related.js

Array(posts.length)..fill({}) results in the same object in .map((record, i) => {...} being used in each iteration, which results in the array returned by genRelatedPosts being invalid. The solution is simple: use a unique record object in each iteration.
The problem (undetected by verify.py) was found with the help of verify.sh and verify.jq, which are introduced by this PR. The new verification makes use of jd and is fast, taking less than a second on my laptop per ./verify.sh related_posts_[name].json. The GitHub Actions workflow is updated to install jd (${HOME}/go/bin is already in $PATH in that environment).
On some platforms the time command is BSD not GNU, and the latter may be installed as gtime; so in run.sh define and use a ${time} variable that accounts for that: helpful for those of us doing ./run.sh ... on e.g. macOS. Similarly, /bin/bash is an ancient version on macOS, so instead of #!/bin/bash specify #!/usr/bin/env bash which can resolve to a modern version e.g. installed as /usr/local/bin/bash.
The correct_related.json in this PR contains the same data as before, but has been output by jq in a more compact format.

Hey, nice catch and thanks for your efforts. I must that I'm reluctant to add another dependency for users when the bug can be fixed by updating the current script https://github.com/jinyus/related_post_gen/commit/e74b7379f4f81c91b5d26230e73bafb109e4e142. I don't want to put any hurdles up for someone who just wants to test/add a single language. I also don't understand the jq syntax and it's not something I can commit the time to learn right now.
The rest of you changes look good so I will merge and just remove the extra files manually so I don't give you extra work.


Potential code quality issues found

I forked this repo a while ago and ran a DeepSource analysis on it. DeepSource found a variety of different issues categorized based on their types and severity which you can view here.
Brief description -
Anti-Patterns: 36
Bug Risks: 23
Security Issues: 2
You can find a detailed description and fixes for some of them here.
Please let me know what issues you'd like to focus on fixing and I'd be happy to take a look into it. Also, you can choose to hide certain types of issues too (if you wish to ignore them or you believe it is a false positive). I'd also be happy to send a patch with the DeepSource configuration file with the required fixes.
You can find the required configuration file for DeepSource here.

I've already set up golangci-lint locally. Although I haven't really put much effort into configuring golangci-lint beyond the defaults or testing out the disabled linters, it seems to catch many of the same issues right now with the proper configuration https://golangci-lint.run/usage/configuration/
I'd disabled errcheck because there were too many false positives with byte buffers that shouldn't fail - I guess I could panic in that case.
The style issues seem unimportant to fix - in some cases the style was deliberate if more cases were added to an else branch or switch, though it seems unlikely for many of them.
For sha1, that's fairly low priority because tokens used by others won't be guessable and creating colliding tokens won't really matter for the ways uniqush was used

# TODO: Re-enable errcheck
linters:
    enable:
        - errcheck
        - deadcode
        - gocritic
        - gofmt
        - golint
        - gosec
        - govet
        - ineffassign
        - misspell
        - scopelint
        - structcheck
        - unconvert
        - unparam
        - varcheck
        - vet
        - vetshadow
linters-settings:
    gocritic:
        enabled-tags:
            - experimental

and the Signal(os.Kill) is definitely a no-op for Kill, but I suppressed it with megacheck because there were too many issues at the time to check the docs and it would have no impact if it was a no-op.

Thank you for the inputs. Is there anything specific that you'd like me to help you out with?


Add JaxArrayEqualityComparator

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

Comparison is base (5cf194f) 100.00% compared to head (050b7ff) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #379   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           58        60    +2
  Lines         2068      2121   +53
  Branches       372       375    +3
=========================================
+ Hits          2068      2121   +53

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


FYI: Progress update on the DInject annotated controllers - @Get @Path etc ...

This is just a FYI update on the development I've been doing on "Controllers with annotations" for Javalin.
Updated docs at https://dinject.io/docs/javalin/

Includes OpenAPI / swagger generation (as this is APT based it reads the javadoc and uses that + validation annotations like @NotNull, @Size etc + Kotlin non-nullable types
Includes support for bean validation (validating request input using javax bean validation)
Support for Kotlin data classes (ie. @Post @Form into a kotlin data class)

Background:
This is APT (annotation processing) based source code generation for code that maps web routes to controller methods.  So no reflection, no overhead
Examples:
https://github.com/dinject/examples
Cheers, Rob.

Looks good @rbygrave ! A few comments:

The JAX-RS section of the docs was a bit confusing to me, at first I thought the right menu showed how to use DInject with

Javalin
JAX-RS
Maven
Gradle

Maybe it would be better to add it at the bottom and call it "JAX-RS comparison"  ?

I noticed that @Put, @Patch, @Delete all link to the same page, but the highlight in the menu doesn't work. It was a bit confusing to me.
https://dinject.io/docs/javalin/context shows the old package for context, but maybe this is only for Javalin 2.x atm?
I see you've added OpenAPI annotations - Javalin 3.0 has Swagger support: https://javalin.io/plugins/openapi, but I'm not sure if that's helpful or not in your case

Thanks for the feedback !!

at the bottom and call it "JAX-RS comparison" ?

Yes good point - done.

@Put, @Patch, @Delete all link to the same page

Thanks.  Yes, moved to each have their own page.

old package for context, but maybe this is only for Javalin 2.x atm?

It detects 2.x or 3.x and generates appropriately for 2.x or 3.x of Javalin ... but yes I've updated the docs to use the 3.x package for Context as that makes sense now (people should be using 3.x going forward).

added OpenAPI annotations - Javalin 3.0 has Swagger support

Yes there is overlap.  Technically there is no need for the OpenAPI annotations as the documentation is instead read from normal javadoc/kotlindoc of the controller methods.  That is, with this approach we just javadoc/kotlindoc the controller methods and that is pretty much it (apart from @Hidden, a main tile and description of the API and alternative responses). We do javadoc rather than use the plugin DSL (or OpenAPI annoations).
The other outcomes of generating openapi this way is that it goes into src/main/resources so gets checked in and we see diffs etc. Serving the API is low cost at runtime as we just return the json file.  Additionally it is easy enough to use the openapi.json as input for tooling to build clients if desired.
We would still look to use the plugin to serve the Swagger UI but not bother with the scanning and DSL part (as the openapi.json is already generated).
Cheers, Rob.

Thoughts on things to do:

Use of @Valid with Kotlin for bean validation ...
Provide a bigger example like real-world or pet store (using Ebean ORM)

Closing this, but the INFO tag is on it so people can easily find it.


[10.1.x] ISPN-12233 Server requires Java 11

https://issues.redhat.com/browse/ISPN-12233
Backport to 10.1.x

Closing as not required in this stream.


Fix for multiZoneDraftMode (issue 1076)

NextJS apparently now reads  multiZoneDraftMode from apiContext
Inside NTARH, undefined is passed as apiContext, which causes Next to react undefined. multiZoneDraftMode which crashes the test.
The fix that works for us is to pass {} as apiContext, multiZoneDraftMode will still be undefined, but we don't get a "null"pointer

[x] I have read CONTRIBUTING.md.
[x] This PR is not security related (see SECURITY.md).

@Xunnamius I'm a total GitHub noob, so bear with me through the signing 😅

All good 😄, I'll squash it in a sec

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


⚠ ClamAV has degraded performance

In d468efa, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 71 ms

Resolved: ClamAV performance has improved in dd32abc after 536 days, 7 hours, 0 minutes.


Updated README.md and created new index.md

Hello Team,
I've updated the README.md and have created a stub index.md for more details which I hope to fill prior to Friday.
@jonathangreen @dannylamb Style okay? Too much, too little.
Thanks,
Gavin

@g7morris other then the couple comments here, I think the style of this is good and its always great to have some more docs.

This should probably get pushed through before the sprint. Just a suggestion. This does look like a good start and if @g7morris doesn't have the time to make the suggested modifications I think it would be useful to push it through as it sits. This would be a good starting point.

Out of date, sadly.  Closing


Enhancements to Multi-Elements Graph

Multi-Elements Comments:

So looking at this, I can see two elements and how they compare over time. The dots were very small and very difficult to see (yellow and gray). I would suggest a blue and green color that are twice or three times the size of the current dots.

It be nice if we can select the Counties (or areas we want to see) in the future and have the County and State names on the screen with the codes.

JLS comment: Also in the graphic above, shouldn't the y-axis rescale itself so we can see a finer level of detail or is that too difficult to manage? I can see where sometimes you would want it and other times you wouldn't but maybe there is a way to manually adjust the scale. Think this might be related to Kim's earlier comment above about being able to choose a scale, ie a threshold to make outliers pop out.

@jshourds-usgs have a look and see if it's A-OK.

Looks good to me.


Remove version: Google.Chrome.Canary version 133.0.6855.0

All InstallerUrls returned 404 Not Found

https://dl.google.com/release2/chrome/acxi4anbdmrgeoj67wiscrovnt6a_133.0.6855.0/133.0.6855.0_chrome_installer.exe
https://dl.google.com/release2/chrome/aczwg7lfs3u7qw7mj3v2c5gsyy4a_133.0.6855.0/133.0.6855.0_chrome_installer.exe
https://dl.google.com/release2/chrome/adt4mdyqkdyay3wr5qe2ch2u466q_133.0.6855.0/133.0.6855.0_chrome_installer.exe

Microsoft Reviewers: Open in CodeFlow

URL: https://dl.google.com/release2/chrome/adt4mdyqkdyay3wr5qe2ch2u466q_133.0.6855.0/133.0.6855.0_chrome_installer.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 923)


[FR] Weasyprint Update

Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

Problem statement
Currently weasyprint is pinned to an older version due to PDF merging issues.
This thread provides a solid workaround
Suggested solution
Implement proposed workaround and update to latest weasyprint version
Describe alternatives you've considered
Live in the past, stay locked in to current pinned version.
Examples of other systems
No response
Do you want to develop this?

[X] I want to develop this.

@SchrodingersGat do we need the new version of weasyprint? Seems like this would need another dependency stack that can be avoided.

Not necessarily at all. The current version is serving us quite well.

I'm going to close this out as "won't fix" until we find some good reason to actually update


automatically fetch and generate protobuffer definitions

Changes

Implemented the getModules function, because it isn't available (in none patched discord versions)
Added a puppeteer-script that opens discord, executes parse.js and writes the protobuffer definitions
Added javascript protobuffer implementations with types
Modified .gitignore, .prettierrc.yml, package.json
Added a github action to automatically update and push the definitions
Updated the Readme
Published it as a npm package

@dolfies Please write me your npm username so I can add you as an package owner.

Implemented the getModules function, because it isn't available (in none patched discord versions)
getModules was intentionally not implemented.

Added a puppeteer-script that opens discord, executes parse.js and writes the protobuffer definitions
The script was supposed to be able to executed by the user in any discord client they wished to do so, limiting it to puppeteer limits where and what client the proto definitions are being extracted from, what if i'm not logged into web version? what if i don't want proto definitions from the stable version?

Added javascript protobuffer implementations with types
The goal for this repository was just .proto definition files and nothing more.

Added a github action to automatically update and push the definitions
That's unnecessary, Discord-Datamining//Discord-Datamining monitors the main js chunk and they notify for any proto changes, the script can be ran accordingly as changes in the protocol buffers is not frequent.

Published it as a npm package
If anyone for whatsoever reason wanted to use Discord's protocol definitions they will most probably download the definitions from this repository or another repository providing them and integrate them into their workflow as opposed to downloading an npm package. what if i'm using python?

changes in the protocol buffers is not frequent.

Then the cron job should be updated to check maybe every day instead of a very frequent timespan.

what if i'm using python?

Then you would integrate the protos themselves into your project instead of complaining that a npm package exists.

The goal for this repository was just .proto definition files and nothing more.

I’d like to hear this from the repository maintainer himself, otherwise I believe in the spirit of OSS that contributions be considered.
——
IMO the output files should be stored on a different branch, but that’s just my style choice to avoid too many GitHub actions commits on master.

@arHSM

getModules was intentionally not implemented.

I've added an example implementation to be able to use the script without Better Discord. Notice if the getModules function is already available in the global scope it does not overwrite it.

The script was supposed to be able to executed by the user in any discord client they wished to do so, limiting it to puppeteer limits where and what client the proto definitions are being extracted from, what if i'm not logged into web version? what if i don't want proto definitions from the stable version?

I did not change the script, it still works the same as before.
I've made an additional puppeteer program that loads up discord and executes the script.

The goal for this repository was just .proto definition files and nothing more.

Then why are their js/py scripts to use the proto definition files to generate js/py code from them?
And even if that would be true, you can extend the goal of the project.

That's unnecessary, Discord-Datamining//Discord-Datamining monitors the main js chunk and they notify for any proto changes, the script can be ran accordingly as changes in the protocol buffers is not frequent.

Why do it manually, when you can automate it ;)

If anyone for whatsoever reason wanted to use Discord's protocol definitions they will most probably download the definitions from this repository or another repository providing them and integrate them into their workflow as opposed to downloading an npm package. what if i'm using python?

You can still manually download it, the npm package is just easier to use for js projects.

I'm fine with the proposed changes, was just nitpicking 😅

Awesome 👍 I've committed your changes and sent you an invitation on npm

Thanks again!


Easier way to create airports?

So I was interested in contributing some airports to the game. That was, until I realized how much work goes into each of them and how much confusi data you'd need. That sparked an idea. What if there was a guided bash script or website that asked you all of the airport's information in a more user-friendly way and then exported a json file from the information you typed? I think it'd be easier in a way and less confusing for more noob people like myself.

You would still need to find all the waypoints and add the coordinates. In
my opinion, it is easier to copy and paste into an actual file rather than
pasting every single waypoint into a command line.
Additionally, SIDs and STARs are not as easy as you think - you'd still
need to somehow add speed and altitude restrictions, add transitions and
all that giz.
Also, you'd have to also create a different script for creating airlines
and creating aircraft. It'd be significantly easier just to edit a file,
for, there is not much yuck you can do in an airline or aircraft file.
If you were also to create a videomap, it would be pointless as you would
still be required to enter the file.
In my opinion, I do not see what is difficult about getting another airport
and editing the values? As long as you do not mess up the template, you
should be good to go.

Ah, okay. After reading that it makes much more sense. Closing issue...


Standardize BigQuery backend table formatting for multiple tables

The queries for the BigQuery backend do not have a standardized format for dataset tables with multiple days of data. For example, BigQuery stores multiple days of Cloud Audit Logs in a dataset like the following:
[MY_PROJECT_ID].[MY_DATASET_ID].cloudaudit_googleapis_com_activity_YYYYMMDD
[MY_PROJECT_ID].[MY_DATASET_ID].cloudaudit_googleapis_com_activity_20220916
[MY_PROJECT_ID].[MY_DATASET_ID].cloudaudit_googleapis_com_activity_20220915
…

The queries provided in a majority of the samples only query on a single table, such as 3_01_logging_settings_modified.sql. I believe all the sample queries should accommodate both single day tables and multiple day formats to improve their ease of use. Some queries, like 4_01_unusually_high_api_usage_by_user_identity.sql, accommodate multiple tables already. However the _* suffix formatting used in 4_01 would not accommodate a single day table.
I propose that all queries should pull from a wildcard table to alleviate this issue like the following:
[MY_PROJECT_ID].[MY_DATASET_ID].cloudaudit_googleapis_com_activity*

To prevent the queries from running over massive amounts of data for tables spanning months of logs, we could also include the following delimiter to the queries themselves to allow users to granularly select the time slot for the queries to run.
WHERE
  _TABLE_SUFFIX = FORMAT("_%s", FORMAT_DATE("%Y%m%d", CURRENT_DATE()))
  AND …

References: https://cloud.google.com/bigquery/docs/querying-wildcard-tables

@jacks-reid - thanks for reporting this and sorry for the delay in responding.
Yes, BigQuery log sink can be configured to use either date-sharded tables (what you are referring to) or partitioned tables.  See BigQuery routing schema.
CSA assumes the log export setup is made according to this Security and access analytics guide which sets up log sink with partitioned tables.
As detailed in the user doc and guide above, there are several reasons why partitioned tabled are preferred in the case of log analytics:

Simpler querying: no need to specify table date suffix to filter by. You can specify exact time interval (down to seconds) by using log timestamp field based on which the table is already partitioned.
Faster and cheaper querying: that automatic timestamp partitioning reduces the number of bytes read which increase speed and reduce costs for your queries.
More granularity for data retention control by setting a partition expiration

Hope this helps. I'll update the README to make it more clear that CSA queries assume partitioned tables.
Going forward, we do plan to templatize these queries and enable users to generate SQL replacing variable instances (e.g. MY_PROJECT_ID and MY_DATASET_ID to simplify usage). We could add a variable for optional TABLE_SUFFIX to address your use case. No planned date for that, but that might be an alternative for you if you still want to use date-sharded tables.
Note: CSA 4.01 SQL query has the wildcard  _* as you noted, because it covers all audit logs including Admin Activity (_activity) and  Data Access (_data_access)
Feel free to re-open if you got more questions or comments.


Unused imports and needless borrows

I noticed these warnings in a Travis build:
/home/travis/build/serde-rs/serde/serde_codegen/src/de.rs:12:5: 12:35 warning: unused import, #[warn(unused_imports)] on by default
/home/travis/build/serde-rs/serde/serde_codegen/src/de.rs:12 use syntax::ext::build::AstBuilder;
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/travis/build/serde-rs/serde/serde_codegen/src/de.rs:12:5: 12:35 note: in this expansion of include!
/home/travis/build/serde-rs/serde/serde/src/bytes.rs:35:20: 35:26 warning: this expression borrows a reference that is immediately dereferenced by the compiler, #[warn(needless_borrow)] on by default
/home/travis/build/serde-rs/serde/serde/src/bytes.rs:35             bytes: &bytes,
                                                                           ^~~~~~
/home/travis/build/serde-rs/serde/serde/src/bytes.rs:35:20: 35:26 help: for further information visit https://github.com/Manishearth/rust-clippy/wiki#needless_borrow
/home/travis/build/serde-rs/serde/serde/src/bytes.rs:143:36: 143:41 warning: this expression borrows a reference that is immediately dereferenced by the compiler, #[warn(needless_borrow)] on by default
/home/travis/build/serde-rs/serde/serde/src/bytes.rs:143         serializer.serialize_bytes(&self)
                                                                                ^~~~~
/home/travis/build/serde-rs/serde/serde/src/bytes.rs:143:36: 143:41 help: for further information visit https://github.com/Manishearth/rust-clippy/wiki#needless_borrow
tests/../../serde_tests/tests/test_de.rs:6:5: 6:34 warning: unused import, #[warn(unused_imports)] on by default
tests/../../serde_tests/tests/test_de.rs:6 use self::serde::de::Deserializer;
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

More:
benches/../../serde_tests/benches/bench_enum.rs:4:23: 4:30 warning: unused import, #[warn(unused_imports)] on by default
benches/../../serde_tests/benches/bench_enum.rs:4 use rustc_serialize::{Decoder, Decodable};
                                                                        ^~~~~~~
benches/../../serde_tests/benches/bench_enum.rs:4:23: 4:30 note: in this expansion of include!
benches/../../serde_tests/benches/bench_enum.rs:6:17: 6:29 warning: unused import, #[warn(unused_imports)] on by default
benches/../../serde_tests/benches/bench_enum.rs:6 use serde::de::{Deserializer, Deserialize};
                                                                  ^~~~~~~~~~~~
benches/../../serde_tests/benches/bench_enum.rs:6:17: 6:29 note: in this expansion of include!
benches/../../serde_tests/benches/bench_struct.rs:6:23: 6:30 warning: unused import, #[warn(unused_imports)] on by default
benches/../../serde_tests/benches/bench_struct.rs:6 use rustc_serialize::{Decoder, Decodable};
                                                                          ^~~~~~~
benches/../../serde_tests/benches/bench_struct.rs:6:23: 6:30 note: in this expansion of include!
benches/../../serde_tests/benches/bench_struct.rs:9:17: 9:29 warning: unused import, #[warn(unused_imports)] on by default
benches/../../serde_tests/benches/bench_struct.rs:9 use serde::de::{Deserializer, Deserialize};
                                                                    ^~~~~~~~~~~~
benches/../../serde_tests/benches/bench_struct.rs:9:17: 9:29 note: in this expansion of include!


what target sequence should I use

I know this could be off-topic but I cannot find an answer to this elsewhere yet. Should I use CDs or cDNA for searching miRNA target?

Where possible you want to use a full-length transcript database that includes both coding and non-coding sequences because known plant miRNAs can target both types of regions.


Merge existing NuSpec

If there is a NuSpec for a project already, then instead of using it, override it with properties that are missing from the template.

That way, we can decide to only (for instance) override the package name in the NuSpec file of the repository, but the rest of the auto-generated elements are still added.

Fixed.


⚠ GitLab Server has degraded performance

In 1ebdf1a, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 6584 ms

Resolved: GitLab Server performance has improved in fc8aa80.


Cannot copy/move hidden folders

Library version: 0.x.x
OS version: [Android 12]
Device model: [Samsung S20]
When copying or moving hidden files, it throws security exception.

java.lang.SecurityException: com.android.externalstorage has no access to content://media/external _primary/file/1000008384 at android.os.Parcel.createException or Null(Parcel.java:2438) at 08 android.os.Parcel.createException(P arcel.java:2422) at android.os.Parcel.readException(Par cel.java:2405) at android.database.DatabaseUtils.rea dExceptionFromParcel(DatabaseUtil s.java:190) at android.database.DatabaseUtils.rea dException WithFileNotFoundExcepti on From Parcel(DatabaseUtils.java:15 3)

Used this repo only to copy/move the file from one folder (WhatsApp Statuses) to another folder (Download -> NewFolder or any Folder)

Can you share the video record? It's not happening to me.

As you can see here, only folder copied/created but not the files within it. This is happening for some of the Samsung phones only. In Realme, Pixel phones etc working fine.
https://user-images.githubusercontent.com/11767191/209271744-fd80606c-2cea-436e-aae3-4e547e906111.mp4

Hello bro, thank you so much for update.
So were you able to reproduce the same issue what I told ? Did you fix it/I mean change the code related to this ? Because I can't see  this in release version history note.

I don't know which part that fixes the code. But after testing the same scenario like you've provided in the video, the issue disappears with v1.5.4. That's why I didn't mention this issue in release notes. But you can try with v1.5.4 again, and if the issue persists, then I'll reopen it.

Okay I tested it again but same. Nothing changed.

Well, I really can't figure out the root cause. I've tested it with multiple devices using Android 12, but here you have an intermittent issue. I'll reopen it. Let's see if there's someone facing this issue too, maybe she/he can give us a hint.

This is very likely this: https://issuetracker.google.com/issues/258270138


[ldd-ml] Address DMSP suggestions

Describe the issue identified
Address suggestions from DMSP review of this sub-model.
Describe the solution you'd like

[x] Data_Set class: data_set_size could  be misinterpreted as a byte size. Maybe data_set_count would be a better name.
[ ] Data_Set class: Add an attribute called data_set_name or other attributes to document the source of the data_set. See  comments for Training_Set, Validation_Set, Test_Set
[x] Machine_Learning_Algorithm: algorthm_learning_style: For enumerated values, the   meaning of labeled data is unclear. Explanation could be clearified in   documentation.
[x] Test_Performance: performance_score: It is not clear if the value has   limits; is always positive; has a limit that means a perfect score. Can a   min/max be added to definition and the description be revised to   clarify?
[x] Training_Set, Validation_Set,   Test_Set: These (Data_Set class) classes   do not include attributes to provide provence or processing details as noted   in the class definitions. Add appropriate attributes to the Data_Set class.
[x] Validation_Set, Test_Set: The difference between these two   classes is not clear. Either update the class definitions and/or explain in   the documentation.

Describe alternatives you've considered
None
LDD Dictionary Version
<IP_ADDRESS>
PDS4 IM Version
<IP_ADDRESS>
Need-by Date
When possible.
Additional context
DMSP workshop follow-up.

I've addressed all of the suggestions except the one to add a data_set_name attribute to the Data_Set class.  Not all data sets have a designated name, so this might be hard to fill in.  However, for provenance, it is worth thinking of a way to include a data_set_source (DOI?) which would give the option for a direct link to the original data set.

@wkiri You could maybe leave this somewhat "open ended" and have a choice for how they want to reference the data set amongst a few options. Here are some that come to mind, but others may have some ideas:

https://pds.nasa.gov/datastandards/documents/im/v1/index_1I00.html#class_pds_internal_reference
(DOI can be used here) https://pds.nasa.gov/datastandards/documents/im/v1/index_1I00.html#class_pds_external_reference
https://pds.nasa.gov/datastandards/documents/im/v1/index_1I00.html#class_pds_external_reference_extended

Not sure if these would be considered "source products" or not, but here are some others:

https://pds.nasa.gov/datastandards/documents/im/v1/index_1I00.html#class_pds_source_product_internal
https://pds.nasa.gov/datastandards/documents/im/v1/index_1I00.html#class_pds_source_product_external
https://pds.nasa.gov/datastandards/documents/im/v1/index_1I00.html#9.37  class_pds_table_delimited_source_product_external
https://pds.nasa.gov/datastandards/documents/im/v1/index_1I00.html#9.37  class_pds_table_delimited_source_product_internal

@jordanpadams YThanks! es, I think a pds.external_reference would be great.  We use that for a DOI for the machine learning algorithm specification (when documented with a paper); see below.  I think a DOI for the data set(s) likewise formatted would be a good addition.
https://github.com/pds-data-dictionaries/ldd-ml/blob/c13e6ca92c9bfc18b42778ad2f7bb06e9e17b67e/src/PDS4_ML_IngestLDD.xml#L388-L394


Switch to built-in grafana piecharts

Is there any reason not to switch to the built-in grafana pie-chart panel types now that they're available?
They appear to works equivalently to the plugin and avoids the need for extra plugin installation steps.
Plus, I've found the plugin versions to be unreliable at rendering.

a12df90 was definitely not meant to be in this pull request sorry... I've stuffed something up there.
I'll try and look at the requested changes and get rid of that 2nd committ tomorrow.

a12df90 was definitely not meant to be in this pull request sorry... I've stuffed something up there.
I'll try and look at the requested changes and get rid of that 2nd committ tomorrow.

@mattbnz do you have time to update your PR with the feedback from @adriankumpf, so that we can get those improvements ready? There was a separate PR popping up some days ago with some of your changes 😃

The master branch now uses Grafana 8 and was also switched to the built-in piechart panels.


Heap read overflow

Issue
If fzf is not present on the system or returns nothing (example, calling fzf in an empty directory and hitting enter) then there is a read buffer overflow on the heap.
How to reproduce
The easiest is to hit f to start fzf then enter the name of a file that doesn't exist and hit enter.
Details
The overflow happens line 1784 (rev 276a3ef6fb3036c05ad35dbaa9baf6ae75303668) in the snprintf statement:
fp = fopen(temp_dir, "r");
while(fgets(buf,PATH_MAX,fp) != NULL){}
fclose(fp);

// Allocate Memory to `path` to store path selected file
allocSize = snprintf(NULL,0,"%s/%s",dir,buf);

If fzf didn't return anything the file is empty, therefore nothing will be written to buf, not even a NUL char. Then when snprintf reads buf to determine its length it will read outside the buffer since it stops at the first NUL char: read overflow.
Fix
Check fread's output to determine how many characters were read and NUL terminate buf. Alternatively memset(buf, '\0', PATH_MAX); just after allocating buf might be an easier solution and should ensure that the output is always NUL-terminated.

666a935 fixes this. Thanks!

Hi, that fixed it link 1784 but it's still present line 1835 in KEY_SEARCHDIR instead of KEY_SEARCHALL.
You may reproduce using 'f' instead of 'F' with your standard configuration to start fzf.

I made the changes in 334a2e6. Thanks!


When number of repositories grows, repository list may become unusably slow

This is likely due to the fact that, even though repository pulls/pushes happen in background worker and don’t block, the periodic sync loop is run in Electron’s main thread and hence could occasionally block, and with many repositories blocking may become enough to cause GUI freezes.
The overdue refactoring is to move much logic in repositories module, including sync loop, from main to worker. This is already done in plugins module (less is done in main, more in worker).
The challenge is fetching authentication, since using node-keytar from the worker may not work without some workarounds.

No, more likely just need to debounce status reporting during sync instead


Capability resolution isn't always applied as expected

When applying the logging-capabilities plugin and enforcing logback, it still allows slf4j-simple to be on the runtime classpath, alongside logback.
Some other module's metadata is preventing the capability resolution to function as expected.

Expected Behavior

Only logback should be on the runtime classpath, due to the conflict resolution provided by the plugin.
$ ./gradlew dependencyInsight --configuration runtimeClasspath --dependency org.slf4j:slf4j-simple
> Task :dependencyInsight
ch.qos.logback:logback-classic:1.2.4
   variant "runtime" [
      org.gradle.status              = release (not requested)
      org.gradle.usage               = java-runtime
      org.gradle.libraryelements     = jar
      org.gradle.category            = library
      Requested attributes not found in the selected variant:
         org.gradle.dependency.bundling = external
         org.gradle.jvm.version         = 8
   ]
   Selection reasons:
      - By constraint : dependency was locked to version '1.2.4'
      - By conflict resolution : On capability dev.jacomet.logging:slf4j-impl Logging capabilities plugin selected Slf4J binding
org.slf4j:slf4j-simple:1.7.30 -> ch.qos.logback:logback-classic:1.2.4
\--- org.owasp.antisamy:antisamy:1.6.3
     \--- runtimeClasspath

Current Behavior

Both logback and slf4j-simple are on the runtime classpath.
The selection reason is Forced By ancestor, so it appears some other module's metadata is preventing the capability resolution to function as expected.
$ ./gradlew dependencyInsight --configuration runtimeClasspath --dependency org.slf4j:slf4j-simple
...
org.slf4j:slf4j-simple:1.7.32
   variant "runtime" [
      org.gradle.status              = release (not requested)
      org.gradle.usage               = java-runtime
      org.gradle.libraryelements     = jar
      org.gradle.category            = library
      Requested attributes not found in the selected variant:
         org.gradle.dependency.bundling = external
         org.gradle.jvm.version         = 8
   ]
   Selection reasons:
      - By constraint : dependency was locked to version '1.7.32'
      - By constraint : belongs to platform dev.jacomet.logging.align:slf4j:1.7.32
      - Forced
      - By ancestor
...

Context

The capability resolution should solve the problems described in the logging-capabilities' README. Due to this bug, we still need to do more cleanup in order to get reliable logging in place by forcefully removing slf4j-simple from the runtime classpath.
components.all {
    allVariants {
        withDependencies {
            removeAll { it.name in listOf("slf4j-simple") }
        }
    }
}

Steps to Reproduce

https://github.com/NielsDoucet/logging-capabilities-reproducer
Note that this reproducer is not complete, but further information is provided in its README.md.
Your Environment

Gradle version: 6.8.3
logging-capabilities plugin version: 0.9.0
See the reproducer's README.md for a build scan on demand.

Gradle 7.3 RC1 should be released soon and has a fix that could resolve the issue mentioned here.
Could you test with it and report the result?


Add section on how to build plugin to README

Small section giving the steps needed to compile locally and replace the standard plugin with the local version.

Merged in de4f26a34921a10b45a24210cf23a90d70f7cc57 (fixed your plup build :D)


Allow removal/deletion/archival of projects

Currently once you import a project, it's imported forever. Provide some way to remove or archive projects. Might require a bit of design work.

Is there a way to manually clear the projects/cache on Linux?
I can't figure out where the data is stored...

/home/user/.local/share/Lighthouse/production/
On Fri, Mar 20, 2015 at 9:51 PM, SteveV916<EMAIL_ADDRESS>wrote:

Is there a way to manually clear the projects/cache on Linux?
I can't figure out where the data is stored...
—
Reply to this email directly or view it on GitHub
https://github.com/vinumeris/lighthouse/issues/48#issuecomment-84255072.

You can just delete the project file from that directory to remove it from the list. This feature is getting close to the top of my todo list now. I know it's annoying.


Add option to not skip failed runs.

Hi,
I'm using this action in our project, but in our case, we needed the action to download the latest run's artifact, even if that run failed. So I've forked it and made some changes, you can check it out here. I've added an option allow-fail, and if set to true, the action will download the latest artifact no matter the result.
The fork right now is a little messy, and also built on a version from July 2020. I was wondering if you'd welcome such an option added to this action and if so, I'm willing to consolidate my changes and make a Pull Request. I didn't want to make a PR just yet, not knowing if such change would be appreciated.

Hi @valcikeric,
An allow-fail option sounds great! I'd be happy to take a PR for it 🙂


Add average_gate_fidelity, gate_error, and modify process_fidelity functions

Summary

Added average_gate_fidelity and gate_error function for operators
Update process_fidelity to requires target channel to be an Operator or None
if target is None F computed wrt identity operator.
Deprecated require_cptp kwarg for process_fidelity
Added require_cp and require_tp kwargs for process_fidelity
with defaults True and False

Details and comments

can you add a couple tests and a release note


Improve getFilterDef by skipping unnecessary branches

Changes proposed

Improve the getFilterDef call by skipping some useless computation especially when the filter is blank
Use StringBuilder to build filterSql, this should be helpful especially as we were concatenating String inside loops

Check List (Check all the applicable boxes)

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

@lampajr please can you rebase this PR on top of master?

@lampajr please can you rebase this PR on top of master?

Oh nevermind, this change was also included in https://github.com/Hyperfoil/Horreum/pull/1913 so I can safely close this one :smile:


add bold, italic formatting and alignment?

title

The app supports markdown, so you can do bold and italic formatting but i don't know if markdown supports text alignment. You can look at its docs for more info
markdownguide.org/basic-syntax

okay thank you :D


onCommand:abc activates extensions when executed from command palette, but not when executed programmatically with vscode.commands.executeCommand

Does this issue occur when all extensions are disabled?: N/A

VS Code Version: 1.67.2
OS Version: Win11

Steps to Reproduce:

Create an extension A, that contributes and registers a command "abc".
Create an extension B, that has an activation event for "abc", i.e. onCommand:abc.
If you execute "abc" from the command palette, then extension B is activated as expected.
If you execute "abc" programmatically with vscode.commands.executeCommand, then extension B is NOT activated.

Some background for our scenario: We want to support other extensions interacting with our own, in such a way that activating our extension automatically causes the others to be activated (so they can call our API and supply some things that will immediately be needed). Basically, our extension is A in the above repro steps, and third party extensions would be B. It would be possible for B to copy all of the activation events from A, but in our case there are a lot, the list is changing often, and it would be error prone.
An ideal solution would be an onExtension:extensionId activation event that the third party extensions could use. But, alternatively, a command registered by and called by the primary extension could activate the others, if they have activation events for it. This works if that command is called from the palette but not if it's called programmatically.
Another approach would be for the primary extension to directly activate them with vscode.extensions.getExtension(...).activate(), but that requires having the primary extension know the IDs of the third party extensions, which is not ideal for our scenario.
/cc @isidorn

I can actually not reproduce this and from looking at the implementation I cannot spot an obvious flaw - when running a command via executeCommand we either run it "inside the extension host" (here), which means the extension contributing the command has been activated already, or we execute it via the renderer, which ensure that an activation is send...
@bwateratmsft Can you craft a minimal repo that shows the behaviour that you are describing?

@jrieken I created https://github.com/bwateratmsft/activationbug. You'll need to do npm install in both the extensiona and extensionb subfolders, but after that you can open from the root and F5.
Extension B has an onCommand:abc activation event. When executing command abc ("ExtensionA: Command `abc`") via the command palette, both extension A and extension B activate. When executing command abc via the API ("ExtensionA: Command `abc` but via API"), A is activated, but B is not activated.

Oh, now I get it... So, B is active and contributes the command but you want A to activate as a "side effect". Interesting and definitly not covered.

Yes, exactly. This makes it easy for extension A to activate extension B, without needing to know anything about B. Basically, in the real life scenario, B would be contributing some functionality to A, and so should always be activated alongside A--but A has a ton of activation events and copying them is impractical.

Thanks @jrieken! I'll try this out in the next Insiders build.

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

We had to revert this for https://github.com/microsoft/vscode/issues/151780


[astro] Server environment variables in preview mode

I'm testing out the astro integration from<EMAIL_ADDRESS>in an existing 0.2.26 project.
I had some server only environment variables in a .env file.
DATABASE_URL=<some database url>

I changed the usage from process.env to import.meta.env according to the astro docs.
(Using process.env also still worked when running astro dev)
- const DATABASE_URL = process.env.DATABASE_URL;
+ const DATABASE_URL = import.meta.env.DATABASE_URL;
if (!DATABASE_URL) throw new Error('No database url defined')

But when I then ran astro build and then astro preview the environment variables where not defined.
I already debugged this a bit and noticed
Astro either converts or inlines the import.meta.env without a prefix.
https://github.com/withastro/astro/blob/b24607069ed1b305b47ca25171e682f7c71603eb/packages/astro/src/vite-plugin-env/index.ts#L30-L39
Because the .env is loaded in the build step the code above is basically converted back to
const DATABASE_URL = process.env.DATABASE_URL;

But the .env file is not loaded when running astro preview so process.env.DATABASE_URL is not defined.
Not sure if this should be the responsibility of solid-start or could also be handled by @astrojs/node.
I fixed it for me right now by importing this env.js file
import dotenv from "dotenv";
dotenv.config();

In handler.js
import "./env.js";
import startHandler from "~/entry-server";

So I could test the build locally, but not sure if this is a good solution.

You probably understand the issue better than I do at the moment. I noticed it was broken but wasn't sure what solution aligned with Astro the best. Things to note are I'm bypassing Astro for the client build. This is probably fine for public stuff as long as I set the Vite prefix appropriately to match their conventions. And I'm gathering the issue is on the server build. You are saying if I understand start is loading the env during the build and that causes Astro not to inline it. If so we should probably stop doing that and rely on Astro's mechanism.
This is super helpful information.

@dertieran , it seems like this is fixed. Can you verify if that is the case with 0.3.0-alpha.7?

Hey 👋
Sorry I was on vacation for a few weeks and didn't check Github for a while.
Yes the 0.3.0-alpha.7 update fixed it for me, so I guess this issue can be closed.

@dertieran , can you close it?


LEM post-alpha changes

After we're satisfied with LEM's data compatibility with Lurk Alpha, here is a list of things we'll do to simplify/optimize the LEM infra

[ ] Optimize function applications so it makes proper use of the arguments that are already disposed as a cons list
[ ] Experiment with better env lookup strtategies
[x] Drop ZExprPtr from Lang (#885)
[x] Drop Meta since LEM uses the program counter directly for NIVC, which consumes less memory (#886)
[x] Look for a design in which the co-existence of the general reduction count config and the multiframe's own reduction count is less confusing
[x] #729 (#887)

I'm closing it because the remaining tasks are already part of a longer plan to improve the model


U524/t560 sprinkler effects

This pull request also solves #488 #483 and an issue with audio pitch issues.


Group duplicated nodes

Godot version:
3.1 stable
Issue description:
Right now when duplicating multiple nodes, from this:

You get this:

It would be infinitely more useful if duplicated nodes appeared like this:

So instead of each node being placed after their respective nodes, they should be grouped after the whole selection.

Yes, this is also a common frustration for me, as I often duplicate 10 or more objects and then have to manually sort them. Would especially be useful if you have an ordered number of nodes (mesh_1, mesh_2, mesh_3, etc) and you want to duplicate these and have it continue the order.

I think it just iterates over every selected nodes and duplicates it, which means it places the copy underneath.

It would be very easy to make the duplicated nodes appear after the last one selected, but then there's this

New nodes should also appear under the same parent. Either we should always disregard original parents or make this behavior optional, by introducing another duplicate option. I could make a PR for this, but not sure which behavior is desired (personally I wouldn't care about original parents).

I think duplicating [selected] nodes in this tree:
Click to expand

Root

Node1

[Node2]
[Node3]

[Node4]
[Node5]

Should result in:
Click to expand

Root

Node1

Node2
Node3
[Node2-duplicate]
[Node3-duplicate]

Node4
Node5
[Node4-duplicate]
[Node5-duplicate]

That is, groups should be preserved only inside the same parent, not across all parents.
Also, duplicating selections like this:
Click to expand

[A]
B
[C]

Should probably not result in:
Click to expand

A
B
C
[A-duplicate]
[C-duplicate]

That is, only consecutive nodes should be kept together, not all duplicated nodes moved to the bottom.


Integration with RDF.rb as a storage adapter

There is a great ecosystem of ruby libraries and tools in RDF.rb including RDF storage adapters (e.g. Mongo, DataObjects, AllegroGraph, etc.). This seems like a great opportunity to integrate redlander as an RDF storage adapter for Redland storage implementations.
Doing so would enable several storage implementations in Redland listed here.
This seems like a natural "connect the dots" type of scenario, but I may be missing something. What do you think @cordawyn, @gkellogg?

It would be great to have more storage adaptors for RDF.rb, if someone were interested in doing this. It's pretty simple, just a couple of methods to implement. There's a somewhat dated description of implementing this here.
Basically, you implement core interfaces of RDF::Repository, such as those in RDF::Repository::Implementation. This is centered around #each_statement and #query_execute, but it is often good to implement more accessors for better performance.
Note that the RDF::Raptor gem duplicates much of the functionality of Redlands for parsing/serializing, which tends to work well with the general architectural approach of RDF.rb.

This looks great. Is #query_execute the right method to override in implementations to handle SPARQL query input parsed from the sparql gem?

#query_execute is the top-level thing implemented for native Repository querying. For the most part, BGP, but can also take some other pattern forms. Normally, I would expect you to query the repository using SPARQL::Client, rather than natively.
One thing we're looking at is to support a SPARQL Algebra to SPARQL Grammar transformation, which could be used in #query_execute to turn the query into a regular SPARQL query that can be handed to the query engine using some other mechanism (such as SPARQL::Client); but, that remains on the TODO list. (At the core, if you are using a RDF::Query, or RDF::Query::Pattern argument to #query_pattern, this can easily be turned into a simple SPARQL query).

I would like to add another vote for querying the repository using SPARQL rather than using "native" direct calls. But generally, I'm okay with using Redlander however you see fitting ;-)
However, I suspect that this may turn into a wrapper-in-a-wrapper thing, since the both projects use similar constructs for representing similar data (i.e. statements, nodes, etc.). Perhaps, you might consider using only FFI bindings from redlander (found in "redland.rb" file) to build an adapter for RDB.rb.

I'm referring to executing SPARQL queries in-process versus over the network. If the RDF store has support for this you could avoid the HTTP overhead.
@cordawyn Fully agree about the wrapper in wrapper thing. That would not be efficient or maintainable. Using the FFI descriptors in redland.rb could be a good starting point. I'm trying to integrate Apache Jena with RDF.rb at the moment (rdf-jena), but will get back to this early next year.
Will close for now.


chosen zephyr,code-partition has no effect on ELF linking start address

I'm currently trying to port Zephyr to the Arduino Nano 33 BLE. It is important to the bootloader that the code resides at address 0x10000, so I added the following to my device tree:
/ {
    model = "Arduino Nano 33 BLE (Sense)";
    compatible = "arduino,arduino_nano_33_ble";

    chosen {
	zephyr,flash = &flash0;
	zephyr,code-partition = &code_partition;
   };
};

&flash0 {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		code_partition: partition@10000 {
			label = "code";
			reg = <0x10000 0x100000>;
			read-only;
			/* how big is this segment? I'll set it to something crazy large for now*/
		};
	};
};

This however, has no effect:
Reproduction steps

Install the arm-none-eabi-* tools
Run west build -b "pick a board"
use objdump to dump the resulting ELF from build/zephyr/zephyr.elf

Expected behavior
Here is the first few lines from an objdump straight out of the Arduino IDE. Note the start address is in 0x10000.
Disassembly of section .text:

00010000 <__Vectors>:
   10000:	20040000 	.word	0x20040000
   10004:	0001976d 	.word	0x0001976d
   10008:	000197a5 	.word	0x000197a5
   1000c:	00015721 	.word	0x00015721
   10010:	000197a9 	.word	0x000197a9
   10014:	00015731 	.word	0x00015731
   10018:	00015739 	.word	0x00015739
	...
   1002c:	00016ea9 	.word	0x00016ea9
   10030:	000197b1 	.word	0x000197b1

Here is the objdump from my Zephyr elf:
00000000 <_vector_start>:
   0:	20000688 	.word	0x20000688
   4:	000010c9 	.word	0x000010c9
   8:	00003127 	.word	0x00003127
   c:	000010f9 	.word	0x000010f9
  10:	000010f9 	.word	0x000010f9
  14:	000010f9 	.word	0x000010f9
  18:	000010f9 	.word	0x000010f9
	...
  2c:	00000f0d 	.word	0x00000f0d
  30:	000010f9 	.word	0x000010f9
  34:	00000000 	.word	0x00000000
  38:	00000ec5 	.word	0x00000ec5
  3c:	0000310f 	.word	0x0000310f

Starting address is still at zero! I tested with a built-in board (adafruit_feather_nrf52840) and it still links the ELF starting at zero.
Impact
I can't do anything with the board :(
Environment :

Windows 10
Zephyr SDK thru WSL for building, Windows for flashing
Zephyr 0.11.4

I added an override linker.ld script to the board, and everything works! I'm still confused with the purpose of the "zephyr,code-partition" part.
Quoting from the documentation
it says:

If a zephyr,code-partition property is defined, the application link will be restricted to that partition.

I assumed it meant that the linker would be told to throw everything into the specified partition, but I guess I didn't read that right. Closing this for now but an expansion of what this means would be appreciated


Streaming logs, auto reload error reports.

Use a dispatcher timer to do auto reload.
Logs viewer is a bit more complex.
(1) if it is ascending order, append to end.
(2) if it is descending order,  add to the start of the list.

Hi Ian,
Thanks for your code review comment.  I made changes on your feedback.   Adding unit tests to Model is challenging -- mocking the dependencies, check the "expected results" etc.  It's currently not the practice we do although in general it's always better to add more unit tests.

Thanks for the review!


Disallow spaces inside of curly braces in JSX expressions in children (react/jsx-curly-spacing)

https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-curly-spacing.md
We already require no spaces inside of JSX expression in attributes, i.e. <Hello name={firstname} /> instead of <Hello name={ firstname } />.
I want to enforce the same rule for JSX expressions in children.
Before:
    "react/jsx-curly-spacing": ["error", "never"],

After:
    "react/jsx-curly-spacing": ["error", {
      "attributes": { "when": "never" },
      "children": { "when": "never" },
      "allowMultiline": true
    }],

The following patterns are considered warnings:
<Hello name={ firstname } />;
<Hello name={ firstname} />;
<Hello name={firstname } />;
<Hello>{ firstname }</Hello>;

The following patterns are not warnings:
<Hello name={firstname} />;
<Hello name={{ firstname: 'John', lastname: 'Doe' }} />;
<Hello name={
  firstname
} />;
<Hello>{firstname}</Hello>;
<Hello>{
  firstname
}</Hello>;

Shipping in standard 14.


Backporting new workshops derived from template

Talking with @psobolewskiPhD, we're thinking about adding something to the README to encourage folks to upstream content they add to their PRs.
A specific suggestion was to ask people to submit a GH issue to the template repository and providing a link to their workshop repository that was derived from the template so we can pull in new content.

Another option I've found useful is having a GitHub discussions topic about it, see for example https://github.com/melissawm/sphinx-tags/discussions/32


Add method for getting Weaviate's gRPC port

This PR adds a convenience getGrpcHostAddress() method to Weaviate module, to get the gRPC host.
It also updates module's test to reflect this change.

Thanks for your contribution, @antas-marcin !