Galera can never be Ready

Hi,
I am having trouble understanding how Galera, merged recently with PR #90, can ever become Ready. The first thing that start.sh does is running peer-finder.py, which tries to get service endpoints for MariaDB and loop if it can't. However, the daemonset has a readinessProbe that won't mark the pods as Ready until the kubelet can establish a TCP connection to MariaDB, which can't happen until peer-finder.py finishes.
Also, it seems that at soon as it gets an endpoint which isn't the local IP address, it ends. What happens if the first replica is there, but my second replica is still being created and will only be up in 30 seconds? Shouldn't it wait for the required number of replicas?
Another remark, the result of get_my_ip_address() should probably be cached, no reason to create useless load on a loop.
Thanks.

@mateusz-blaszkowski

Hi,
Alongside with the DaemonSet, there is a new mariadb-init job. It's purpose is to be the first MariaDB instance that is created with the --wsrep_new_cluster parameter. Instances from the DaemonSet are supposed to join the cluster (started by the Job, thus the first endpoint should appear) with --wsrep_cluster_address parameter set to the IP address of the Job's instance. The job, after starting the MariaDB instance, periodically checks wsrep_cluster_size. If it's set to (replicas + 1), it waits for the cluster to be in a Synced state and then completes. For example, when the number of replicas is set to 3, exactly one mariadb-init pod and three mariadb pods should be created. The job completes when all three instances created by the DaemonSet joins the cluster (wsrep_cluster_size is set to 4 and wsrep_local_state_comment is set to Synced). This desired auto-clustering couldn't be accomplished without the Job because the DaemonSet MariaDB instances couldn't identify which one of them should be the seed instance (seed needs to start the cluster using --wsrep_new_cluster).
The scenario is a little different when the user requests to build only one instance (replicas=1). In such case, the Job is started but exists immediately. Single DaemonSet instance doesn't need to join the cluster and simply builds the target one.

Thanks for your answer. I didn't pay attention to the mariadb-init job yesterday, it was hidden in the completed objects section. It appears that the job eventually marked itself as completed even though every attempts failed. Checking at his logs today revealed that the boostrap-db.sh was erroneous on rkt. I pushed a small fix and it now progresses.
All pods have joined, they all show wsrep_cluster_size=3, wsrep_local_state_comment=Synced. However, the init job won't finish because it still shows wsrep_cluster_size=1. Have you seen that before?

Noticed the wsrep_cluster_state_uuid is different between the pods and the init job, which explains why the size can be different.

Latest attempt worked fine with https://github.com/stackanetes/stackanetes/commit/616add869585b199815cff0a02cb481efa20c795 and https://github.com/stackanetes/stackanetes/commit/c28979e58012adb7f9e9e567d0570c619a6b0e9c. Closing.


Support for ICommand.CanExecute

Binding commands to the Command property of buttons should respect the ICommand.CanExecute(object?) method to determine if the command is executable, and use a different styling when CanExecute returns false.
Currently, buttons will still invoke the ICommand's behavior even if CanExecute returns false and does not use a different style.

use the CommunityToolkit & CommunityToolkit.Maui

This library itself needs to be updated in order to use ICommand interface properly or a decision should be made that it won't be supported in the future.
An example of this is this implementation: https://github.com/mdc-maui/mdc-maui/blob/34c507d795f451150d6a778eb46b2443b5345539/src/Material.Components.Maui/Components/Button/Button.cs#L123C21-L123C21
This could be changed to if (Command?.CanExecute(CommandParameter)) { Command.Execute(CommandParameter); }.
Additionally, style triggers would have to be included to resemble the disabled styling if CanExecute returns a non-truthy value. I may work on it myself, but lots of libraries are dropping support for the Command pattern (MUDBlazor recently totally removed ICommand support) so I'm not sure if it fits the long-term goals of the project or not.

Update: 6e97cdaf8cd53ee19b4125d968c5f3fbb88bf739


Adding rules for in-segmentation errors

Fixing issue #1109

Command: sct_propseg -i t1/t1.nii.gz -c t1
Dataset: /Volumes/data_raid/data_shared/sct_testing/large/

Branch master:
Duration: 948s
Passed: 19/104
Crashed: 0/104
Mean: {'dice_segmentation': 0.6654290104106925, 'duration [s]': 49.302188210762466}
STD: {'dice_segmentation': 0.28345675950310223, 'duration [s]': 21.601589883353494}

Branch bdl_issue1109:
Duration: 890s
Passed: 22/104
Crashed: 0/104
Mean: {'dice_segmentation': 0.6806839305569934, 'duration [s]': 46.17467857553409}
STD: {'dice_segmentation': 0.2849778960362751, 'duration [s]': 20.130472328107732}

Command: sct_propseg -i t2/t2.nii.gz -c t2
Dataset: /Volumes/data_raid/data_shared/sct_testing/large/

Branch master:
Duration: 1184s
Passed: 89/201
Crashed: 33/201
Mean: {'dice_segmentation': 0.7481998235241972, 'duration [s]': 39.712681209757214}
STD: {'dice_segmentation': 0.3428954806394332, 'duration [s]': 14.97347618773706}

Branch bdl_issue1109:
Duration: 1220s
Passed: 91/201
Crashed: 33/201
Mean: {'dice_segmentation': 0.7505215534976936, 'duration [s]': 41.08509090684709}
STD: {'dice_segmentation': 0.3412622611137723, 'duration [s]': 15.688839628699897}

where do the 33/201 crashes come from on the T2 images?

@jcohenadad It crashes when no spinal cord has been detected.

wouldn't it be fairly straightforward to detect the crash (with a try/except) and exit the program with exit status 0 and a printout that tells the user that "spinal cord could not be detected, please do a manual initialization using -init-mask viewer, or -init-centerline viewer"?


XLA Invalid global read in fusion_514

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
Maybe. I modified the BERT network to do fp16 math and compiled with XLA.
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Ubuntu 16.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
n/a
TensorFlow installed from (source or binary):
NVIDIA 18.12 development container
TensorFlow version (use command below):
1.12
Python version:
3.5.2
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
10.0.130
GPU model and memory:
Tesla V100-SXM2-32GB

You can collect some of this information using our environment capture script
You can also obtain the TensorFlow version with
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
Describe the current behavior
Code runs for a while and then suddenly generates NaNs. Code runs normally when XLA is disabled.
cuda-memcheck caught a bunch of these:
========= Invalid global read of size 4
=========     at 0x00000880 in fusion_514
=========     by thread (959,0,0) in block (10,0,0)
=========     Address 0x7f359f6e6e04 is out of bounds
=========     Device Frame:fusion_514 (fusion_514 : 0x880)
=========     Saved host backtrace up to driver entry point at kernel launch time
xla_invalid_read_fusion_514_hlo_dumps.zip
Describe` the expected behavior
Code runs without generating NaNs.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
Other info / logs
Should be reviewed by @jlebar
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

I can reproduce...something.  Not the same failure you're seeing.
CUDA_LAUNCH_BLOCKING=1 cuda-memcheck tensorflow/compiler/xla/tools:replay_computation_gpu --use_fake_data=true --print_result=false --logtostderr --num_runs=100 $(ls ~/Downloads/xla-invalid-read-fusion/unoptimized_hlo_proto/* | grep _80__) --vmodule=gpu_executable=10

[...]

I1220 14:16:10.896196   49661 gpu_executable.cc:142] Executing the thunk for %dot.20474.9628 = f16[4096,768]{1,0} dot(f16[4096,768]{1,0} %fusion.1215, f16[768,768]{1,0} %convert.20474.8970), lhs_contracting_dims={1}, rhs_contracting_dims={0}, metadata={op_type="MatMul" op_name="bert/encoder/layer_0/attention/self/key/MatMul"} on stream 0

I1220 14:16:10.896224   49661 gpu_executable.cc:142] Executing the thunk for %fusion.1213 = f16[32,12,128,64]{3,2,1,0} fusion(f16[4096,768]{1,0} %dot.20474.9628, f32[768]{0} %arg167.20474.8683), kind=kLoop, calls=%fused_computation.1213, metadata={op_type="Transpose" op_name="bert/encoder/layer_0/attention/self/transpose_1"} on stream 0

E1220 14:16:10.899636   49661 cuda_driver.cc:1027] Internal: could not synchronize on CUDA stream: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered :: Stack trace:
    @     0x55fc241a94cb  stream_executor::cuda::CUDADriver::SynchronizeStream()
    @     0x55fc241a1ee7  stream_executor::cuda::CUDAExecutor::BlockHostUntilDone()
    @     0x55fc241dc03f  stream_executor::StreamExecutor::BlockHostUntilDone()
    @     0x55fc241af4a3  stream_executor::Stream::BlockHostUntilDone()
    @     0x55fc214f8f9d  xla::gpu::GpuExecutable::ExecuteThunks()

Interestingly this only happens on the second run of cluster 80.
I am not sure if this is a failure in XLA's generated code or in the cublas kernel that ran right before fusion.1213.  But in general ILLEGAL_INSTRUCTION is not our bug...
Anyway let me dig in a bit to this.  Strange that it's different from what you're seeing (i.e. no cuda-memcheck failure), but maybe the two failure modes are related somehow.
I'm on cuda 10.0.130 with cudnn 7.4.1 and driver 410.78.

(I'm using XLA compiled from head, so it's also possible that we fixed the error that was causing your cuda-memcheck failure after the TF 1.12 release.)

If I make all dot ops (i.e. matmuls) nops, the ILLEGAL_INSTRUCTION error goes away.
This strongly points a bug in cublas, at least for the failure I'm hitting.  Still no idea why what I'm seeing is different than what you're seeing.
Let me add optimization fuel to gemm_thunk to figure out which gemm call is the problem. http://blog.ezyang.com/2011/06/debugging-compilers-with-optimization-fuel/

It still hits an ILLEGAL_INSTRUCTION if I disable gemm autotuning and use the default gemm algorithm for each call.

I'm having some difficulty pinning this down, it seems to be nondeterministic exactly which gemm causes the problem.  :-/

Based on everything I've been able to see, I think what I'm seeing is a cublas bug.  I've filed nvbugs/2470403.  Let's see what they say.
My best guess is that you're seeing something different from me because you were using TF 1.12 instead of building from head or using an XLA nightly.

Because of the nondeterminism and the likelihood that it's cublas, I think this will be hard for me to debug much further.
cc @mruberry

Thanks for taking a look, Justin. We're investigating now.


Complete fish setup and configuration for gitpods.

Codecov Report

Merging #433 (b620f59) into stable (07db8ea) will increase coverage by 0.40%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           stable     #433      +/-   ##
==========================================
+ Coverage   34.25%   34.66%   +0.40%
==========================================
  Files          73       73
  Lines        6127     6127
  Branches      312      312
==========================================
+ Hits         2099     2124      +25
+ Misses       3955     3928      -27
- Partials       73       75       +2

Impacted Files
Coverage Δ

library/grammar/expr.hpp
44.03% <0.00%> (-2.45%)
:arrow_down:

library/grammar/number.hpp
92.10% <0.00%> (ø)

library/virtual_machine/set_evaluator.cpp
75.00% <0.00%> (ø)

library/virtual_machine/evaluator.cpp
17.21% <0.00%> (+0.44%)
:arrow_up:

library/virtual_machine/get_evaluator.cpp
45.21% <0.00%> (+1.59%)
:arrow_up:

library/virtual_machine/bin_evaluator.cpp
49.23% <0.00%> (+5.64%)
:arrow_up:

library/grammar/string.hpp
30.50% <0.00%> (+7.00%)
:arrow_up:

library/grammar/grammar.hpp
71.42% <0.00%> (+21.42%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


"minutes ago" not updating

My display is stuck on 1m ago. I actually built three and all had the same issue.

Resolved itself after a few hours

That's really curious - could have been something of a hiccup from NightScout itself. The reason I say that is because the "minutes ago" text is being received from NightScout. I may need to look into adding some sort of basic logging that could be viewed from BG Buddy's config web page to help diagnose it. Let me know if it happens again.


Countdown Clock and Speedometer Textures Double Overlap

As you can see from the attached picture, the speedometer and the timer have a texture over a texture. A smaller version of the textures on top of a larger version of the textures. I've read about this issue a year ago on Reddit but found no solution.

Seems like you need to go through FXT settings and turn the overlay it is generating off.

Seems like you need to go through FXT settings and turn the overlay it is generating off.

Is that setting in Outrun2006Tweaks.ini? Can't seem to find it.

Experimental HUD that has been successfully replaced lol


Problem with gazebo simulation.

ISSUE TEMPLATE ver. 0.4.0

Which TurtleBot3 platform do you use?

[A] Burger
[ ] Waffle
[ ] Waffle Pi

Which ROS is working with TurtleBot3?

[ ] ROS 1 Kinetic Kame
[ ] ROS 1 Melodic Morenia
[A ] ROS 1 Noetic Ninjemys
[ ] ROS 2 Dashing Diademata
[ ] ROS 2 Eloquent Elusor
[ ] ROS 2 Foxy Fitzroy
[ ] etc (Please specify your ROS Version here)

Which SBC(Single Board Computer) is working on TurtleBot3?

[ ] Intel Joule 570x
[ ] Raspberry Pi 3B+
[ ] Raspberry Pi 4
[ ] etc (Please specify your SBC here)

Which OS you installed on SBC?

[ ] Raspbian distributed by ROBOTIS
[ ] Ubuntu MATE (16.04/18.04/20.04)
[ A] Ubuntu preinstalled server (18.04/20.04)
[ ] etc (Please specify your OS here)

Which OS you installed on Remote PC?

[ ] Ubuntu 16.04 LTS (Xenial Xerus)
[ ] Ubuntu 18.04 LTS (Bionic Beaver)
[A ] Ubuntu 20.04 LTS (Focal Fossa)
[ ] Windows 10
[ ] MAC OS X (Specify version)
[ ] etc (Please specify your OS here)

Specify the software and firmware version(Can be found from Bringup messages)

Software version: [x.x.x]
Firmware version: [x.x.x]

Specify the commands or instructions to reproduce the issue.

$ export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_world.launch

Copy and Paste the error messages on terminal.

RLException: [turtlebot_world.launch] is neither a launch file in package [turtlebot3_gazebo] nor is [turtlebot3_gazebo] a launch file name  The tracetrack for the excepction was written to the log file.

Please describe the issue in detail.

I was trying to run a gazebo simulation detailed in the emanual of the Turtlebot3 page, but everytime i tried to run it the same error appeared.

Hi @DeepIndigo9
You might have not setup the catkin workspace correctly.
The command below will append the workspace setup to .bashrc file and will be automatically loaded whenever you open a new terminal.
$ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

working


Remove string-typing from plugin loader

Fix this. This will unblock the use of static analysis tools and help prevent runtime issues.

this also needs to be addressed

We attempted to fix this with PR #2701
That worked in unit tests, but failed when actually running the agent and was reverted with PR #2727
@vtbassmatt - Do you think it is still worth doing this work?

Don't we need this for static analysis to work properly? I'm agnostic on the value of this in a vacuum, but adding static analysis seemed to be paying off in terms of quality.

We are running static analysis now and it is fine. What this is preventing is accurate dead code analysis. I am not sure my previous attempt would have solved that problem either, since I was dynamically discovering the classes. I am fine if we still want to think about this more and try to come up with a more elegant solution.

Gotcha. Since it's primarily an engineering concern and I'm supposed to be doing less dev/more product, I'll defer to @mjroghelia


Windows/Mac on-send Office 365 requirement

As stated in PR 636 -  https://github.com/OfficeDev/outlook-dev-docs/pull/636/files

The on send feature is currently supported for Outlook on the web in Office 365, Exchange 2016 on-premises (Cumulative Update 6 or later), and Exchange 2019 on-premises (Cumulative Update 1 or later). This feature is also available in preview on Windows and Mac connected to an Office 365 subscription. Add-ins that use the on send feature aren't allowed in AppSource.

Will the on-send feature for Mac/Windows be supported in the future with non Office 365 subscriptions?

@usselite Thanks for your question.
@exextoc Could you respond to this query?
Thanks.

For Mac, the users who are on one time purchase versions of Office like 2019, or 2016 would not have the latest versions of API set like 1.8 or Block on Send which was released recently.
They could download patches from here -> https://macadmins.software/
These patches are released every month and would contain the latest builds

We do not have plans to support on-send for Office 2016 or Office 2019 on Mac or Windows.


Add AES256 CTR DRBG no derivation function no prediction resistance s…

…upport
Issue # (if available):
https://github.com/awslabs/s2n/issues/904
Description of changes:
The BIKE and SIKE known answer tests from the NIST competition actually use "AES256 CTR DRBG no derivation function no prediction prediction" and the lack of prediction resistance was undocumented until debugging why I couldn't get https://github.com/awslabs/s2n/pull/905 to pass with the new DRBG.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Everything else looks good to me.


You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file

ERROR  Failed to compile with 2 errors                                                                  12:58:23

 error  in ./node_modules/pdfjs-dist/build/pdf.js

Module parse failed: Unexpected token (2413:45)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|         intent: renderingIntent,
|         renderInteractiveForms: renderInteractiveForms === true,
>         annotationStorage: annotationStorage?.getAll() || null
|       });
|     }

 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/sign/esign/AcEsign.vue?vue&type=script&lang=js& 122:0-41 493:6-17
 @ ./src/views/sign/esign/AcEsign.vue?vue&type=script&lang=js&
 @ ./src/views/sign/esign/AcEsign.vue
 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/sign/Home.vue?vue&type=script&lang=js&
 @ ./src/views/sign/Home.vue?vue&type=script&lang=js&
 @ ./src/views/sign/Home.vue
 @ ./src/router/index.js
 @ ./src/js/core/init.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://<IP_ADDRESS>:8080&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

 error  in ./node_modules/pdfjs-dist/web/pdf_viewer.js

Module parse failed: Unexpected token (895:20)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|     this._on(eventName, listener, {
|       external: true,
>       once: options?.once
|     });
|   }

 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/sign/esign/AcEsignViewer.vue?vue&type=script&lang=js& 23:0-64 97:28-36 110:30-39
 @ ./src/views/sign/esign/AcEsignViewer.vue?vue&type=script&lang=js&
 @ ./src/views/sign/esign/AcEsignViewer.vue
 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/sign/esign/AcEsign.vue?vue&type=script&lang=js&
 @ ./src/views/sign/esign/AcEsign.vue?vue&type=script&lang=js&
 @ ./src/views/sign/esign/AcEsign.vue
 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/sign/Home.vue?vue&type=script&lang=js&
 @ ./src/views/sign/Home.vue?vue&type=script&lang=js&
 @ ./src/views/sign/Home.vue
 @ ./src/router/index.js
 @ ./src/js/core/init.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://<IP_ADDRESS>:8080&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

How can we resolve this issue??

Node version "12.16"
pdfjs-dist version "^2.7.570"
Vue  Version "^2.6.11",

Vue Version "^2.6.11",

Unfortunately "Vue", whatever that is, isn't something that the PDF.js contributors can support.
Furthermore, there's not really any actionable information provided as-is; please note https://github.com/mozilla/pdf.js/blob/master/.github/CONTRIBUTING.md (emphasis mine):

If you are developing a custom solution, first check the examples at https://github.com/mozilla/pdf.js#learning and search existing issues. If this does not help, please prepare a short well-documented example that demonstrates the problem and make it accessible online on your website, JS Bin, GitHub, etc. before opening a new issue or contacting us in the Matrix room -- keep in mind that just code snippets won't help us troubleshoot the problem.

error  in ./node_modules/pdfjs-dist/build/pdf.js

You probably need to use the correct type of build then, as explained at https://www.npmjs.com/package/pdfjs-dist/v/2.7.570?activeTab=readme

For usage with older browsers or environments, without support for modern features such as e.g. async/await, ReadableStream, optional chaining, and nullish coalescing; please see the es5 folder.

Same problem in React, after upgrading pdfjs-dist to 2.7.570

Same problem in React
"pdfjs-dist": "^2.2.228"
"react": "^16.8.6",
node: v14.16.1
npm: 6.14.12

Same problem in React, after upgrading pdfjs-dist to 2.7.570

The answer has already been provided in https://github.com/mozilla/pdf.js/issues/13200#issuecomment-815594505, so unless you explain what's unclear about it we cannot help!

Same problem in React
"pdfjs-dist": "^2.2.228"

That version is no longer supported, please find the supported versions at e.g. https://mozilla.github.io/pdf.js/getting_started/#download

I locked the version  to 2.2.228 instead of "^2.2.228" then this error didn't show any more.
Kind of weird solution but it's effective.

I locked the version to 2.2.228 instead of "^2.2.228" then this error didn't show any more.

As clearly mentioned https://github.com/mozilla/pdf.js/issues/13200#issuecomment-816483754, that version is explicitly unsupported.
Please update to a supported release, and simply follow the already provided information which tells you to import from node_modules/pdfjs-dist/es5/build/pdf.js instead.

The issue is, that in some version after 2.5 some lines with the optional chaining operator were added. This operator is not supported by webpack by default in its current version (as far as I know). Vue uses webpack (@sairamsunkara673M is using Vue and therefore webpack). So you may need an addiotional loader for the pdfjs-dist files. You could configure your webpack as follows:
module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules(?!(\/|\\)pdfjs-dist)/,
                loader: 'babel-loader',
                options: {
                    'presets': ['@babel/preset-env'],
                    'plugins': ['@babel/plugin-proposal-optional-chaining']
                }
            }
        ],
    },

This will use the babel plugin-proposal-optional-chaining plugin to compile files with optional chaining operators. Note that you need to have babel installed, in my project I have following babel packages:
"@babel/core": "^7.13.15",
"@babel/preset-env": "^7.13.15",
"babel-loader": "^8.2.2",

Also this will probably extend your build time by a bit, since you need to parse the pdfjs-dist files with an additional loader.
@hanqizheng solution works, because their included version doesn't seem to use the optional chaining operator.
Some other suggestions?
This workaround is not neccessary anymore when webpack adds optional chaining operator support.

If you import the ES5 version as indicated above there should be no optional chaining operators since those are not an ES5 feature. Moreover, we use Webpack 5 and that in turn uses Acorn 8 with according to https://github.com/webpack/webpack/issues/10227 even supports optional chaining, so also here I don't see why this should not work. Just make sure you're using the latest PDF.js release since older ones may have been built with Webpack 4.

I locked the version to 2.2.228 instead of "^2.2.228" then this error didn't show any more.

As clearly mentioned #13200 (comment), that version is explicitly unsupported.
Please update to a supported release, and simply follow the already provided information which tells you to import from node_modules/pdfjs-dist/es5/build/pdf.js instead.

I'm using react and I'm having this same problem with all the versions I have tried so far except for 2.2.228
There's no es5 directory though

How to import Mozilla PDF.js in Vue project?
vue + pdfjs-dist 实现pdf流文件在线预览 (解决了Error : Module parse failed: Unexpected token )
https://stackoverflow.com/questions/65750584/how-to-import-mozilla-pdf-js-in-vue-project

Since this is the first search result for the error message and the solution isn't in the thread...
Symptom: The following error message shows up when you build.
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file
Cause: your build configuration does not support option chaining. Likely something with webpack or babel.
Solution 1: the quick fix is to use the legacy build folder.
// If this causes an error:
import * as PDFJSViewer from "pdfjs-dist/web/pdf_viewer";
import {getDocument } from "pdfjs-dist/build/pdf.js";

// use this instead:
import * as PDFJSViewer from "pdfjs-dist/legacy/web/pdf_viewer";
import {getDocument } from "pdfjs-dist/legacy/build/pdf.js";

Solution 2: Change your webpack configuration to support option chaining by installing @babel/preset-env or following the instructions in the comments earlier in this thread.

@davidbstein's Solution 1 worked great for me as a Parcel user. Too bad these different versions aren't documented in any examples or the Webpack instructions.

The transpileDependencies didn't fully work for me. While I eventually managed to render a page, getTextContent returned no items without any errors. Switching to the legacy build fixed the issue.

The transpileDependencies didn't fully work for me. While I eventually managed to render a page, getTextContent returned no items without any errors. Switching to the legacy build fixed the issue.

I meet the same problem. Donnot use cnpm or yarn. Try to delete node_modules/ and run npm install again.

if you do not want to go through the hassle of upgrading webpack to include optional chaining, point to the legacy version which is included with the dist.  the documentation omits that this exists
import * as pdfjs from 'pdfjs-dist/legacy/build/pdf.js'
instead of
import * as pdfjs from 'pdfjs-dist'

This here helped me resolve the issue
[https://stackoverflow.com/a/73819895/8962623]

Why not just revert the offending code. This issue is not resolved. These are all workarounds

Agreed. I am using this for work, and there is not really adequate documentation. Some explicit fixes for React projects would be appreciated.


Fixed the MPU9250 driver to preserve device discovery

See issue #11019
This has only been tested on a pixracer derivative.

here's how/where they are started for us in the startup scripts:
https://github.com/PX4/Firmware/blob/master/boards/px4/fmu-v4/init/rc.board#L47-L52

TODO: test on Here GPS.

Fixed style and rebased on master.

Good to merge!


Google Maps API error: MissingKeyMapError

Hi !
In the template I have
<div map-lazy-load="https://maps.googleapis.com/maps/api/js" map-lazy-load-params="{{vm.googleMapsUrl}}" >
and controller I have set the vm.googleMapsUrl variable as:
vm.googleMapsUrl= 'https://maps.googleapis.com/maps/api/js?key=MY_KEY';
When I load the map, this error appears on the console:
Google Maps API error: MissingKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#missing-key-map-error
I already tried this same key in the URL on the site and works perfectly
<script async defer
      src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&callback=initMap">
    </script>

Any idea to solve this problem? Thank you all.

http://plnkr.co/edit/4Qp94D76whmnnnQcor3y?p=preview

you need to remove <script> tag related to google map.

I have the exact problem described above. There are no script tags for google. My key value is correct, but it always gives me Google Maps API error: MissingKeyMapError

I have this problem too, as per example found here: https://github.com/allenhwkim/angularjs-google-maps#lazy-loading-of-google-maps-javascript

in index.html no Google Maps script tag
in template
`

`
in controller
`NgMap.getMap().then(function(map){
map.googleMapsUrl="https://maps.google.com/maps/api/js?key=xxxxxxxxxxxx";
})`
the console complains "Google Maps API warning: NoApiKeys"


async Init file function: streams and fileAdded events

This is a follow-up of https://github.com/flowjs/flow.js/pull/296
In that PR, support was introduced for async initFileFn which allows to read from a stream and/or perform other async operation before Flow.js proceed with a given file.
One very important aspect of the FlowFile bootstrap is size determination (by default, from the regular file.size) in order to compute the number of chunks needed. A initFileFn could affect this computation.
FlowFile initialization is followed by the fileAdded event which serves two purposes:

As a hook, which allow consumer to reject this file
As a notification, which inform consumer that bootstrap is fully done and further processing [eg: flow.upload()] can be called (Flow.upload() would fails if the FlowFile.chunks array was not computed)

One issue is that an async initFileFn could finish after fileAdded fires.
So one question is: Should the initFileFn function really run if a file is going to be rejected?
If yes (eg, because rejection depends upon the number of chunks/file.size), then a PR could be made so that the event is fired after initFileFn (even if async). It would move fileAdded inside FlowFile's bootstrap function unless a nicer and higher-level solution exists (like of more pipeline-like vision of the process). I tend to think there should be less assumptions about file.size at the beginning of the process (eg: FlowChunks could be built on-demand later) but this hook in its current shape forbids this.
Side note about Events: I think that having events to expect a return value makes them more hooks than events. It's a bit counter intuitive and keeps the code from moving to native Events. Not sure they are worth it.
The fileAdded native event could just pass the corresponding (read-only) reference to Flow and the FlowFile and the consumer could delete it as well (accessing to the global flow object). It'd be more flexible.

Agree, initFileFn should not cross with any event. One should wait for other to complete. Feel free to break something as long as it makes it cleaner.

I tried hard to provide a publishable PR where addFiles would have supported both async Promise-mode and non-async (regular) calls (using 4 [async]<Read|Init>FileFn helpers).
But this implied crazy code complexity and messy method prototypes (Promise-based / await use vs regular blocking calls + async vs non-async bootstrap()). I ended up getting tests messing around one with the other or strange endless loop behavior.
I'll do a new PR iteration which would introduce the following prototype:

addFiles([files], initFn) // The backward compatible one
asyncAddFiles([files], initFn) // The new one allowing stream/asynchronous init function where lays the related complexity in terms of events and hooks ordering

For upload(), we don't actually need to change anything but it may be clever to provide an
asyncUpload({Function asyncReadFileFn = null, Function readFileFn = null}) or similar so that users:

can just await asyncUpload() which would be equivalent to listening to the complete event.
could override the readFileFn and use the blocking (or non-blocking) helper variants. It's handy and makes clearer that the read helper override only applies to upload().

I tried hard to provide a publishable PR where addFiles would have supported both async Promise-mode and non-async (regular) calls (using 4 [async]<Read|Init>FileFn helpers).
But this implied crazy code complexity and messy method prototypes (Promise-based / await use vs regular blocking calls + async vs non-async bootstrap()). I ended up getting tests messing around one with the other or strange endless loop behavior.
I'll do a new PR iteration which would introduce the following prototype:

addFiles([files], initFn) // The backward compatible one
asyncAddFiles([files], initFn) // The new one allowing stream/asynchronous init function where lays the related complexity in terms of events and hooks ordering

For upload(), we don't actually need to change anything but it may be clever to provide an
asyncUpload({Function asyncReadFileFn = null, Function readFileFn = null}) or similar so that users:

can just await asyncUpload() which would be equivalent to listening to the complete event.
could override the readFileFn and use the blocking (or non-blocking) helper variants. It's handy and makes clearer that the read helper override only applies to upload().

Maybe you could drop backward compatibility and only support promise based one?
addFiles([files], initFn) // The backward compatible/unchanged one will be replaced with this one asyncAddFiles([files], initFn) // The new one allowing stream/asynchronous init function where lays the related complexity in terms of events and hooks ordering
Supporting both variants without a BC adds some complexity too. So why not break this and reduce our code base? It will be easier to read ant less likely to make a mistake. You can delete entire test too and rewrite it by your needs. Yes, it might work differently, but it's ok if it does it's job

Maybe you could drop backward compatibility and only support promise based one?
addFiles([files], initFn) // The backward compatible/unchanged one will be replaced with this one asyncAddFiles([files], initFn) // The new one allowing stream/asynchronous init function where lays the related complexity in terms of events and hooks ordering
Supporting both variants without a BC adds some complexity too. So why not break this and reduce our code base? It will be easier to read ant less likely to make a mistake. You can delete entire test too and rewrite it by your needs. Yes, it might work differently, but it's ok if it does it's job

But that would force users handling regular files (the majority) to use a Promise-based approach with no gain:

Without an await / then they would have a surprising behaior
It would force them to reorganize their code
It would sound tricky is break common assumption

Given that the async approach is mostly useful for streams (whether network or local) and these are not going to represent the majority of cases, it seems safer to keep the regular function (node.js fs module is providing operation like statFile / statFileSync too)

But that would force users handling regular files (the majority) to use a Promise-based approach with no gain:

Without an await / then they would have a surprising behaior
It would force them to reorganize their code
It would sound tricky is break common assumption

Given that the async approach is mostly useful for streams (whether network or local) and these are not going to represent the majority of cases, it seems safer to keep the regular function (node.js fs module is providing operation like statFile / statFileSync too)

I don't think anyone currently using flow.js is going to upgrade to v3. v2 is already stable and they don't need to upgrade if it works.
v3 is for new folks and it should be simple for them to get started.
Though you have the point, we can have sync and async separate methods. I leave this decision for you. You have my support in both cases now 👍

I don't think anyone currently using flow.js is going to upgrade to v3. v2 is already stable and they don't need to upgrade if it works.
v3 is for new folks and it should be simple for them to get started.
Though you have the point, we can have sync and async separate methods. I leave this decision for you. You have my support in both cases now 👍

I'm in line with @AidasK in general.
With this change we will be dropping support for IE11 that anyway will be officially dead in July.
What about @ng-flow and @ngx-flow? Shall we maybe issue two versions updated to support v2 and v3 respectively? Or maybe we could keep ng-flow as is and port ngx-flow to v3?
@MartinNuc what do you think?

I'm in line with @AidasK in general.
With this change we will be dropping support for IE11 that anyway will be officially dead in July.
What about @ng-flow and @ngx-flow? Shall we maybe issue two versions updated to support v2 and v3 respectively? Or maybe we could keep ng-flow as is and port ngx-flow to v3?
@MartinNuc what do you think?

ng-flow will be left with v2 version, since angular v1 is quite dead as well. As for ngx-flow, we still need to finish v3, it's a bit early to integrate it.

ng-flow will be left with v2 version, since angular v1 is quite dead as well. As for ngx-flow, we still need to finish v3, it's a bit early to integrate it.

Sound good for me to proceed with this plan :)

Sound good for me to proceed with this plan :)

So for going off-topic too but:

For a side project I'm currently using ngx-flow (and intend to keep it working with v3).
One very interesting development would be a Vue component. But this needs more time (to be done right) than I currently have myself.

About the full picture, a user made a Flow.js fork (I'd say "offensive": no git history, dropped authors & licensing) then created a Vue component which only works with his fork due to API changes. Still that could be a source of inspiration.

So for going off-topic too but:

For a side project I'm currently using ngx-flow (and intend to keep it working with v3).
One very interesting development would be a Vue component. But this needs more time (to be done right) than I currently have myself.

About the full picture, a user made a Flow.js fork (I'd say "offensive": no git history, dropped authors & licensing) then created a Vue component which only works with his fork due to API changes. Still that could be a source of inspiration.

I wasn't aware of it and it's quite popular. Too sad he hasn't contacted us before making this fork, we could have done an awesome collaboration.
For sure any inspiration is ok and should be used. I have added @drzraf as a member of the whole @flowjs/developers team, so you should be able to manage every repository. Feel free to create a vue js one if you want. 🍾
For bright flow.js future I have promoted @evilaliv3 to the owner. More of use are involved, the better 🏅

I wasn't aware of it and it's quite popular. Too sad he hasn't contacted us before making this fork, we could have done an awesome collaboration.
For sure any inspiration is ok and should be used. I have added @drzraf as a member of the whole @flowjs/developers team, so you should be able to manage every repository. Feel free to create a vue js one if you want. 🍾
For bright flow.js future I have promoted @evilaliv3 to the owner. More of use are involved, the better 🏅

I'd like to further divide events, inspired by WordPress model with its filter vs action hooks.

Why so much hooks : Mostly because of user relying on dropzone and other higher-level components. In these cases the flow between addFiles and upload is hardly configurable by the user contrary to those able to await flow.asyncAddFiles(); flow.upload();
Most events act as filters : They expect to stop processing at the first false value and the code itself may disregard the boolean return value (making them events).
There is no thing such as action where a Flow(File) property is altered by the processing hook.

The distinction between

return true/false to continue processing
return altered data passed in the attributes
.... is, I think, useful. A possible use case could be for filesAdded to return a reordered file list (eg: based on size) what is not doable from a filter-based hook alone.

Do you approve such a road?
We would end up with:

Type
Sync version
Async version
Stage

Filter
preFilterFile
asyncPreFilterFile
addFiles

Filter
postFilterFile
asyncPostFilterFile
addFiles

Filter
fileAdded
asyncFileAdded
addFiles

Processing hook / Action
filesAdded
asyncFilesAdded
addFiles

Processing hook / Action
filesSubmitted
asyncFilesSubmitted
addFiles

Event
fileRemoved
*
removeFile

Event
fileSuccess
*
upload

Event
fileProgress
*
upload

Event
fileRetry
*
upload

Event
fileError
*
upload

Event
uploadStart
*
upload

Event
complete
*
upload

Event
progress
*
upload

Event
error
*

Event
catchAll
*
*

Events are always fire and forget style.
Rule is : If any of initFileFn or any of the hooks is async, the whole addFiles must be async, that is, asyncAddFiles must be called instead. This could be detected with callback.constructor.name === "AsyncFunction" (for non-transpiled code) but the user (or the upper layer) is the only one to know what to do from the Promise and that's the reason the public asyncAddFile(s) method must be introduced.
Do you approve such an approach a pursuing the PR in that direction?

I'd like to further divide events, inspired by WordPress model with its filter vs action hooks.

Why so much hooks : Mostly because of user relying on dropzone and other higher-level components. In these cases the flow between addFiles and upload is hardly configurable by the user contrary to those able to await flow.asyncAddFiles(); flow.upload();
Most events act as filters : They expect to stop processing at the first false value and the code itself may disregard the boolean return value (making them events).
There is no thing such as action where a Flow(File) property is altered by the processing hook.

The distinction between

return true/false to continue processing
return altered data passed in the attributes
.... is, I think, useful. A possible use case could be for filesAdded to return a reordered file list (eg: based on size) what is not doable from a filter-based hook alone.

Do you approve such a road?
We would end up with:

Type
Sync version
Async version
Stage

Filter
preFilterFile
asyncPreFilterFile
addFiles

Filter
postFilterFile
asyncPostFilterFile
addFiles

Filter
fileAdded
asyncFileAdded
addFiles

Processing hook / Action
filesAdded
asyncFilesAdded
addFiles

Processing hook / Action
filesSubmitted
asyncFilesSubmitted
addFiles

Event
fileRemoved
*
removeFile

Event
fileSuccess
*
upload

Event
fileProgress
*
upload

Event
fileRetry
*
upload

Event
fileError
*
upload

Event
uploadStart
*
upload

Event
complete
*
upload

Event
progress
*
upload

Event
error
*

Event
catchAll
*
*

Events are always fire and forget style.
Rule is : If any of initFileFn or any of the hooks is async, the whole addFiles must be async, that is, asyncAddFiles must be called instead. This could be detected with callback.constructor.name === "AsyncFunction" (for non-transpiled code) but the user (or the upper layer) is the only one to know what to do from the Promise and that's the reason the public asyncAddFile(s) method must be introduced.
Do you approve such an approach a pursuing the PR in that direction?

Great table. I think it makes much  sense and it could be added to the docs too! Great explanation :)

Great table. I think it makes much  sense and it could be added to the docs too! Great explanation :)

In the original post I mentioned moving to native events which means extending the EventTarget class so that the Flow object inherit addEventListener() and can call this.dispatchEvent().
This seems great to replace fire and forget-like events when a return value is not needed. These can be safely dispatched within an async or a setTimeout) and it's now easy to make any object targetable.

If we keep compatibility with .on(), then the addEventListener callbacks must be wrapped (so that listeners receive the same data as before, instead of a CustomEvent annd it's detail property). But wrapping callbacks makes harder to track (and ultimately remove them). [Always that same problem with the native ES Event API].
Breaking compatibility in favor of native CustomEvent (for the fileRemoved, success, ...) means Flow v2 event handlers signature would not fit anymore. That's a big breakage.
It's possible to overload EventTarget.prototype.addEventListener ending up with this kind of code but it's still feel dirty and outside the scope of Flow.js.
An ideal emitter one would:

Rely upon CustomEvent
Provide a mixin (easy to extends)
Add the necessary removeAllEventListeners and/or wildcard-like event removal semantics (what means tracking listeners)

I went over these libraries:

https://github.com/developit/mitt
https://github.com/ai/nanoevents
https://github.com/SplittyDev/evee.js/
https://github.com/JFusco/es6-event-emitter/
https://github.com/dgraham/delegated-events

Some of them work by having on() to return the actual callback being registered so that it can later be consistently removed. They also handle all listeners tracking and offer handy shortcuts for fully or partial removal. But none of them rely upon native CustomEvent under the hood (except the last which is suboptimal regarding other aspects) : They all just synchronously run callback code. I wonder what am I overlooking.
Unless you've some opinion on the subject, I'm likely to go with the EventTarget.prototype.addEventListener overloading option. By the way, I'm about to split all the event-handling related code into a distinct file to make Flow.js code more focused and readable.

In the original post I mentioned moving to native events which means extending the EventTarget class so that the Flow object inherit addEventListener() and can call this.dispatchEvent().
This seems great to replace fire and forget-like events when a return value is not needed. These can be safely dispatched within an async or a setTimeout) and it's now easy to make any object targetable.

If we keep compatibility with .on(), then the addEventListener callbacks must be wrapped (so that listeners receive the same data as before, instead of a CustomEvent annd it's detail property). But wrapping callbacks makes harder to track (and ultimately remove them). [Always that same problem with the native ES Event API].
Breaking compatibility in favor of native CustomEvent (for the fileRemoved, success, ...) means Flow v2 event handlers signature would not fit anymore. That's a big breakage.
It's possible to overload EventTarget.prototype.addEventListener ending up with this kind of code but it's still feel dirty and outside the scope of Flow.js.
An ideal emitter one would:

Rely upon CustomEvent
Provide a mixin (easy to extends)
Add the necessary removeAllEventListeners and/or wildcard-like event removal semantics (what means tracking listeners)

I went over these libraries:

https://github.com/developit/mitt
https://github.com/ai/nanoevents
https://github.com/SplittyDev/evee.js/
https://github.com/JFusco/es6-event-emitter/
https://github.com/dgraham/delegated-events

Some of them work by having on() to return the actual callback being registered so that it can later be consistently removed. They also handle all listeners tracking and offer handy shortcuts for fully or partial removal. But none of them rely upon native CustomEvent under the hood (except the last which is suboptimal regarding other aspects) : They all just synchronously run callback code. I wonder what am I overlooking.
Unless you've some opinion on the subject, I'm likely to go with the EventTarget.prototype.addEventListener overloading option. By the way, I'm about to split all the event-handling related code into a distinct file to make Flow.js code more focused and readable.

I would be against overloading. Let's assume that most of our users are not going to upgrade to v3, so we can just drop support for on/off methods. Anyway it's a simple replacement of on to -> addEventListener, it's not that hard. We can mention this in the changelog/upgrade guide. Library will be smaller without overloading and simpler to use.
So I would go for plan 2.

I would be against overloading. Let's assume that most of our users are not going to upgrade to v3, so we can just drop support for on/off methods. Anyway it's a simple replacement of on to -> addEventListener, it's not that hard. We can mention this in the changelog/upgrade guide. Library will be smaller without overloading and simpler to use.
So I would go for plan 2.

As for distinguish of events and hooks. Why not moving hooks to params?  Do we really need to bind multiple handlers for one hook?

As for distinguish of events and hooks. Why not moving hooks to params?  Do we really need to bind multiple handlers for one hook?

The other reason why I want to make breaking changes for this code is that flow.js to be future proof. Of course it's going to break ngx-flow integration, but that's it. We have no other dependencies.
New flow.js should be simpler, easier to use and should cause less confusion. By dropping overloading it's for sure going to be simpler

The other reason why I want to make breaking changes for this code is that flow.js to be future proof. Of course it's going to break ngx-flow integration, but that's it. We have no other dependencies.
New flow.js should be simpler, easier to use and should cause less confusion. By dropping overloading it's for sure going to be simpler


Wrong type on session.get

Describe the bug
I'm trying to use typed sessions and I followed along here, but count is not number as expected but rather number | null.
Your Example Website or App
https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAbwFBzgGQgQwCYFMoCCUA5gM4A0KcAxlLpjLgMIQQDWwulqt9jL7TgGVcpUsAgA7ITGiZiXJAF84AMygQQcAEQABOiGAAPALRQArpID0kiHm0BuJKEixENOg1wAVAJ5hcbBExCWlZKHlcOBV1TR0DYxNzGGAAG1JHZ3BoeAQ4AC9otQ0tbXy7TKRU3HhqVg4ogF4PPmZ6zgAKbToYcyhJbwhtAEonKpq4UmoAC1wQTDhm-IA6CAAjACtcahgO5B4ISxgALgLlyXMQNfwO4eW8VUxzVN2ARmHKJVGkcfhSUXEUhkcgUixaXgEDWCgLCINwexo7SiXzG1XgMH8gWhoWBEVBzV4Xj8ASCAJx4UiCP+ISBFIU5EmMzmCxRP1wRlc8EwpF8kmoaksO1CcFSWDwUARdAAjuZRPAlKcMDh8EQyMNEFQ6pJSH8yVIwZgAO6YYDozGkmmwvG4ZYKGDYqQdKioaWynXLWbKqCkW01LqQzgjKjfTVSHWIo5g6kw327bR1I4jJyoKxWVCoAB6AH4fgdtbVDpIYAARBgLZrR0L3MvLBNFqip9NwbPKJBAA
Steps to Reproduce the Bug or Issue

Go to the URL
Line 24 has wrong type.
Line 27 has correct type.

Expected behavior
I expected line 24 to have correct type.
Screenshots or Videos
No response
Platform
TS Playground.
Additional context
No response

This is intended https://github.com/sergiodxa/remix-utils/blob/ea8fa3fce4cedcce492be65812d532ef5ff2265c/src/server/typed-session.ts#L38
The key may not be there and in that case it returns null.

I see, thanks. So I assume it's because you can still do the following
session.unset('count');
const count = session.get("count");

You just won't be able to commit the session if I understand correctly. How come then that session.data.count is just number and not number | null if it can be unset, or is data first changed after a commit? I'm a little unsure whether it would be better to get or just read from data. Right now I just do const count = session.get('count') ?? 1.
If there is no way or no intention to achieve this behavior, then perhaps the documentation could be updated to the following just to avoid confusion.
let session = typedSessionStorage.getSession(request.headers.get("Cookie"));

session.get("token"); // this will be a string or undefined or null
session.get("count"); // this will be a number or null
session.get("random"); // this will make TS yell because it's not in the schema

session.has("token"); // this will be a boolean
session.has("count"); // this will be a boolean

// this will make TS yell because it's not a string, if you ignore it it will
// throw a ZodError
session.set("token", 123);

You should always use session.get("key") and never session.data.key


Allow upload to specific destination (directory)

Before submitting the PR, please go through the sections below and fill in what you can. If there are any items that are irrelevant for the current PR, remove the row. If a relevant option is missing, please add it as an item and add a PR comment informing that the new option should be included into this template.

All relevant items should be ticked before the PR is merged

Description
When downloading there's a --destination option which downloads the data to a specific local directory. So far there is no equivalent option for upload.
This PR adds this --destination option for dds data put and allows the user to upload data to a new or existing directory.

[x] Add a summary of the changes and the related issue
[x] Add motivation and context regarding why the change is needed
[x] Fixes DDS-1179

Type of change

[x] New feature (non-breaking)

Checklist:
General

[x] Changelog: New row added. Not needed when PR includes only tests.
[x] Code change

[x] Self-review of code done
[x] Comments added, particularly in hard-to-understand areas
[x] Documentation is updated

[x] CLI - Automatic
[ ] Technical overview

Repository / Releases

[x] Rebase / update of branch done

Checks

[x] Formatting: Black & Prettier checks pass
[x] CodeQL passes
[x] Tests

[x] I have added tests for the new code
[x] The tests pass

Works as expected and looks good

Great! Any suggestions for how to test this.... ?

Great! Any suggestions for how to test this.... ?

not right out of my head, a least

Test added.


Fix integration test validation CI, make io_priority test conditional

After the name change of integration test to contest, this CI file was missed, and as a result we didn't validate the tests even when there was a change in them.
I think implementation of io_priority in runc is still pending on https://github.com/opencontainers/runc/pull/3783 , so made them condition with runc check.

when this pr https://github.com/opencontainers/runc/pull/3783 merge after, we should delete Box::new(|| !is_runtime_runc()), this line of code?

when this pr https://github.com/opencontainers/runc/pull/3783 merge after, we should delete Box::new(|| !is_runtime_runc()), this line of code?

Not just PR merge, this also needs to be released by runc in one of their releases. For example, right now they have domainname support on their main, but not in any released versions. Once they release any version with the PR code, we can update runc version in our CI and change the rust test code to previous.


How to disable auto play

How to disable auto play, but user can still play/pause manualy? or disable auto play when network is on GPRS, and enabl auto play when on WIFI or 4G?

@j3p0n You can have your own Strategy which do nothing, for example a lazyStrategy. So when you want to disable auto playback, just call Toro.setStrategy(lazyStrategy). See how I implement Toro.rest(boolean) for more information.

I created own lazyStrategy and called Toro.setStrategy(lazyStrategy) playback was disabled, but how to pause/play video when user clicks on video?. In this case adapter.getPlayer() returns null.

This intention of this library is to solely autoplay videos one at a time which it does nicely. Although If we want to temporarily disable autoplay, inside the viewholder that extends ToroPlayer, there a method play(). Just add playerView.getPlayer().setPlayWhenReady(false) after the exoplayerViewHelper.play().

@foodied You can always return a 'conditional false' from wantsToPlay (assuming that you are using Toro 3.x) ;). It will disable the auto play for a certain ToroPlayer. To disable that for all players, you can use PlayerSelector.NONE for the Container.

I did set the container.setPlayerSelector(PlayerSelector.NONE) but it seems that video is not loaded as it comes to the center. It just shows the shutter view.

@foodied Yep, it will not start loading (SimpleExoPlayer will not call 'prepare') if you don't have it starts. You can put a thumbnail view on top to hide the black screen though ... What is the behaviour you demand?

Well, I guess immediate playback without any buffering when I click on play.

EventListeners inside Playable is not public.

@foodied which version of Java you are compiling with? Java 7+ will allow EventListeners to be accessible by default (it is a class inside a public interface).

@eneim Should the container.setPlayerSelector(PlayerSelector.NONE) be called before the container is populated? Looks like setPlayerSelecter doesn't work when called after the container is already populated and scrolled.


Proposed SIG-Docs meeting agenda for 2022-09-13

Meeting Details

Date/Time: September 13, 2022 @ 1730 UTC / 10:30am PT
Location: Discord SIG-Docs Voice Room
Moderator: @sptramer, @chanmosq, @aFinchy
Note Taker: @FiniteStateGit

The SIG-Docs Meetings contains the history past calls, including a link to the agenda, recording, notes, and resources.
SIG Updates
c/o @willihay
The nomination period is now closed. We have two nominations for the two chair positions, therefore no election is necessary. Congratulations to @hanmosq [Amazon] and @aFinchy  [Amazon, Finch Studio], our next co-chairs! They will formally begin serving in September, at the start of the first sig-docs-community meeting.
c/o @sptramer
Docs stabilization has been cut: Use the stabilization/22.10 branch for any documentation which is targeted for the 22.10 release. Our official policy for submissions until release is:

If it's a small fix to existing content published on o3de.org, submit your PR against main.
If it's documentation intended to be provided for the 22.10 release, such as any documentation for a new feature, replacement, or improvement, submit your PR against stabilization/22.10.
If you're writing something for future work that was not accepted into the o3de 22.10 stabilization, submit your PR against development.

Important release dates for docs:

Release notes finalized (features + known issues) by 9/27/2022 (tandem with code freeze)
Versioned API reference generation: 9/28/2022

Open action items

[ ] Delete stale branches.
[ ] Add code-owners.md and maintainer restrictions (@sptramer).
[ ] Decide if and where to place target user definitions.
[ ] Add information on contributing to O3DE and the SIG on readme: https://docs.google.com/document/d/1Uuz0mvEOMcXBAzcJpop7EqFGzbU2nhXK52wG_c_ls08/edit.
[ ] Remove docs subdomain from o3de.org.
[ ] Add automated submission checks (broken links, spelling, style issues).
[ ] Incorporate feedback into SIG docs feature grid (@FiniteStateGit). https://github.com/o3de/sig-docs-community/issues/40

Newly resolved items

:white_check_mark: Stabilization branch for 22.10 release created.

Initial Agenda
The pre-approved agenda for this meeting is as follows:

Sig-docs-community chair handoff - @sptramer

Suggesting and voting on agenda items
Our community is welcome to suggest and vote on agenda items. If you suggest an item you need to have a designated presenter (normally the issue filer), but any community member can vote and isn't required to attend meetings or even participate in further discussion. If you think something is a good idea to discuss for the O3DE community, please upvote!
:+1: reactions to proposed agenda items are counted as YEA votes for taking up discussion, and :-1: as NAY. Votes on items don't determine the final agenda, but do influence it and are strongly taken into consideration as a representation of what the O3DE community wants to see from the project.
Agenda item format
If you leave a comment on this issue to propose an agenda item, please use the following format:
**Topic**: The topic you'll be presenting on
**Presenter**: Who will present (may be a team name or TBD)
**Length of time**: Estimate the amount of time you believe discussion will take. This should not be more than 15 minutes without SIG approval.

Include a description of your topic. Make sure to link to any supplementary materials such as RFCs, forum discussions, issues, etc.

Remember to add the :+1: and :-1: reactions manually, so they appear and are obvious to voters!

Hi,
It would also be great to keep the Discord moderators up to date so that we can give directions to people with these questions. Everythings gets lost today in the sea of messages thrown around at various channels.
We should get better to direct people into a Q&A forum. As much as I like chats to resolve occasional installation issues for persons X, Y and Z; they tend to be hard to search and find old information, unless you end up lucky asking the question in the same time zone a person is around to answer it.
Lumberyard used to have a forum where people could search and find things. I proposed in the past to open up a Star Overflow for Teams where it can connect to Github as well as posting knowledge base stuff, Q&As, and all other kinds of functions that come along in that platform.
https://stackoverflow.co/teams/pricing
Sincerely,
Niklas

Hi @NiklasHenricson -
There's already some discussion about this! I would recommend reaching out to @aFinchy for some details. There are some others internally at AWS discussing this option.

tl;dr: o3de.org needs clarification on what samples and tutorials can be included in the "learning-guide" part of the website: https://www.o3de.org/docs/learning-guide/.
The Contributor Guide topic on the website's docs structure is very specific about samples:

"The Samples section contains documentation for samples that are included with the O3DE distribution."

However, this raises the question why is the Kythera sample listed, since it is not included in the o3de repo? (It's available for download separately from a Kythera website.) Does the wording in the Contributor Guide need to be clarified?
The description for tutorials only talks about their assets, and not what tutorials are permitted:

"Tutorials should only use assets that are part of the O3DE distribution, are freely available, or can be quickly and easily replicated in open source content creation tools."

Perhaps what we need is an approval process whereby samples and tutorials can be approved to appear on the docs site.
We should also be clear about how much documentation can appear on o3de.org. Do we allow detailed and complete usage documentation for a sample here? Or do we limit content to something along the lines of a screenshot, a paragraph overview,  and a link to the full set of usage docs that is hosted elsewhere?
In either case, a sample might want to link to a tutorial on o3de.org that explains how to use it, which seems logical, assuming the tutorial has approval to appear on the site.
A similar question applies to reference documentation for Gems that are not included in the o3de repo, although that might have additional concerns and a different timeline, and therefore require a separate discussion.


Enchanted items are not kept or dropped

Playing with the newest version 1.4.1 of the datapack on 1.20.6, when items are enchanted they are not kept in the inventory or dropped on the ground.
Originally found the issue on 1.4.0 of the 1.20.6 fabric version but switched to 1.4.1 with the datapack in a new world in vanilla 1.20.6 and get the same issue.

^Enchanted elytra, pickaxe, and chestplate here

^After death only unenchanted tools are kept

^Enchanted items aren't on the ground either

Thanks for the report, I’ll look into that!


Add eslint-doc-generator

I built this CLI tool eslint-doc-generator for automating the generation of the README rules list/table and rule doc title/notices for ESLint plugins. It follows common documentation conventions from top ESLint plugins and will help us standardize documentation across ESLint plugins (and generally improve the usability of custom rules through better documentation and streamline the process of adding new rules). I've tested or introduced it on 10+ of the top ESLint plugins.

This is awesome, thank you!


Need to change the priority of the SAML2SSOAuthenticator

As a workaround for this issue [1] we need to set the priority of the SAML2SSOAuthenticator to 0 as below,
<CARBON_HOME>/repository/conf/security/authenticators.xml
<Authenticator name="SAML2SSOAuthenticator" disabled="false">
        <Priority>0</Priority>
        <Config>
            <Parameter name="LoginPage">/carbon/admin/login.jsp</Parameter>
            <Parameter name="ServiceProviderID">carbonServer</Parameter>
            <Parameter name="IdentityProviderSSOServiceURL">https://localhost:9443/samlsso</Parameter>
            <Parameter name="NameIDPolicyFormat">urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</Parameter>
            <Parameter name="AssertionConsumerServiceURL">https://localhost:9443/acs</Parameter>
	</Config>
</Authenticator>

This need to be mentioned in the documentation[2] until the issue [1] is fixed.
[1] https://github.com/wso2/product-is/issues/5271
[2]https://docs.wso2.com/display/ADMIN44x/Configuring+SAML2+Single-Sign-On+Across+Different+WSO2+Products

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


fix(templates): sort items before itering on concourse_*_options_combined

Dictionnaries are not ordered and AWX reorders them, thus making a diff between local run and AWX run
This enforces that even if the order of the dict changes, if key-value pairs don't change, the template doesn't change.

lgfm


Week 8 Review Ticket

Presentation Feedback from Mr. M and fellow students:
Please comment on any feedback from or presentation that we can use to improve our project and presentation skills for the future. Thank you!
Link to Deployed Project
Presentation Link

I really like the website conflict and great job on deployment

I like the purpose of your website, I find myself using it in the future.

I love the purpose of your website! It reminds me of obscurify, which has a similar function

I really liked the idea and your plan to use spotify api. I also like the css on the pages, theme seems very relaxing. It is interesting that you guys used AWS.

Frontend looks great and matches with your Spotify theme

It was really cool how you explained deployment and I liked the concept of finding statistics about certain playlists.


Uncaught (in promise) Error: Font 'Roboto' in style 'normal' is not defined in the font section of the document definition.

Hi,
I am testing this library but unfortunately can't make it work. Here is what I am trying to do. At this point I am literally copying your example from README.
      const pdfContent = {
        content: ["My test"],
      };

      const assetsLoader = new PdfAssetsLoader();
      pdfMake.fonts = assetsLoader.fonts;
      pdfMake.vfs = assetsLoader.vfs;

      // register Roboto font, normal variant. Roboto-Regular.woff must be in root path
      assetsLoader.registerFont({
        name: "Roboto",
        fileName: "Roboto-Regular.woff",
        styles: ["normal"],
      });
      // register Roboto font, bolditalics variant using a custom file location
      assetsLoader.registerFont({
        name: "Roboto",
        fileName: "Roboto-MediumItalic.woff",
        URL: "fonts/Roboto-MediumItalic.woff",
        styles: ["bolditalics"],
      });

      // register a file to be loaded in the root path
      assetsLoader.registerFile({ name: "MyLogo.png" });
      // register a file with a custom location
      assetsLoader.registerFile({
        name: "MyHeader.png",
        URL: "images/sunshine.png",
      });

      assetsLoader
        .load()
        .then(() => {
          console.log("assets loaded");
        })
        .catch((errors) => {
          // errors -> array with all file loading errors
          console.error("assets loading", errors);
        });

      pdfMake
        .createPdf(pdfContent)
        .download("mytest.pdf");

and the error in browser console says:
Uncaught (in promise) Error: Font 'Roboto' in style 'normal' is not defined in the font section of the document definition.
    at FontProvider.provideFont (pdfmake.min.js:2:580246)
    at pdfmake.min.js:2:103003
    at Array.forEach (<anonymous>)
    at measure (pdfmake.min.js:2:102066)
    at TextTools.buildInlines (pdfmake.min.js:2:103564)
    at DocMeasure.measureLeaf (pdfmake.min.js:2:600645)
    at pdfmake.min.js:2:598540
    at StyleContextStack.auto (pdfmake.min.js:2:163364)
    at DocMeasure.measureNode (pdfmake.min.js:2:597427)
    at DocMeasure.measureVerticalContainer (pdfmake.min.js:2:601611)

Any idea of what I'm doing wrong?
thank you very much

Any idea of what I'm doing wrong?

Yes.
You must call after assets are loaded
assetsLoader
       .load()
       .then(() => {
         console.log("assets loaded");
pdfMake
       .createPdf(pdfContent)
       .download("mytest.pdf");
       })
       .catch((errors) => {
         // errors -> array with all file loading errors
         console.error("assets loading", errors);
       });


Custom Levels won't load if CustomLevels folder has more than a few hundred maps (7000 for example)

Self explanatory.

Hello there
Can you please send me your application log (csm.log). You can find it under "C:\Users\InnocentThief\AppData\Roaming\Custom Songs Manager" (replace InnocentThief with your username). We tested with around 3000 maps and had no issues so far. There may be a problem after that amount of maps.

Hello. Here is the log file. I don't know if it is relevant but I have a bunch of maps that longer exist on beatsaver and some of them are from early 2019 before a newer song format was released, that is why I think the first lines of the log file refer to.
csm.log

I'll have a look into it over the weekend. Looks like there is a value in the maps JSON that has a wrong format (not decimal).
The new maps normally start with the key in the beginning of the directory name. Old maps have an other folder name and as such CSM is not able to read them. Those lines in the log with the folder name are just for information.
The real problem is the wrong format in the JSON file.

Done in version <IP_ADDRESS>


Get almost all the tests working

Types of changes

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

Motivation and Context / Related issue

pass all the tests (except for one of the amazons ones)

How Has This Been Tested (if it applies)

Checklist

[ ] The documentation is up-to-date with the changes I made.
[ ] I have read the CONTRIBUTING document and completed the CLA (see CONTRIBUTING).
[ ] All tests passed, and additional code has been covered with new tests.

(didn't look at the C++ tests yet)
Is the name of this PR accurate? It's making me a bit confused about what this PR is aiming to do

Nice point. I updated it.


Refactor lists into global scss

move the govuk list styles (normal, bullet and number) to globals/scss/_lists
remove the list component - update all components that use the list component
remove all code and references to the steps variant - if it's MVP we can add again in future but it doesn't seem part of core styles

This work allows easy styling of lists without having to use the component. This is useful for example when we do a styled wrapper like govspeak.

I think keeping the list component is just going to muddy things and cause confusion - I think we probably need to refactor the error summary component to generate the list without using the list macro?
If we're going to move the steps to a new component I think that needs to be done at the same time.

Is steps really important to MVP? I would suggest not?

I've now removed the list component completely and updated the components that used it.

There's a few things within the packages folder that will need updating:

The error summary component will need the dependency on the list component removing from its package.json
The all package will need the dependency on the list component removing from its package.json

I'm unclear as to whether that should happen as part of this PR or when we publish the next release – @igloosi @alex-ju do you know what the right approach would be?

I've added an example for a normal list.
I've removed references to the list component from packages.
I think we should do steps as another PR if needed, otherwise it's blocking the work on the prose scope.

@joelanman in rebasing this I think we lost the change of the list classes for the component and example lists, which were combined to create one page in #387. It's currently rendering incorrectly on http://govuk-frontend-review.herokuapp.com/.

sorry - will fix now


Best location for Recovery Vault

Given the scenario:

VM currently operating in UK South
Desire to provide DR for the VM in UK West

Should the recovery vault:

Be in UK South?
Be in UK West?
Be in an alternative region altogether?

If the Vault is in UK South and the region was to have a total region failure, would I still be able to recover/failover the VM into UK West?
All the current documentation appears to talk about the resources being failed over etc, unless I've missed it the documents don't cover the ASR Vault itself?
If I had to guess I would probably host the ASR in the backup region (UK West) so that the metadata is available for recovery in the event of a UK South failure?

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

ID: ee1b5526-edb7-fa2f-a6f4-de75c5fd39a3
Version Independent ID: d1815c07-d020-8d86-75cf-a193e32bba03
Content: Common questions about Azure VM disaster recovery with Azure Site Recovery - Azure Site Recovery
Content Source: articles/site-recovery/azure-to-azure-common-questions.md
Service: site-recovery
GitHub Login: @ankitaduttaMSFT
Microsoft Alias: ankitadutta

@ld0614
Thanks for your feedback! We will investigate and update as appropriate.

@ld0614 - when the vault is being used to setup ASR, then it must never be created in the source region, which is UK South in your case.
It should be either created in the recovery region, which will be UK West in your case, or in any third region. The same is called out in our documentation here.

Hi @Sharmistha-Rai, thanks for the confirmation, your information was exactly what I needed
I would suggest that this mention is rather buried for something so important, as some looking for this information, I initially checked https://learn.microsoft.com/en-us/azure/site-recovery/azure-to-azure-architecture followed by https://learn.microsoft.com/en-us/azure/site-recovery/azure-to-azure-common-questions as these articles seemed to be the most logical place to have this information.
I appreciate that this is probably the wrong place for this but has/could an Azure policy been developed to highlight this misconfiguration and I'm sure may people will have their ASR vaults in the source region by mistake?

hi @ld0614, thanks for your suggestions. We will take it up with the team, however for now the immediate query has been resolved, hence closing this issue. thanks!

#please-close


[DOCS] Update incomplete SQL doc pages

Closes #3268
Still WIP. Awaiting approval for current document updates

Looking into issue with search page brought up in original issue.

Maybe can be opened in seperate issue?


Enhancement: download queries for SDSS filters

Enhancement proposal: ultimately you'll be making a PR to astroquery which queries the VO service from the SVO Filter Profile Service 🌈 , but for now, you can do something simpler to retrieve the filter response curves for Sloan filters. Use the astropy.utils.data.download_file function to grab the response curves for each filter from the following links (and remove the step in the tutorial which says 'you can download the filter response curves here...'). The goal here is to avoid including any data files in the PR or requiring the user to manually download something which can be done in the code.

SDSS r
SDSS z

Woah, so upon implementing download_file (which works well, yay), I noticed that the SDSS transmissions from SVO are much different from those provided by APO... Is this due to some physical difference between the filters at the two sites (APO and Sloan)? At any rate it unfortunately changes the counts significantly as you can see in the new commit.

Also, I thought deleting sdss/ in my local branch and pushing it here would get rid of it remotely but I guess that's not the case... what's the correct/best way of deleting folders remotely?

Also, I thought deleting sdss/ in my local branch and pushing it here would get rid of it remotely but I guess that's not the case... what's the correct/best way of deleting folders remotely?

When you delete the files you must delete them from the command line like this:
git rm sdss/*

This command will still work even if the sdss/ directory is no longer there but you didn't use the git prefix when you rm'ed the files.

Woah, so upon implementing download_file (which works well, yay), I noticed that the SDSS transmissions from SVO are much different from those provided by APO... Is this due to some physical difference between the filters at the two sites (APO and Sloan)? At any rate it unfortunately changes the counts significantly as you can see in the new commit.

Sloan filters should be standardized, so the difference between the SVO files and the ones you had downloaded from the Sloan webpage may be problematic (not your fault, of course).
How much do the counts change?

Hmm so I see the difference, it appears to be the difference between the "prime" filters and the not-prime filters.  The SVO filter service has the "not-prime" profiles that look like this

whereas the primed filters look like this

I don't fully understand the difference between the two but I think there is a difference.

Ah! It looks like the history is spelled out here.

Ok, I think the thing to do is this:

in the mean time, use download_file to get the files from the links on this webpage for the primed filters for now
Write an email to<EMAIL_ADDRESS>with a link to the above website and say something to the effect of "hi, we need these transmission curves added please and thank you [link]". CC me on that email, I hope to see they're responsive!

Hmm, I think I'm misunderstanding something about how to download files. When I copy the link from the APO website and try:
sdss = ['r', 'z']  # only want r- and z-bands for now
apo_sdss_link = 'http://filters.apo.nmsu.edu/curves/SDSS/'

bandpasses = {}
for band in sdss:
    local_path = download_file(apo_sdss_link + band + '.dat')
    bp = SpectralElement.from_file(local_path)

I get a 404 error. I also tried the ftp protocol, which timed out. Got any more hints?

(also thanks for your investigation into the filters problem!)

The problem is the link is close but not quite right. You're looking for r.dat and z.dat under: http://filters.apo.nmsu.edu/data/SDSS/

Ah! Thank you. Silly.
Hopefully you saw that I emailed SVO. In the meantime I'll query from SDSS as suggested.

Little update for the thread, SVO has been updated to include SDSS primed filters! 🎉


about data pre-processing for flickr

Hi Kuang-Huei,
Thanks for sharing the code! I'm trying to obtain bottom-up-attention features of Flickr 30K.
Could you please tell me how to obtain mapping between filename of image and its id?
e.g. '99' is in dev_ids.txt.  However there is no image named '99.jpg' in Flickr Dataset.
Thanks!

I think the original Flickr 30k metadata contains image id? At least you can find the "imgid" field in the json metadata in [https://cs.stanford.edu/people/karpathy/deepimagesent/flickr30k.zip]. This is from Andrej Karpathy from [https://cs.stanford.edu/people/karpathy/deepimagesent/].


Archive Plans

Enable archiving of completed transformation plans (successful & errored)

Add archive button to Completed Migrations ListView
Set up fetching so that archived and active (unarchived) plans are
returned separately.
Set up POST to archive a plan
Modify MigrationsCompletedList to also be used for display of
archived plans

ADDITIONAL CHANGES

Refactor to remove usage of Object.values() due to node support
Extract migrations filters strings to constants

Closes #314, #315, #316
Notes

To quickly unarchive all your plans, use the following command in the rails console
ServiceTemplateTransformationPlan.update_all(deleted_on: nil)

Alternatively, use the unarchive! method on individual records

Big thank you to @AparnaKarve for showing me how to set up filters when fetching plans!

Screens
Flow

Archive Button

Archive Modal (Plan with unmigrated VMs)

Archive List

Archive Details

Archive Empty

@priley86, the CI failures are due to the use of Object.values() here
Seems like this method isn't supported in node 6.x
I can remove my unit tests to keep CI from failing, but wasn't sure how we want to handle this

yes i'm fine w/ this... Object.keys it is i guess?

Our CI script runs builds using node 6 and 6.10.  Object.values is an ES2017 feature that is not supported by node < 6.14
Please see node.green

I'm not sure how important Node6 support is for v2v at this point. It's nice having the support, but doesn't seem required anymore. My guess is we should just stay in sync w/ ui-classic which appears to be >=6.9.1 right now.
https://github.com/ManageIQ/manageiq-ui-classic/blob/master/package.json#L108
@AparnaKarve @AllenBW can you confirm?

@priley86 Agree, let's stay in sync with ui-classic

can you rebase #391 when you get a chance? there was a request to merge that one first just now...

Yup, no worries!

this looks good to me! will go ahead and rebase my branch locally...
@AparnaKarve are we OK to merge this now or do we need to resolve the filter issue above on the backend first?

@serenamarie125 I wasn't listed as a reviewer, but it looks good to me too.

Other than the above comment, everything else looks just great!!
Thanks @michaelkro !!


Document developing the pipeline locally

Expected Behavior
It should be real simple to hack around with build-pipeline on one's laptop
Actual Behavior
A few gotchas as the steps assume we want to use gcr.io
Steps to Reproduce the Problem

Follow build-pipeline's developing docs
Realise the need to fiddle with a few properties
Perhaps trip up with using ko so really stress the need for a proper Gopath

Additional Info
https://github.com/knative/build-pipeline/pull/425 please 👼

Looks like we'll get some of this with https://github.com/knative/build-pipeline/pull/430 but this issue I think is more focused on the developer experience, while #430 is about following along with the tutorial specifically (correct me if I'm wrong @a-roberts !)

Yep @bobcatfish, exactly 😄

Done in https://github.com/tektoncd/pipeline/pull/495 I think
/close


deps: checking google-cloud-shared-dependencies.version 3.2.0

We modified the release process of the shared dependencies. Checking the sanity of the BOM using this repository.

It worked.


Revert "CHEF-4101: DeepMerge - support overwriting hash values with nil"

This reverts commit 972bc2f61685979e5b76f5481e3b1af2bd010d0e. This commit needs to be reverted in favor of newly merge attr changes that makes it possible to delete attr & attr subtrees.
Conflicts:
spec/unit/mixin/deep_merge_spec.rb
/cc: @lamont-granquist

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
Non-GitHub Verified Committers
There are 1 commit author(s) whose commits are authored by a non-GitHub verified email address. Chef will have to manually verify that they are authorized to contribute.
Please sign the CLA here.


how to add django translation i18n to placeholder using by widget tweaks?

{{ form.username|add_class:"form-control mb-2 mt-2"|attr:"placeholder:Enter login" }}

I need to add {% translate "Enter login" %} in placeholder. how I can implement it?

wrote custom forms for templates and use gettext lazy instead of widget tweaks. but if you know how i18n and widget tweaks can be used together, write.


added mktemp and keep .env during post install script

I ran the (single) mktemp testcase and it was successful.  I want to add mktemp because the git build of expat requires it.

LGTM! FYI @HarithaIBM since you experienced a similar issue with the .env

Sure, Noted this change @IgorTodorovskiIBM !


docs: change rocket chat links to discord

Checklist:

[X] I have read freeCodeCamp's contribution guidelines.
[X] My pull request has a descriptive title (not a vague title like Update index.md)
[X] My pull request targets the main branch of freeCodeCamp.
[X] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

This PR changes our contributing documentation to point back to Discord instead of Rocket Chat.

Just wondering what pushed this change?
I do like discord more, to be honest because I can edit my messages in it.
But discord isn't linked to freeCodeCamp account, so some people will have to create a discord account to interact with us.

Hi @Sboonny
Our community has existed on Discord for a while. One of the current limitations for our self-hosted Rocket.Chat is the ability to notify contributors of changes/announcements. That is a contributor will miss out on messages unless they are actively checking the chat. They do have a paid-tier which is not worth the usage we get out of chat.
That's one of the core reasons we have used chat for our most active and prolific members of the community. Instead, our forum has always been a no-frills place for community conversations ever since its inception.
So, we are thinking we will keep Rocket.Chat for staff conversation and housekeeping chores and move the contributors to discord.
We will make sure to make announcements so that everyone is made aware of this. Stay tuned.


[ansible/artifactory] nginx_ssl needs SELinux boolean.

Which installer:
ansible
Which product and version:
artifactory-pro-7.55.3
jfrog.platform 10.12
ansible 2.12
Which operating system and version:
AlmaLinux 8.7 (SELinux enforcing)
Which product license (Enterprise/Pro):
Not needed yet
JFrog support reference (if already raised with support team):
What happened:
==> artifactory-error.log <==
2023/03/16 15:22:30 [crit] 18009#18009: *18 connect() to <IP_ADDRESS>:8082 failed (13: Permission denied) while connecting to upstream, client: 192.168.xxx.yyy, server: test, request: "GET /ui/ HTTP/2.0", upstream: "http://<IP_ADDRESS>:8082/ui/", host: "alma1"
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
enable selinux configure NGinx with ssl as reverse proxy.
Anything else we need to know:
This is the fix
- name: Set httpd_can_network_connect
  ansible.posix.seboolean:
    name: httpd_can_network_connect
    state: true
    persistent: true

Thanks for reporting. Can you please raise a PR with the suggested fix? We will be happy to take it  in next release.

https://jfrog.com/knowledge-base/artifactory-permission-denied-error-with-nginx-redirect/


Colour cycle should be smoother

It jumps around from max green/blue to min green/blue (and vice-versa). Instead, it should alternate increasing each channel individually.
100
110
120
130
140
150
160
170
180
190
280
270
etc...

Cancel in favour of gradients


(VirtualService default/my-service) Referenced host not found: "my-service.default.svc.non-default-domain

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
I've tried istioctl analyze for the first time in our working production cluster and it reports lines like the following many times in a row for all services:
VirtualService default/my-service) Referenced host not found: "my-service.default.svc.non-default-domain

The VirtualServices themselves are working completely fine.
I am sure it is due to us using a non-default cluster domain suffix non-default-domain (actual domain different) instead of the default cluster.local.
The reason we use a separate cluster domain is to enable VPC-native DNS in the GKE cluster to use Cloud DNS across different clusters with (possibly) identically named service names. Those are then disambiguated by the cluster domain suffix.
This suffix is also the trustDomain for SPIFFE configured in Istio.
So, everywhere where we can change the default cluster domain to what we are using, we did change this config.
However, istioctl analyze seems to have a problem with this.
Version
1.20.0 and also now 1.20.1 (updated today)

Additional Information
No response

Not 100% sure but I think this might be a false positive result from the analyzer, as this code should be very old. I'll take a look.


Fix same PVC for Sonar & Postgre....

Address https://github.com/rht-labs/helm-charts/issues/61.

Hi @jtudelag i tried this out ..
helm template my -f charts/sonarqube/values.yaml charts/sonarqube/ | oc apply -f-

and the pod
postgresql-sonarqube-1-6rhvf                     0/1     CreateContainerConfigError   0          4m37s

fails because of a missing secret:
Warning  Failed                  7s (x4 over 34s)  kubelet, ip-10-0-134-153.ap-southeast-2.compute.internal  Error: secret "my-sonarqube" not found

i assume there is some misalignment in secret name vs fullname ? can u check .. Cheers  🦔🦔🦔🦔

Let me check it, prob you are right, even though I tried this many times locally before pushing the changes....we need a CI ;).

sorted. LGTM 🦂🦂


Detection of malicious devices

Status
READY
Description
Detection of malicious devices
Related PRs
List related PRs against other branches:

branch
PR

other_pr_production
link

other_pr_master
link

Todos

[x] Tests
[x] Documentation

Deploy Notes
None
Steps to Test or Reproduce
Using CLI
sudo python setup.py install
pip install -r requirements.txt
sudo python SecureTea.py
Using interactive setup
sudo python setup.py install
pip install -r requirements.txt
sudo python SecureTea.py
git pull --prune
git checkout <feature-branch>

Impacted Areas in Application
List general components of the application that this PR will affect:

SecureTea.py
requirements.txt
core.py

@jay13patel I genuinely appreciate the hard work you have put into this, but can you take a moment to go through the following points:

Using multi threading - SQLite objects are by default single threaded, that means when you are creating an SQLite object in the main thread, you can't use it with another thread, threads communicate using pipes, however you can use a simple tweak: check_same_thread=False
Read here: https://www.sqlite.org/threadsafe.html
PEP - 8 conventions: Make sure your code are PEP-8 formatted, no unnecessary spaces & lines between two code units. Also a 1 line gap between functions of a class & 2 lines otherwise.
Add documentation - However simple the function may be, we may forget it, add a docstring.
Respect the DRY principle, Do Not Repeat Yourself : Please make sure the code is not repeating unnecessarily, here for example the code part of sending notification is repeating twice, why not a function?
Can you please move it a separate folder under lib, we don't want to crowd core.py
Also can you please share your IDE details, I'm not sure but I can roughly guess the indentation that you are using is not 4 spaces, this can give error to many users.

Again I'm no expert, these are some of my suggestions as a contributor, I guess we can help to improve SecureTea code base quality even more. :)
Anyway! this is a great PR :)
Regards

@jay13patel As @abhisharma404 Suggested better share your IDE details in our chat group. Better we can use same IDE with same configs
Also, Check my pinned message in the chat group.

@abhisharma404 thank you for your suggestions . I will keep this in my mind when i will do my next pr. @rejahrehim sure i will share my IDE details

@abhisharma404 Please check this and close.

@rejahrehim We can close this, it's already been implemented. Also, I do not have the permissions to close it. :)


Add dockerfile github build action

Docker image should be automatically built and pushed on commit.
https://github.com/marketplace/actions/docker-setup-buildx

https://github.com/yzernik/squeaknode/pull/554

https://github.com/yzernik/squeaknode/pull/554