[Enhancement]: JUnit 4 to JUnit 5 migration

Module
Core
Proposal
Currently this code of an  example
https://github.com/testcontainers/testcontainers-java/tree/main/examples/redis-backed-cache
Upgrade examples to  JUnit 5, currently the code uses junit 4

Observe the annotations and imports, all are junit 4
even the gradle dependency shows it as junit 4.x

Thanks for raising this issue, @nagkumar. Would you like to contribute and update our examples with JUnit 5?

Sure @eddumelendez sure, if you could help with your thought process to achieve this I can follow the same, such as which first few example to start with.

even to upgrade gradle groovy scripts to gradle kotlinDSLs too.

Upgrade all the dependencies in gradle script up to date versions.

Those are no goals of he issue

if you want to retain JUnit4 along with new JUnit5 examples

Let's just use one, in this case JUnit 5.
The order doesn't matter :) If you want to submit them all at once is ok or if do you prefer one by one, it is also ok. Just let us know here so others watching can consider it.

What is the purpose of
testcontainers-java\docs\examples

I would recommend upgrading of all the dependencies at least to the latest as we can avoid compatibility issues and some dependencies may more actively support junit 5 than junit 4.
I shall start with redis first to test the waters..

even to upgrade gradle groovy scripts to gradle kotlinDSLs too.

Upgrade all the dependencies in gradle script up to date versions.

Those are no goals of the issue

if you want to retain JUnit4 along with new JUnit5 examples

Let's just use one, in this case JUnit 5.
The order doesn't matter :) If you want to submit them all at once is ok or if do you prefer one by one, it is also ok. Just let us know here so others watching can consider it.

Can you pl. review my PR for this migration https://github.com/testcontainers/testcontainers-java/pull/6950#partial-pull-merging
also likes to know if you have any timeline to pull this to main?

Please reply as I do the code review let me know if can close this from myside, as wish to get away from repeat work due to delays I do see code is changing rapidly, and conflict resolving can be big time waste for all of us.

is this issue competed or anyone still working on it , please let me know , I a new in this , if no body still there , It can be assigned to me . Thanks

is this issue competed or anyone still working on it , please let me know , I a new in this , if no body still there , It can be assigned to me . Thanks

pl take it forward from this PR, as I have been waiting for inputs from the team without luck https://github.com/testcontainers/testcontainers-java/pull/6950#partial-pull-merging

That's not tru @nagkumar . There is one comment left as you can see here It was marked as a resolve but it wasn't.

can I proceed with this issue

That's not true @nagkumar . There is one comment left as you can see here It was marked as a resolve but it wasn't.

I am unable to know if each junit 5 jars should be added to each example or not and also, currently junit 4 jars are not part of these examples, unable to find where they are coming from.. did ask for the same in my pr info.. pl. check once at https://github.com/testcontainers/testcontainers-java/pull/7040

ok sure

currently junit 4 jars are not part of these examples

I per further study on this.. why these examples work in spite of junit 4 jars were not part of the gradle build scripts is gradle automatically includes junit 3 to 5 the latest versions
> Task :test
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

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

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

For more on this, please refer to https://docs.gradle.org/8.2.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

However including junit jars automatically would be deprecated from Gradle  9.x. Hope this clarifies the next person to take care of it accordingly..i.e. explicit inclusion of the junit files
 testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
  testRuntimeOnly("org.junit.platform:junit-platform-launcher")

in each of the example.

Closing due to it was fixed by https://github.com/testcontainers/testcontainers-java/pull/7417


Add 16dp space in total between about_social and the border above it

Closes: #208
I was going to modify the margin of @style/AboutTitle from 8dp to 16dp, but it was applied to the TextView with text value 'DroidKaigiについて' as well so I decided not to do so. Instead, I added margin bottom 8dp to have 16dp in total.
Below is the screen shot:

:eyes:

I've fixed it :) https://github.com/shaunkawano/droidkaigi2016/commit/a24b84fe04004c30805fa79f217620b663ee8229

Great work! Thanks!
LGTM. I'll merge it after CI success.


About evaluating on AFLW2000-3D

hi,
You method need alignment the input according to 5 3d landmarks before inference, when evaluating on AFLW2000-3D, which landmarks detector do you use, or just use 5 landmarks from ground truth.
Thanks.

Using the landmark detector in our paper, the implement detail section.

First, I detect 68 landmarks by face-alignment library, and bbox from gt (don't use sfd detector ).

img = cv2.imread('')
fa = face_alignment.FaceAlignment(face_alignment.LandmarksType._2D)
pts68_fa = fa.get_landmarks(img[:,:,::-1], detected_faces=[[letf, top, right, bottom]])[0]

Then alignment by your code

_, img_warped, tformcrop_align_affine_transform(pts68_fa[:,:2], img, FLAGS.img_height, std_224_bfm09)

Pred 68 lmks from MGCNet.

image_rgb_b = img_warped[None, ...]
pred = system.inference(sess, image_rgb_b)
lm_68 = pred['lm2d'][0][0,:,:]

Inverse affine transform pred lmks to source image.

Calculate NME by:

def calc_nme(pts68_pred, pts68_true):
    minx, maxx = np.min(pts68_true[:, 0]), np.max(pts68_true[:, 0])
    miny, maxy = np.min(pts68_true[:, 1]), np.max(pts68_true[:, 1])
    llength = sqrt((maxx - minx) * (maxy - miny))

    dis = pts68_pred - pts68_true
    dis = np.sqrt(np.sum(np.power(dis, 2), 1))
    dis = np.mean(dis)
    nme = dis / llength
    return nme

However the result is
[ 0, 30] Mean: 3.04
[30, 60] Mean: 3.86
[60, 90] Mean: 4.83
[ 0, 90] Mean: 3.91
if I use gt lmks to alignment input rather than face_alignment, the result is
[ 0, 30] Mean: 2.87
[30, 60] Mean: 3.42
[60, 90] Mean: 3.98
[ 0, 90] Mean: 3.42
This result is closer to your paper.
Is there any mistakes in my evaluation.

In my memory, we use face-alignment library.
I would like to check the code after November 17.

Could you check the code soon？Because we want to compare with your method in a fair way before the cvpr deadline. A lot of thanks.


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 1233 ms

Resolved: Bofrost.be performance has improved in 9ce4de7.


Injection bug in GDM handler

          1 Error

:no_entry_sign:
Please include a CHANGELOG entry.

  Generated by :no_entry_sign: Danger


ISSUE #812 Rounding of sensor values is different with iOS and Web

Floating point in fixed point applications -evil-.
If values were kept in integer hundredths these problems in all different areas wouldn't happen in the first place.
Just saying.  :-)


Compilation warnings with GCC 8

Repro: build examples/async_pi_estimate with GCC 8.
There are about 20 warnings from GCC 8's new -Wcast-function-type (enabled by -Wextra, in common.gypi). Most are in v8.h, but some are in nan.h and at least one is in node.h. Examples:
In file included from ../addon.cc:9:
../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../node_modules/nan/nan.h:52,
                 from ../addon.cc:9:
../addon.cc: At global scope:
/home/zachb/.node-gyp/8.12.0/include/node/node.h:505:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka
void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^

full output
$ node-gyp rebuild
[#-] 1/2gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| linux | x64
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/zachb/.node-gyp/8.12.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/zachb/.node-gyp/8.12.0',
gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/zachb/.node-gyp/8.12.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate/build'
  CXX(target) Release/obj.target/addon/addon.o
In file included from /home/zachb/.node-gyp/8.12.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../addon.cc:9:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10311:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {aka ‘bool (*)(v8::Local<v8::Context>)’} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)’} [-Wcast-function-type]
           callback));
                   ^
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10356:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’ {aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’} [-Wcast-function-type]
       reinterpret_cast<Isolate::GCCallback>(callback));
                                                     ^
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10363:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’ {aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’} [-Wcast-function-type]
       reinterpret_cast<Isolate::GCCallback>(callback));
                                                     ^
In file included from ../addon.cc:9:
../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../node_modules/nan/nan.h:52,
                 from ../addon.cc:9:
../addon.cc: At global scope:
/home/zachb/.node-gyp/8.12.0/include/node/node.h:505:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka
void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/home/zachb/.node-gyp/8.12.0/include/node/node.h:536:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../addon.cc:31:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(addon, InitAll)
 ^~~~~~~~~~~
In file included from /home/zachb/.node-gyp/8.12.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../addon.cc:9:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/zachb/.node-gyp/8.12.0/include/node/node_object_wrap.h:85:78:   required from here
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../node_modules/nan/nan_object_wrap.h:66:61:   required from here
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/addon/pi_est.o
  CXX(target) Release/obj.target/addon/sync.o
In file included from /home/zachb/.node-gyp/8.12.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../sync.cc:9:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10311:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {aka ‘bool (*)(v8::Local<v8::Context>)’} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)’} [-Wcast-function-type]
           callback));
                   ^
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10356:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’ {aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’} [-Wcast-function-type]
       reinterpret_cast<Isolate::GCCallback>(callback));
                                                     ^
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10363:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’ {aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’} [-Wcast-function-type]
       reinterpret_cast<Isolate::GCCallback>(callback));
                                                     ^
In file included from ../sync.cc:9:
../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from /home/zachb/.node-gyp/8.12.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../sync.cc:9:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/zachb/.node-gyp/8.12.0/include/node/node_object_wrap.h:85:78:   required from here
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../node_modules/nan/nan_object_wrap.h:66:61:   required from here
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/addon/async.o
In file included from /home/zachb/.node-gyp/8.12.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../async.cc:9:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10311:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {aka ‘bool (*)(v8::Local<v8::Context>)’} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)’} [-Wcast-function-type]
           callback));
                   ^
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10356:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’ {aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’} [-Wcast-function-type]
       reinterpret_cast<Isolate::GCCallback>(callback));
                                                     ^
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10363:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’ {aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’} [-Wcast-function-type]
       reinterpret_cast<Isolate::GCCallback>(callback));
                                                     ^
In file included from ../async.cc:9:
../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from /home/zachb/.node-gyp/8.12.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../async.cc:9:
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/zachb/.node-gyp/8.12.0/include/node/node_object_wrap.h:85:78:   required from here
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../node_modules/nan/nan_object_wrap.h:66:61:   required from here
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/addon.node
  COPY Release/addon.node
make: Leaving directory '/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate/build'
gyp info ok
Done in 6.66s.

Can these be easily fixed, or is it safe to silence them?

I skimmed through the warnings and did not spot anything unusual, so they can be silenced.
The warnings originating from V8 and Node can not be fixed here.
As for the ones originating from NAN, they all seemed to relate to pointers to functions with more arguments than declared, which is safe and mostly stems from an API change in libuv callbacks years ago. The extra parameters are not used where not applicable.
On September 25, 2018 11:01:17 PM GMT+03:00, Zach Bjornson<EMAIL_ADDRESS>wrote:

Repro: build examples/async_pi_estimate with GCC 8.>

There are about 20 warnings from GCC 8's new -Wcast-function-type
(enabled by -Wextra, in common.gypi). Most are in v8.h, but some are
in nan.h and at least one is in node.h. Examples:>

In file included from ../addon.cc:9:>
../node_modules/nan/nan.h: In function ‘void
Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:>
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible
function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’}
to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’}
[-Wcast-function-type]>
    , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)>
                                                             ^>
In file included from ../node_modules/nan/nan.h:52,>
                from ../addon.cc:9:>
../addon.cc: At global scope:>
/home/zachb/.node-gyp/8.12.0/include/node/node.h:505:43: warning: cast
between incompatible function types from ‘void
(*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void
(*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka>
void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’}
[-Wcast-function-type]>
    (node::addon_register_func) (regfunc),                          \>
                                          ^>
```>
>
<details><summary>full output</summary>>
>
```>
$ node-gyp rebuild>
[#-] 1/2gyp info it worked if it ends with ok>
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| linux | x64>
gyp info spawn /usr/bin/python2>
gyp info spawn args [
'/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',>
gyp info spawn args   'binding.gyp',>
gyp info spawn args   '-f',>
gyp info spawn args   'make',>
gyp info spawn args   '-I',>
gyp info spawn args
'/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate/build/config.gypi',>
gyp info spawn args   '-I',>
gyp info spawn args
'/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',>
gyp info spawn args   '-I',>
gyp info spawn args
'/home/zachb/.node-gyp/8.12.0/include/node/common.gypi',>
gyp info spawn args   '-Dlibrary=shared_library',>
gyp info spawn args   '-Dvisibility=default',>
gyp info spawn args   '-Dnode_root_dir=/home/zachb/.node-gyp/8.12.0',>
gyp info spawn args
'-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',>
gyp info spawn args
'-Dnode_lib_file=/home/zachb/.node-gyp/8.12.0/<(target_arch)/node.lib',>
gyp info spawn args
'-Dmodule_root_dir=/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate',>
gyp info spawn args   '-Dnode_engine=v8',>
gyp info spawn args   '--depth=.',>
gyp info spawn args   '--no-parallel',>
gyp info spawn args   '--generator-output',>
gyp info spawn args   'build',>
gyp info spawn args   '-Goutput_dir=.' ]>
gyp info spawn make>
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]>
make: Entering directory
'/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate/build'>
 CXX(target) Release/obj.target/addon/addon.o>
In file included from
/home/zachb/.node-gyp/8.12.0/include/node/node.h:63,>
                from ../node_modules/nan/nan.h:52,>
                from ../addon.cc:9:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10311:19: warning: cast
between incompatible function types from
‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {aka ‘bool
(*)(v8::Local<v8::Context>)’} to
‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {aka ‘bool
(*)(v8::Local<v8::Context>, v8::Local<v8::String>)’}
[-Wcast-function-type]>
          callback));>
                  ^>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10356:53: warning: cast
between incompatible function types from ‘v8::GCCallback’ {aka ‘void
(*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’
{aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’}
[-Wcast-function-type]>
      reinterpret_cast<Isolate::GCCallback>(callback));>
                                                    ^>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10363:53: warning: cast
between incompatible function types from ‘v8::GCCallback’ {aka ‘void
(*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’
{aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’}
[-Wcast-function-type]>
      reinterpret_cast<Isolate::GCCallback>(callback));>
                                                    ^>
In file included from ../addon.cc:9:>
../node_modules/nan/nan.h: In function ‘void
Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:>
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible
function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’}
to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’}
[-Wcast-function-type]>
    , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)>
                                                             ^>
In file included from ../node_modules/nan/nan.h:52,>
                from ../addon.cc:9:>
../addon.cc: At global scope:>
/home/zachb/.node-gyp/8.12.0/include/node/node.h:505:43: warning: cast
between incompatible function types from ‘void
(*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void
(*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka>
void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’}
[-Wcast-function-type]>
    (node::addon_register_func) (regfunc),                          \>
                                          ^>
/home/zachb/.node-gyp/8.12.0/include/node/node.h:536:3: note: in
expansion of macro ‘NODE_MODULE_X’>
NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT
(readability/null_usage)>
  ^~~~~~~~~~~~~>
../addon.cc:31:1: note: in expansion of macro ‘NODE_MODULE’>
NODE_MODULE(addon, InitAll)>
^~~~~~~~~~~>
In file included from
/home/zachb/.node-gyp/8.12.0/include/node/node.h:63,>
                from ../node_modules/nan/nan.h:52,>
                from ../addon.cc:9:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of
‘void v8::PersistentBase<T>::SetWeak(P*, typename
v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P =
node::ObjectWrap; T = v8::Object; typename
v8::WeakCallbackInfo<P>::Callback = void (*)(const
v8::WeakCallbackInfo<node::ObjectWrap>&)]’:>
/home/zachb/.node-gyp/8.12.0/include/node/node_object_wrap.h:85:78:
required from here>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast
between incompatible function types from
‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const
v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void
(*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]>
               reinterpret_cast<Callback>(callback), type);>
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of
‘void v8::PersistentBase<T>::SetWeak(P*, typename
v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P =
Nan::ObjectWrap; T = v8::Object; typename
v8::WeakCallbackInfo<P>::Callback = void (*)(const
v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:>
../node_modules/nan/nan_object_wrap.h:66:61:   required from here>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast
between incompatible function types from
‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const
v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void
(*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]>
 CXX(target) Release/obj.target/addon/pi_est.o>
 CXX(target) Release/obj.target/addon/sync.o>
In file included from
/home/zachb/.node-gyp/8.12.0/include/node/node.h:63,>
                from ../node_modules/nan/nan.h:52,>
                from ../sync.cc:9:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10311:19: warning: cast
between incompatible function types from
‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {aka ‘bool
(*)(v8::Local<v8::Context>)’} to
‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {aka ‘bool
(*)(v8::Local<v8::Context>, v8::Local<v8::String>)’}
[-Wcast-function-type]>
          callback));>
                  ^>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10356:53: warning: cast
between incompatible function types from ‘v8::GCCallback’ {aka ‘void
(*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’
{aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’}
[-Wcast-function-type]>
      reinterpret_cast<Isolate::GCCallback>(callback));>
                                                    ^>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10363:53: warning: cast
between incompatible function types from ‘v8::GCCallback’ {aka ‘void
(*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’
{aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’}
[-Wcast-function-type]>
      reinterpret_cast<Isolate::GCCallback>(callback));>
                                                    ^>
In file included from ../sync.cc:9:>
../node_modules/nan/nan.h: In function ‘void
Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:>
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible
function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’}
to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’}
[-Wcast-function-type]>
    , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)>
                                                             ^>
In file included from
/home/zachb/.node-gyp/8.12.0/include/node/node.h:63,>
                from ../node_modules/nan/nan.h:52,>
                from ../sync.cc:9:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of
‘void v8::PersistentBase<T>::SetWeak(P*, typename
v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P =
node::ObjectWrap; T = v8::Object; typename
v8::WeakCallbackInfo<P>::Callback = void (*)(const
v8::WeakCallbackInfo<node::ObjectWrap>&)]’:>
/home/zachb/.node-gyp/8.12.0/include/node/node_object_wrap.h:85:78:
required from here>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast
between incompatible function types from
‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const
v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void
(*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]>
               reinterpret_cast<Callback>(callback), type);>
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of
‘void v8::PersistentBase<T>::SetWeak(P*, typename
v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P =
Nan::ObjectWrap; T = v8::Object; typename
v8::WeakCallbackInfo<P>::Callback = void (*)(const
v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:>
../node_modules/nan/nan_object_wrap.h:66:61:   required from here>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast
between incompatible function types from
‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const
v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void
(*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]>
 CXX(target) Release/obj.target/addon/async.o>
In file included from
/home/zachb/.node-gyp/8.12.0/include/node/node.h:63,>
                from ../node_modules/nan/nan.h:52,>
                from ../async.cc:9:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10311:19: warning: cast
between incompatible function types from
‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {aka ‘bool
(*)(v8::Local<v8::Context>)’} to
‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {aka ‘bool
(*)(v8::Local<v8::Context>, v8::Local<v8::String>)’}
[-Wcast-function-type]>
          callback));>
                  ^>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10356:53: warning: cast
between incompatible function types from ‘v8::GCCallback’ {aka ‘void
(*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’
{aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’}
[-Wcast-function-type]>
      reinterpret_cast<Isolate::GCCallback>(callback));>
                                                    ^>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In static member
function ‘static void
v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:10363:53: warning: cast
between incompatible function types from ‘v8::GCCallback’ {aka ‘void
(*)(v8::GCType, v8::GCCallbackFlags)’} to ‘v8::Isolate::GCCallback’
{aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)’}
[-Wcast-function-type]>
      reinterpret_cast<Isolate::GCCallback>(callback));>
                                                    ^>
In file included from ../async.cc:9:>
../node_modules/nan/nan.h: In function ‘void
Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:>
../node_modules/nan/nan.h:2200:62: warning: cast between incompatible
function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’}
to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’}
[-Wcast-function-type]>
    , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)>
                                                             ^>
In file included from
/home/zachb/.node-gyp/8.12.0/include/node/node.h:63,>
                from ../node_modules/nan/nan.h:52,>
                from ../async.cc:9:>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of
‘void v8::PersistentBase<T>::SetWeak(P*, typename
v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P =
node::ObjectWrap; T = v8::Object; typename
v8::WeakCallbackInfo<P>::Callback = void (*)(const
v8::WeakCallbackInfo<node::ObjectWrap>&)]’:>
/home/zachb/.node-gyp/8.12.0/include/node/node_object_wrap.h:85:78:
required from here>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast
between incompatible function types from
‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const
v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void
(*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]>
               reinterpret_cast<Callback>(callback), type);>
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h: In instantiation of
‘void v8::PersistentBase<T>::SetWeak(P*, typename
v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P =
Nan::ObjectWrap; T = v8::Object; typename
v8::WeakCallbackInfo<P>::Callback = void (*)(const
v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:>
../node_modules/nan/nan_object_wrap.h:66:61:   required from here>
/home/zachb/.node-gyp/8.12.0/include/node/v8.h:9307:16: warning: cast
between incompatible function types from
‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const
v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void
(*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]>
 SOLINK_MODULE(target) Release/obj.target/addon.node>
 COPY Release/addon.node>
make: Leaving directory
'/mnt/c/Users/zachb/git/nan/examples/async_pi_estimate/build'>
gyp info ok>
Done in 6.66s.>
```>
>
</details>>
>
>
Can these be easily fixed, or is it safe to silence them?

Thanks. Should I leave this open until the nan.h ones are fixed?

I do not think working around those warnings would be worth it. The code in question cannot really be fixed, in the sense that there is nothing wrong with it.
All that might be done is to make some convoluted series of typecasts to make the compiler not issue a warning, which is essentially the same as just silencing the warning in that location, but it would likely reduce legibility.
However, I would gladly merge a PR which  cleanly gets rid of the warnings, were one to be submitted.
On September 25, 2018 11:33:25 PM GMT+03:00, Zach Bjornson<EMAIL_ADDRESS>wrote:

Thanks. Should I leave this open until the nan.h ones are fixed?

As I suspected: According to the GCC documentation, the warning can be suppressed by adding an intermediate cast to void (*) (void).

I think -Wcast-function-type is a useful warning... If you don't want to disable it globally, do this at the top of your code:
#if defined(__GNUC__) && __GNUC__ > 5
#define DISABLE_WCAST_FUNCTION_TYPE _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"")
#define DISABLE_WCAST_FUNCTION_TYPE_END _Pragma("GCC diagnostic pop")
#else
#define DISABLE_WCAST_FUNCTION_TYPE
#define DISABLE_WCAST_FUNCTION_TYPE_END
#endif

Then use those macros around #include <nan.h>:
DISABLE_WCAST_FUNCTION_TYPE
#include <nan.h>
DISABLE_WCAST_FUNCTION_TYPE_END

And around NODE_MODULE(...) too.


make the item title clickable too

The current implementation only has the circular button of the items as clickable. How can one make it so that the title labels are clickable too? Basically, the entire item displayed should be clickable and respond with the handler.

I'm currently using Floaty 3.0.0 and item title is clickable out of the box.


[core/tools/project-json.md] Add missing properties to the project.json schema

The project.json schema reference still needs work.
I went through the entire schema file and these are the improvements that I think are needed:

[ ] buildOptions\languageVersion: as mentioned on PR https://github.com/dotnet/core-docs/pull/448 , languageVersion seems to accept csharp1...csharp6 and experimental. Our topic doesn't mention that and shows an example with the value 5 instead. Need to confirm which one is correct (or both are accepted?)
[x] For the properties such as embed and copyToOutput that just have the same properties as buildOptions/compile, should we move that content to an include file or maybe just mention the properties have the same definition instead of copy/pasting the content multiple times? Answer: I'll leave as-is since project.json will go away eventually.
[x] The projectUrl property is listed inside packOptions in our topic. In the schema, that property is listed at the top-level. Only the other url properties were deprecated and moved inside packOptions according to the schema file. Which one is correct? Answer: This seems another case where the schema is outdated. CLI uses projectUrl inside packOptions.
[x] Add missing events to the scripts property: prepack, postpack, prerestore, postrestore and prepare. Answer: Actually CLI doesn't use any of those so the schema is probably outdated)
[ ] Add missing properties: preprocessFiles, sharedExclude, sharedFiles, runtimes and userSecretsId. Answer: added runtimes and userSecretsId, not clear if I need the others.
[x] Property frameworks needs to be improved to say exactly which other sections are included and review  its properties. Answer: removed imports and added the dependencies properties.
[x] remove wrappedProject property? Schema doesn't list this one. Answer: no, this is consumed by the CLI code.
[x] is there a property called name? We list it in the doc but I don't see it in the schema. Answer: we should keep name in the docs
[ ] Expand on the “target” property of a dependency. In particular, how would “project” work vs “package”?
Is there a way to get a floating version to include pre-release package versions when restoring? E.g., 0.* fails to find my package (which is only published in pre-release), but 0.1.1-* finds it just fine.
[ ] There's also a customer question about scripts on the article that I don't know the answer:
"scripts":{"postcompile":["my.bat %configuration%"]}.
I want provide configuration type (such as Debug or Development etc.) as a parameter in the batch file.
How do I this?
There are only three options available and they are related with project property only.

Sorry to pollute this issue, but do you know where we could provide feedback regarding the schema itself ? For example the xmlDoc buildOption is missing.

I've merged PR #1071 since it takes care of a bunch of issues with the topic, but we still have some pending. I'm moving this now to backlog until I can get the answers to finish this work item.

No longer applicable.


Add verbose and error stream output to Receive-RSJob

Wasn't sure if you wanted to keep helper functions in the Private functions group but since this only applies to Receive-RSJob I put it here.

Weird that it failed on tests that you weren't even covering in this pull request. I'll dig into this tomorrow and if everything looks OK, I'll merge the pull request.

I re-ran he build against my current commit and it passed without issue. Still need to download the code here and see where the Pester test is failing at.

Looked like it was having trouble with the PoshRS.PowerShell.RSJob type in the Param section of my function.  I could change that to [object] and that would probably work too.

Making some enhancements to this, and following your private function format a little closer.


1263: replaced all stats in utils.cpp

Checklist

[ ] Language changes are updated in docs/reference_guide.md
[ ] User-visible and non-trivial changes updated in CHANGELOG.md
[X] The new behaviour is covered by tests

@fbs Hi, replaced all stats in utils.cpp; please test

part of #1263

Thanks!


UI: Add User-profile page

Also, clicking on Owner field in dataset page for single user should take to User's profile page

Duplicate of #1495 Closing this


Fix FakeToronto import and Fix Aer Deprecate Messages

Summary
Change FakeToronto import, fix Aer deprecate messages, all due to recent Terra changes.
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.09%) to 86.995%

Files with Coverage Reduction
New Missed Lines
%

qiskit_machine_learning/datasets/gaussian.py
3
37.11%

Totals

Change from base Build<PHONE_NUMBER>:
-0.09%

Covered Lines:
3017

Relevant Lines:
3468

💛  - Coveralls


Seg fault on OSX when initializing with a glb file

Steps to reproduce

Run the attached script, which reproduces the problem.

Observed Results
Program segfaults with no error message.
Expected Results
No seg fault.  If you run with a sample scene from the sample data, it will work fine.
Relevant Code
import habitat_sim

def test(scene_path):
    sim_cfg = habitat_sim.SimulatorConfiguration()
    sim_cfg.gpu_device_id = 0
    sim_cfg.scene.id = scene_path

    sensor_spec = habitat_sim.SensorSpec()
    sensor_spec.uuid = "color_sensor"
    sensor_spec.sensor_type = habitat_sim.SensorType.COLOR
    sensor_spec.resolution = [256, 256]
    sensor_spec.position = [0, 0.5, 0]
    sensor_specs = [sensor_spec]

    agent_cfg = habitat_sim.agent.AgentConfiguration()
    agent_cfg.sensor_specifications = sensor_specs
    agent_cfg.action_space = {
        "move_forward": habitat_sim.agent.ActionSpec(
            "move_forward", habitat_sim.agent.ActuationSpec(amount=0.25)
        ),
    }
    cfg = habitat_sim.Configuration(sim_cfg, [agent_cfg])
    sim = habitat_sim.Simulator(cfg)

    # set up agent 0
    sim.initialize_agent(0)

scene_name = "coffee_mug_scaled.glb"
sim = test(scene_name)
[crash_habitat.zip](https://github.com/facebookresearch/habitat-sim/files/3522738/crash_habitat.zip)

sim.initialize_agent(0) relies on the navigation mesh to find a position for the agent, but, I would assume, the coffee cup doesn't have a navmesh, so that's why its segfaulting.  It shouldn't segfault, but I am not quite sure what it should do in this situation.  There isn't a logical position to set the agent to -- should it set the agent to n arbitrary position and heading, pos = [0, 0, 0]  facing along the -z axis,  throw an error, or do nothing?

Erik, is there some documentation about the navmesh format or how it works?  Maybe I can create one.  Interestingly, the viewer app in c++ works ok without this extra mesh.
I like your idea of initializing the agent to 0,0,0 facing -z.

Hey Daniel, functionality is live on master now to dynamically add objects to scenes with kinematic manipulation in both C++ and python. In this case you could load any existing scene, load the "coffee_mug_scaled.glb" file into the object library, and then initialize it within the scene and move it wherever you want it. Would this work better for you, or is there a specific reason you would like to use the mug as a scene mesh? Happy to help in either case.

Most of habitat is fine without the navmesh, but it seems like we forgot to the make the initialize method do something sensible when there isn't a navmesh.


Vault Secrets Management

SPAR currently lacks a way to securely store secrets in a way that can be accessed by team members.
Our Secure Design & Coding Practices mandates that we implement and follow this practice.
This task will accomplish this by following these documents:

Vault secrets management
Vault getting started guide

Secrets added to vault ->  how to access secrets\
Decreased points from 2 to 1.

As for secrets on Vault, only team leads can have access to. That means we may not use this option (Vault) for safely sharing projects secrets.
cc: @SLDonnelly @craigyu


Slow API calls when set to no limit

Issue type
[ ] Feature request
[X] Bug report
[ ] Documentation

Environment

Python version:  2.7.6
NetBox version:  2.2.1

Description
I have the following Python v2 code that I wrote, making API calls against my Netbox server to pull all devices:
response = []
url = "http://netbox.domain.com/api/dcim/devices/?limit=0"
response = urlopen(url)
json_result = load(response)
return json_result['results']

For reference, I currently have 559 total devices in Netbox.  When refreshing my webpage displaying the API call results, it takes the following amount of time to load (5x full-refreshes):
 4.58s, 4.61s, 5.18s, 4.05s, 4.44s

When I set the limit to 100, these are the load times (5x full-refreshes):
 1.82s, 821ms, 1.69s, 1.04s, 998ms

However since the API call doesn't pull all of the devices, I can't filter out the devices I need (based on a specific parameter).  If there's a better way to call filtered results, or speed up this call, please advise.  Thanks.

Using a local development instance, retrieving 500 devices takes around one second:
$ time curl -s -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/devices/?limit=500 > /dev/null

real	0m0.992s
user	0m0.008s
sys	0m0.000s

What times are you getting on a local instance using curl? (Avoid using the browser for testing, since rendering the DOM takes additional time.)

However since the API call doesn't pull all of the devices, I can't filter out the devices I need (based on a specific parameter). If there's a better way to call filtered results, or speed up this call, please advise.

You can filter on pretty much any field. What devices do you want to retrieve?

Thanks Jeremy.  For the filtering on fields, I'm trying to filter on a custom field I've created, just not having luck querying a nested JSON object.  I want to return results where the label is set to Yes.
        "custom_fields": {
            "Netconfig": {
                "value": 47,
                "label": "Yes"
            },

Here are my CURL results from running it on the Netbox server, making API calls against itself.  Maybe it's an issue with the server itself?
user@netbox:~$ time curl -s -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://<IP_ADDRESS>/api/dcim/devices/?limit=0 > /dev/null
real	0m3.535s
user	0m0.004s
sys	0m0.004s
user@netbox:~$ time curl -s -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://<IP_ADDRESS>/api/dcim/devices/?limit=100 > /dev/null
real	0m0.636s
user	0m0.012s
sys	0m0.000s
mvitale@netbox:~$ time curl -s -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://<IP_ADDRESS>/api/dcim/devices/?limit=500 > /dev/null
real	0m3.185s
user	0m0.008s
sys	0m0.000s
user@netbox:~$ time curl -s -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://<IP_ADDRESS>/api/dcim/devices/?limit=1000 > /dev/null
real	0m3.609s
user	0m0.004s
sys	0m0.000s

Are you retrieving a full 500 devices on your local dev instance with that curl call?

Yes

Also, do you get the same times for limit=0?

No; I have many thousands of devices defined in NetBox, so retrieving all of them takes longer, but the increase in delay seems pretty linear.
I suggest playing around a bit with the debug toolbar (you'll need to set DEBUG=True in configuration.py) to see if you can get a feel for where the delay is occurring.

Not sure there's a problem here. Closing due to lack of activity.


docs(examples): add vanilla http server example

coverage: 97.644%. remained the same
when pulling 4fab09459446e95451c4b85bdc4e709dcfca5fd8 on docs-http-server
into 639cfe4d9d0dc40f5c42547dd8f6546388a61aea on master.


Double quotes transfer character like idea

Double quotes transfer character like idea
like this:
""  pasted. " \"test"

I am not understanding what this issue is about. Please provide more info.


Add "tags" variable to Terraform Modules under "iaac/terraform/aws-infra" directory to tag created AWS Resources(rds, s3 bucket)

Is your feature request related to a problem? Please describe.
When we create RDS and/or S3 bucket using the Terraform Modules under "iaac/terraform/aws-infra" directory , we want to tag RDS and/or S3 bucket after they are created.
Describe the solution you'd like
We can add "tags" variable with default value "{}" to these Terraform Modules (rds, s3), these would allow people to pass in designed aws tags, inside these Terraform Modules, the "var.tags" can be assigned to  the "tags" of AWS Resources(rds and/or s3 bucket).
Describe alternatives you've considered
N/A
Additional context
variable "tags" {
type = map(string)
description = "custom tags to AWS Resource"
default = {}
}
resource "aws_db_instance" "kubeflow_db" {
// ... ...
tags = var.tags
}

Good idea, we have been considering it as well


Clarify status of support for other OS versions

The readme seems to imply that Ubuntu Bionic is required, but it doesn't say anything about Xenial.
It would be good to be specific about which version of Ubuntu (or other OS) are supported, and which are not.

I'm on Xenial, and I must add the following to the various CMakeLists.txt to get things to compile:
if(NOT CMAKE_CXX_STANDARD)
  set(CMAKE_CXX_STANDARD 14)
  set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif()

The brickpi package won't compile for me though, even with this.
I get a huge wall-of-text, ending with:
/home/user/rxros_ws/src/rx_ros/examples/brickpi3/src/BrickPi3Ros_rx.cpp:155:15:   required from here
/home/user/rxros_ws/src/rx_ros/examples/brickpi3/src/BrickPi3Observable_rx.h:195:44: internal compiler error: in tsubst_copy, at cp/pt.c:13039
                 const uint8_t id = port2id(port);
                                            ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.

this is with the standard GCC 5.4.0, so it may be too old.

We now explicitly require C++14 support for the examples (rosin-project/rxros_examples#1).
Not sure whether we should export it as a definition from rxros.

Not sure whether we should export it as a definition from rxros.

Isn't this one of the last issues that is holding back https://github.com/rosin-project/rxros_examples/pull/6

I believe we could actually close this issue, as the readme now does state what the compatibility with Xenial and Bionic is (although it's left somewhat implied by only mentioning ROS Kinetic and Melodic, but that is on purpose).

Isn't this one of the last issues that is holding back rosin-project/rxros_examples#6 ?

It's probably something to consider for that one as well yes.

I'll actually close this as the readme has been updated in #34.


fix(compiler-core): fix codegen's comment render error

When the template contains html comment, the generated code will be error to render. For example,

 content

the generated code in browser is:
const _Vue = Vue
const _createVNode = Vue.createVNode

const _hoisted_1 = _createVNode("span", null, [
  // 1. the second argument isn't correct
  // 2. `_Comment` cannot be found
  _createVNode(_Comment, 0, "comment"),
  " content"
])

return function render() {
  with (this) {
    const { createVNode: _createVNode, Comment: _Comment, createBlock: _createBlock, openBlock: _openBlock } = _Vue

    return (_openBlock(), _createBlock("div", null, [
      _hoisted_1
    ]))
  }
}

The above code results in two types of error:

the arguments in createVNode are not correct.
_Comment cannot be found.

See https://github.com/vuejs/vue-next/pull/202#issuecomment-541096982

See #202 (comment)

The refered PR aims to resolve Empty node, but this PR is related to hoist with Comment.
The following code will refer to _Comment without declaration.

 content

const _Vue = Vue
const _createVNode = Vue.createVNode

const _hoisted_1 = _createVNode("span", null, [
  // 1. the second argument isn't correct
  // 2. `_Comment` cannot be found
  _createVNode(_Comment, 0, "comment"), // <--- Here
  " content"
])
...

It has been addressed by #208: https://github.com/vuejs/vue-next/blob/master/packages/compiler-core/src/codegen.ts#L214-L216


[Feedback] Providing a method for integrity verification of dataset

Hello, really appreciate this project.
It would be really helpful if we can have an md5sum or better unique hash for each dataset so that the downloaded archive can be verified. Due to our network infrastructure, the download is often flaky, and thus even though we downloaded a 990MB archive, it turned out the archive was corrupted.
Thanks

Hi @louisgv,
images.csv has OriginalMD5 column. If you are downloading the images in the original resolution, it will help.
If you're downloading thumbnails, no checksum is possible, as (at least) Flickr generates these thumbnails on the fly. Every time these thumbnails are slightly different. More over, depends on the load, they might have more or less details in them.

Oh, I have misunderstood. You mean the hashes for archives with the metadata.

For the current set of archives:
$ sha1sum images_2017_07.tar.gz
e12e364e5aa44bd40dcdb78c54a7d8ed5c45f0ee  images_2017_07.tar.gz
$ sha1sum annotations_human_bbox_2017_07.tar.gz
31c7c72c5ac3c4c2f4becab0b4cfd5d5d5de7a3f  annotations_human_bbox_2017_07.tar.gz
$ sha1sum annotations_human_2017_07.tar.gz
5827193489d42635e5a78b467c4dede3ff066df3  annotations_human_2017_07.tar.gz
$ sha1sum annotations_machine_2017_07.tar.gz
511f006422c84984beb57578594e4b57c75a0b1b  annotations_machine_2017_07.tar.gz
$ sha1sum classes_2017_07.tar.gz
71ba8dd692ec3538543f45fdb2b88f6be59c096a  classes_2017_07.tar.gz

I expect that this will diverge from truth when minor updates are posted (but I hope that when it happens, the archive names will be different)

I was about to make a pull request for https://github.com/rkrasin/dataset/commit/1e3cede9b59290b3d1e32e23246c8f194ad34d35 but then realized that gzip already has a checksum (CRC32). It's relatively weak (just 4 bytes), but it's a good guard against bad internet connection.
How did you learn that the archive was corrupted?

Closing since this seems resolved (hash part of gzip).


pangea-django: add missing HttpRequest import (GEA-13192)

Formatting changes were done by the pre-commit hook, not me.

Added a changelog entry (now that we have a changelog at all). Forgive the force-push.


Classes may get many underscores

Hi,
I have a JSON schema where a sub type (in my case, "Payload") is used many times in different objects. The classes generated differ by number of underscores, so I have for example "Payload___________________________________.java" and "Payload__________________________________.java" (and all shorter names and many longer ones). Of course these classes are hard to distinguish in IDE e.g. Netbeans. Could the naming be changed to have something like e.g. "Payload_35.java" instead?

Hi
If you are re-using the same type repeatedly, you should investigate using $ref which will re-use the same class.
If these are different types and you want to keep these as separate classes, you'll find that 1.0.0-alpha2 actually already has the behaviour you need, because @SergioModulusData contributed #476. Instead of adding a _ every time, you'll get output named like:
Payload__1.java, Payload__2.java, Payload__3.java...

Ahh, that are great news, thank you!
(We cannot use $ref, because the types differ, and no, I cannot change it :))


Error DatabaseNotFound for collection and database requests

Is your feature request related to a problem? Please describe.
It's a feature request to add details / change the error code to distinguish whether the collection not found or the database not found in:

collection requests (read, update, replace, delete documents) and in the
database requests (list collections, drop, create or update collections)

Describe the solution you'd like
Preferably using https://pkg.go.dev/google.golang.org/genproto/googleapis/rpc/status#Status and standardized details.
https://cloud.google.com/apis/design/errors#error_details
Describe alternatives you've considered
In the current solution the gRPC code codes.InvalidArgument hides this details
server/services/v1/query_runner.go-123
     return nil, api.Errorf(codes.InvalidArgument, "database doesn't exists '%s'", dbName)

It's not convenient to parse string "database doesn't exists '%s'" which would vary from database to database and can be easily changed by developers.
Additional context

The error being returned has been fixed. We will be defining specific error codes that will cover this as well.


Add the content for "Silly Novels by Silly Lady Novelists" to the books repository

Add the content for "Silly Novels by Silly Lady Novelists" to the books repository at https://github.com/citapress/books.
The HTML source can be found at https://www.gutenberg.org/files/28289/28289-h/28289-h.htm#page178. This content should be converted to Markdown. You can use pandoc for this (or any other converter tool).
This should go in its own folder and it should follow the conventions described in the books repository.

@jjcastro I will be happy to claim this issue.  :)

@jjcastro Opened a PR for this issue.
Thank you for referencing pandoc tool. I tried other tools but resulted in strange conversion errors.
Let me know if there are any issues with PR. Looking forward to keeping contributing here.
Thanks!

Hi @Sol1323!
Thanks so much for contributing :) Sorry for the delay!


The fct is 23 lines long bug got
file [giantman/src/giantman.c] n°4/100...
 -> yes: giantman/src/giantman.c

To Reproduce
The too many lines fct :
int main(int argc, const char *argv[])
{
    int fd = -1;
    char *buffer = NULL;
    off_t size = 0;
    int errorh = -1;

    if (error_handling(argc, argv) != 0)
        return 84;
    size = get_file_size(argv[1]);
    if (size == -1)
        return 84;
    if ((buffer = (char *)malloc(sizeof(char) * size)) == NULL)
        return 84;
    if ((fd = open(argv[1], O_RDONLY)) <= 0)
        return 84;
    if (read(fd, buffer, size) <= 0) {
        close(fd);
        free(buffer);
        return 84;
    }
    close(fd);
    errorh = manage_compress(my_getnbr(argv[2]), buffer);
    free(buffer);
    return errorh;
}

Expected behavior
It should detect it and print error.
file [giantman/src/giantman.c] n°4/100...
 -> nope: giantman/src/giantman.c ...

Desktop (please complete the following information):

OS: Linux Mint 20.3 Cinnamon
Version last

okay, thanks for the report
it seems to be a parser issue that dont detect this is a function
i will fix it

issue fixed

gg


Rename updatelayout into something more intuitive

TPAC feedback from @smaug----

EditContext really is just a text buffer, but it does have an associated bounding box (useful for IME candidate window positioning, etc.
How about updateBounds?

Moved this issue into the w3c/editing repo.  Closing it.


Mobile App Settings Android 2023.3.0-full

Hi,
since the app version mentioned above, I do not get kiosk mode to work correctly on any mobile device.
No matter which option I choose the sidebar will also be hidden.
kiosk_mode:
mobile_settings:
hide_header: true
BR

Hi @Quotenjunkie,
Describe better your issue. What exactly do you mean with "hidden"?. Depending on the device size the sidebar is always hidden and this is not something coming from kiosk-mode, it is how it is designed.
If you mean that you cannot open the sidebar with a swipe gesture, please, check this issue: https://github.com/NemesisRE/kiosk-mode/issues/42
Regards

Same issue. Unable to swipe sidebar out using latest android. Even tried the beta version as apparently not an issue using hide_sidebar using ios

Hi @direx1,
Please, consult this issue: https://github.com/NemesisRE/kiosk-mode/issues/42

Hi @direx1,
Please, consult this issue: https://github.com/NemesisRE/kiosk-mode/issues/42

Thank you very much for this hint!
BR


Added package to nixpks

Hi! as of today way-displays can be installed via nix package manager (Linux distros using nix and NixOS).
The package is available from the unstable  branch of nixpks. Probably will be merged in the next release as stable.
I am the current maintainer for that package, I will update it when new versions will be available. But if any of you wants to do it the necessary changes to update the package are realy simple.
For the future we can think to ad a CI/CD process so that the package can be directly downloaded from GitHub instead of building it on the host platform.

That's fantastic, thanks @simoneruffini
Everything looks smooth except for the /etc patch
Can we change the code so that you don't have to apply that patch? Is there perhaps an environment variable that we could use?

For the future we can think to ad a CI/CD process so that the package can be directly downloaded from GitHub instead of building it on the host platform.

That would be ideal. It only needs to be done for Linux as FreeBSD already have their own build process.
Time is limited...

Everything looks smooth except for the /etc patch

Can we change the code so that you don't have to apply that patch? Is there perhaps an environment variable that we could use?

I will ask some NixOS gurus on how to do that, because I don't know if it is a good idea to have a env variable that let's you change the default position of the configuration files (the one you find in ../etc). I will check how this is get accomplished.

I will check how this is get accomplished.

Perhaps a #define with an /etc default?

So this means that a patch will be necessary anyway? Just in a more precise spot?

I am aiming for no patches. Patches are fragile and need maintenance. We've removed all patches from the BSD and other distro's builds and I'd like to do the same here.
We could perhaps simply use PREFIX_ETC in the makeFlags as a #define and add another search in cfg.cpp e.g.
	if (!found)
		found = resolve_paths(cfg, PREFIX_ETC"/etc", "");

However, other package builds may use DESTDIR and PREFIX* to target their staging area, so using those might not be a good idea.
Best solution would be a specific makeFlag -> #define for this case, maybe FHS_ETC or ROOT_ETC, defaulting to /etc.

Merged. Do you need a release @simoneruffini ?

I closed this issue because the package is available but maybe we can keep it open until I check the other one

1.6.0 release PR for nixpkgs https://github.com/NixOS/nixpkgs/pull/182041


Check local evaluation of secure constraints.

While debugging #164, it appears that http requests were able to terminate on the instance despite there being a confidential security constraint.
We need to verify if this really is possible?  Perhaps only when the instance host is specified?
If so, we need to check the yaml generated constraints for confidential constraints.  We should also consider ensuring that the normal jetty constraint processing is in place as a second line of defense.

I think there was some confusion as the stage 3 guestbook has only a role constraint and not a data constraint.   Testing with some data constraints indicates that all it working as it should.

ha, you mean adding
 <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>

?
On Wed, Feb 24, 2016 at 6:55 AM, Greg Wilkins<EMAIL_ADDRESS>wrote:

Closed #179
https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/issues/179
.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/issues/179#event-563721430
.

Yep,
I tested with:
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>data-constraint</web-resource-name>
      <url-pattern>/dump/ssl/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>data-constraint</web-resource-name>
      <url-pattern>/dump/relax/*</url-pattern>
    </web-resource-collection>
  </security-constraint>

and all behaved as expected.

Yes! Thanks for the investigation...
Now, for none default versions, you have to add the -dot- separator between
the version and appname in the url, so it is more complicated for samples,
but hey!
On Wed, Feb 24, 2016 at 7:32 AM, Greg Wilkins<EMAIL_ADDRESS>wrote:

Yep,
I tested with:

data-constraint
/dump/ssl/*

CONFIDENTIAL

data-constraint
/dump/relax/*

and all behaved as expected.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/issues/179#issuecomment-188306832
.

To test, try http://1.project.appspot.com  -- If security constraints are
set properly, it won't work, if not, it might.
On Wed, Feb 24, 2016 at 7:42 AM, Ludovic Champenois <
<EMAIL_ADDRESS>wrote:

Yes! Thanks for the investigation...
Now, for none default versions, you have to add the -dot- separator between
the version and appname in the url, so it is more complicated for samples,
but hey!
On Wed, Feb 24, 2016 at 7:32 AM, Greg Wilkins<EMAIL_ADDRESS>wrote:

Yep,
I tested with:

data-constraint
/dump/ssl/*

CONFIDENTIAL

data-constraint
/dump/relax/*

and all behaved as expected.
—
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/issues/179#issuecomment-188306832

.

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/issues/179#issuecomment-188311085
.

--

•  *Les Vogel
•  *Cloud Developer Relations
•<EMAIL_ADDRESS>•  *+1-4 <%2B1-650-338-7103>08-676-7023

Reopened just so we can discuss and make sure all is OK.   My test webapp with the constraints above is current deploy as default and as 20160224t154511.  I have tried the following requests:

https to version /dump/info Works? Should redirect to auth?
http to version /dump/info redirects to auth
https to version /dump/relax/info OK
http to version /dump/relax/info OK
https to version /dump/ssl/info OK
http to version /dump/ssl/info redirects to https
https to instance.version /anything SSL error
http to instance.version /anything 404 not found ??
https to default /dump/info redirects to auth
http to default /dump/info redirects to auth
https to default /dump/relax/info OK
http to default /dump/relax/info OK
https to default /dump/ssl/info OK
http to default /dump/ssl/info redirects to https
https to instance.default /anything SSL error
http to instance.default /dump/relax/info OK
http to instance.default /dump/ssl/info redirect to SSL error

So most of those look good and none look dangerous.  A few look a little hard to explain....

Ah I was actually logged on for some of those, so the first correctly does redirect to auth.
So the only real mystery is why http to instance.version gives a 404, yet http to instance.default works?


Vote delegation problem

To reproduce:

create user A (group delegate)

create user B (group standard)

A delegates his vote to B

set B to present

create new motion poll -> allow group 'delegates' only for voting

start poll

login as B and go to motion poll (autopilot or motion detail)
=> problem (1): B see 2x "You do not have the permission to vote." (for A and B). Expected: only one vote ballot for B should be displayed.

as admin: set group 'delegates' for B
=> problem (2): Now, B can vote for A and B. Expected: B should be voted for A without the group delegates!

as discussed with @ostcar this is a client issue


V2 support

Hello!
It seems the custom activity interface has changed substantially in data factory:
https://github.com/Azure/Azure-DataFactory/tree/main/SamplesV1/ADFv2CustomActivitySample
Do I still need this library?
Or is there something else we devs can use to debug?
Thanks!

well, custom activities in ADF v2 is basically just calling an executable which you can easily develop offline anyway
the parameterization is of course another topic - but  I had not had any time yet to look into this


Children update is ignored when animation is in progress

You can easily reproduce this bug in the "Cross-fade transition" example in demo.
If you quickly click twice (like doubleclick) on the image, the page will show the 2nd image. But at this moment, the parent component has already changed its state twice (swapped: false->true->false) and expecting <ReactCSSTransitionReplace> to show the 1st image. Apparently <ReactCSSTransitionReplace> ignored the 2nd change because the animation was not completed.
Now if you click on the image again (swapped is changed to true), nothing will happen on the page.

I have merged #34 which might help with this issue, although it seems that didn't quite solve it. I've been working on pretty much a complete rewrite of the library on the next branch. I think that might solve what you're seeing. It's probably not quite ready for a release and I haven't had time to work on it in a while, but if you find it a step in the right direction feel free to create PRs against it. I'll put in some more time when I can.
If this is a duplicate of #29 let's continue the discussion there.

#34 does help. Now it will correctly show the new child, but it will also discard animation of both entering and leaving process.

And I checked out next branch -- it does look better. Looking at the source code, I think it's definitely the right direction.

Anything I can do to help the rewrite? Do you have a list of TODOs?

Thanks for the offer to help @mondaychen. I have opened #42 which gives a simple to-do list and this version can also be installed from npm as 3.0.0-beta.1 if you are comfortable with it.

Version 3 has been released. Further issues can be opened if this version does not solve all of the above.


Unicode characters for rho and xicor

Dear Vadim,
With great interest I am reading your towardsdatascience.com blog post about xicor and An Undeservedly Forgotten Correlation Coefficient
Also my thanks for the replication R code that you kindly have provided here.
One small note about that from me. In your code you have put ?? as the 'title' for rho and xicor, although for the illustrations of your blog their Greek character symbols are used.
After some browsing 'how to get' such characters in R plots, that can be done using unicode, like, for example in the Scalability figure code:
# Create plots
p1 <- plot_data(resc, "\u03C1")
p2 <- plot_data(resm, "R")
p3 <- plot_data(resx, "\u03BE")

I have attached my edited version of your R file.
Vadim Arzamasov mic.R -  edited.R.txt

Dear Eric,
Thank you for your feedback and suggestions! I have updated the file accordingly and made some additional rearrangements to improve readability.


Validate references in validateDoc

Motivation

Fixes #341.

Modifications

Develop a function responsible for iterating through and validating the references within the OpenAPI document. If external references are present or if they are not found in the 'components' section, the function should throw errors.

Result

This will help catch invalid references before code generation.

Test Plan

Make sure that tests pass and wrote additional unit tests.

@swift-server-bot test this please

Thanks @PARAIPAN9!

You're welcome, always a pleasure to contribute!!


[e2e]: container schedule main default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/4190351300
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.container.schedule.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.container.schedule.main.default.slsa3.yml
Trigger: schedule
Branch: main
Date: Thu Feb 16 03:21:35 UTC 2023

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/4190351300
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.container.schedule.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.container.schedule.main.default.slsa3.yml
Trigger: schedule
Branch: main
Date: Thu Feb 16 09:26:30 UTC 2023
Tests are passing now. Closing this issue.


Allow Dashboards to be loaded in an iFrame

part of FlowFuse/flowfuse#4689
Description

Sets Content-Security-Policy: frame-ancestors * for the dashboard routes
Related Issue(s)

FlowFuse/flowfuse#4689
Checklist

[x] I have read the contribution guidelines
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

[ ] Upgrade instructions
[ ] Configuration details
[ ] Concepts

[ ] Changes flowforge.yml?

[ ] Issue/PR raised on FlowFuse/helm to update ConfigMap Template
[ ] Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production

Labels

[ ] Includes a DB migration? -> add the area:migration label

OK, I know why the tests are failing, just got to work out how to fix the case with both FF Auth and iFrame


4.50.0 error: Cannot read property 'length' of undefined

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
AWS Amplify Build
If applicable, what version of Node.js are you using?
Not sure - whatever AWS Amplify uses
Amplify CLI Version
4.50.0
What operating system are you using?
Amazon Linux I assume
Amplify Categories
api
Amplify Commands
push
Describe the bug
Just did a very simple push that triggered CI in AWS Amplify. Got the following error. This build was working fine before 4.50.0. Our amplify build is set to push with latest amplify always.
2021-04-27T17:24:54.129Z [WARNING]: ✖ An error occurred when pushing the resources to the cloud
2021-04-27T17:24:54.130Z [WARNING]: ✖ There was an error initializing your environment.
2021-04-27T17:24:54.133Z [INFO]: TypeError: Cannot read property 'length' of undefined
                                     at /usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:121:99
                                     at Array.forEach (<anonymous>)
                                     at ApiGatewayAuthStack.createPoliciesFromResources (/usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:120:13)
                                     at /usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:94:16
                                     at Array.forEach (<anonymous>)
                                     at /usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:84:31
                                     at Array.forEach (<anonymous>)
                                     at new ApiGatewayAuthStack (/usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:62:23)
                                     at createApiGatewayAuthResources (/usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:205:17)
                                     at Object.consolidateApiGatewayPolicies (/usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:201:10)
                                     at Object.createEnvLevelConstructs (/usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/env-level-constructs.ts:22:5)
                                     at runMicrotasks (<anonymous>)
                                     at processTicksAndRejections (internal/process/task_queues.js:93:5)
                                     at Object.run (/usr/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/push-resources.ts:97:5)
2021-04-27T17:24:54.152Z [ERROR]: !!! Build failed
2021-04-27T17:24:54.152Z [ERROR]: !!! Non-Zero Exit Code detected

Expected behavior
Should just work
Reproduction steps

I did a very simple frontend push and AWS Amplify started deploying backend and frontend. I made no backend changes. This deployment succeeded 2 hours ago before 4.50.0 was released.

GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
I have not tested yet locally or with < 4.50.0. Will do now.

Setting AWS Amplify to use 4.49.0 resolved the issue and backend push went through fine.
Let me know if you need any additional info or want me to try to do a backend push on my local machine with 4.50.0. Until then I'll leave this in your hands :).

If you could share the contents of amplify/backend/api/${YOUR_REST_API}/api-params.json (with any sensitive information redacted), that would be great.

Sure I just emailed it to<EMAIL_ADDRESS>

Thank you for reporting this. We are working on a fix. In the mean time, if you run amplify api update to regenerate the api-params.json file, that should fix the issue on v4.50.0.

@cjihrig, just a heads up, running an amplify api update did not fix the issue. I'll have to revert to 4.49.0 for the time being, but I'll take whatever workarounds you've got!

@jacobhobson is your api-params.json file missing policyResourceName fields?

@cjihrig, no, that field is not missing. Each path element object has the policyResourceName property.

OK, and you are seeing the same error as the OP, right? If so, can you share your api-params.json file either here or via an email to<EMAIL_ADDRESS>

We are getting the same error. It is occurring on CLI 4.50.0.
Forcing the build CLI to 4.49.0 we were able to work around this issue.
Starting phase: build
Executing command: amplifyPush --simple
2021-04-27T20:55:48.200Z [INFO]: [0mAmplify AppID found: d2y376scxw2k21. Amplify App name is: xxxxx-staging-ci[0m
2021-04-27T20:55:48.248Z [INFO]: [0mBackend environment staging found in Amplify Console app: xxxxx-staging-ci[0m
2021-04-27T20:55:50.277Z [WARNING]: - Fetching updates to backend environment: staging from the cloud.
2021-04-27T20:55:52.022Z [WARNING]: :heavy_check_mark: Successfully pulled backend environment staging from the cloud.
2021-04-27T20:55:52.405Z [INFO]:
2021-04-27T20:55:54.472Z [INFO]: [33mNote: It is recommended to run this command from the root of your app directory[39m
2021-04-27T20:56:01.063Z [WARNING]: - Initializing your environment: staging
2021-04-27T20:56:25.654Z [WARNING]: :heavy_check_mark: Initialized provider successfully.
2021-04-27T20:56:26.261Z [WARNING]: :heavy_multiplication_x: An error occurred when pushing the resources to the cloud
2021-04-27T20:56:26.264Z [WARNING]: :heavy_multiplication_x: There was an error initializing your environment.
2021-04-27T20:56:26.267Z [INFO]: [0mTypeError: Cannot read property 'length' of undefined[0m
[0m    at /root/.nvm/versions/node/v12.21.0/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:121:99[0m
[0m    at Array.forEach ()[0m
[0m    at ApiGatewayAuthStack.createPoliciesFromResources (/root/.nvm/versions/node/v12.21.0/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/utils/consolidate-apigw-policies.ts:120:13)[0m

@blairtaylor can you confirm if any of your REST API paths are missing a policyResourceName property in api-params.json. If so, please try running amplify api update and then verify the policyResourceNames again.

+1 , we are experiencing the same issue

I've sent our api-params.json too. Good luck!

Got the same error when running with amplify version 4.50.0: TypeError: Cannot read property 'length' of undefined
Then ran amplify api updates and did update path choice and choose the values that were already there. After that I saw it changes the file api-params.json ( "policyResourceName": "/..." was added) but also the file userapi-cloudformation-template.json was changed ( "authRoleName" and "unauthRoleName" where removed).
When I push this with amplify push I get the error:
UPDATE_FAILED               api                         AWS::CloudFormation::Stack Wed Apr 28 2021 16:41:38 GMT+0200 (Central European Summer Time) Parameters: [authRoleName, unauthRoleName] do not exist in the template

well, yes the where removed in userapi-cloudformation-template.json but why? (also the file APIGatewayAuthStack.json was generated)

@wbroek thank you for your input. If your API's parameters.json file still references the authRoleName and/or unauthRoleName, you can remove them. The file will likely contain just an empty object {}. From there, you can try pushing again. There is a chance you will need to use the --force flag with amplify push. I've put together a patch in https://github.com/aws-amplify/amplify-cli/pull/7192, which should handle all of these steps automatically in the future.

@cjihrig thanks that did the trick. Removed them in the parameters.json and pushed as you mentioned. Thanks again @cjihrig

Thank you for reporting this. We are working on a fix. In the mean time, if you run amplify api update to regenerate the api-params.json file, that should fix the issue on v4.50.0.

What to do when amplify api update doesn't generate the api-params.json?
I tried doing in in versions 4.50.0 and 4.49.0

I see this is closed, but I'm still experiencing the issue in the backend build (it seems LATEST still resolves to 4.50.0 there, were the changes released?)

👋 Hi, this issue was referenced in the v4.50.2 release!
Check out the release notes here https://github.com/aws-amplify/amplify-cli/releases/tag/v4.50.2.


Question about backpropagation through time

Hi Ilya,
First of all thanks for sharing your code. It has been very useful to me lately. This is more of a question rather than an issue:
When you update the recurrent policy, how many steps are the gradients backpropagated? I am not very familiar with Pytorch, but in Tensorflow this is normally specified with the sequence_length parameter. From what I could see in your code you update the model using the entire sequence so I am guessing the gradients are backpropagated 128 steps?
Thanks in advance,
Miguel

Did you figure out an answer @miguelsuau ?
Bump @ikostrikov
I started a discussion in the PyTorch forums and used Pytorchviz to visualize the backpropagation graph of this and my implementation. But so far I did not gain any meaningful insights.

I am quite certain gradients get backpropagated through the whole sequence (128 steps) but it would be good if @ikostrikov could confirm this.

I printed the shape of the inputs to the GRU layer and observed that the sequence lengths vary (probably depending on the episode length). So the max length of the sequences is 128.

Sorry @miguelsuau, I've just noticed the issue. Yes, it backpropagates through the whole sequence (128 in this case).

In the case of running:
python main.py --env-name "PongNoFrameskip-v4" --algo ppo --use-gae --lr 2.5e-4 --clip-param 0.1 --value-loss-coef 0.5 --num-processes 8 --num-steps 512 --num-mini-batch 4 --log-interval 1 --use-linear-lr-decay --entropy-coef 0.01 --recurrent-policy

and printing print(x[start_idx:end_idx].size()) at model.py:154:
torch.Size([325, 2, 512])
torch.Size([28, 2, 512])
torch.Size([159, 2, 512])

I supposed the first dimension (sequence length) is correlated to the episode length and the second dimension (batch_size) to num_processes as there are two processes in each mini batch. However, that doesn't make sense as two processes are not likely to have the same episode length.
Could you shed some light into this @ikostrikov ?

@MarcoMeter Any update on this?
I was also wondering if this makes sense if we use high number of steps, since this makes learning with gru or lstm more difficult, right? perhaps doing a length clipping for "start_idx:end_idx" helps.

I pretty much abandoned this repository to work on my own implementation with more comments and documentation. Still WIP.
https://github.com/MarcoMeter/neroRL/tree/update/sequence_buffer_masked_loss
recurrent policy doc

@MarcoMeter, I guess you already figured this out but just for reference, I think the sequences can contain experiences from different episodes. The gradients are just zeroed (using masks) so they are not backpropagated from one episode to another.
@a-z-e-r-i-l-a, it depends on the environment if the agent needs to memorize events that are as distant in the past as the whole sequence then you need the gradients to backpropagate through the entire sequence. If not, then you can shorten the sequence length to see if this improves the sample complexity.

@MarcoMeter
I also used Torchviz to check that the gradient of the recurrent policy was correctly back-propagated. At first, I got the same result as you showed in the Pytorch forum post, the GRU module only showed once. Later, after debugging, I found that Torchviz does not seem to show the GRU recursion relations correctly when PyTorch uses the GPU. After forcing using the CPU, it was found that the gradient did get back-propagated through the whole episode.
For the problem of the unequal length of episodes. The first dimension represents the length of one episode. The first dimension of these three tensors added up to the num-steps parameter. The purpose of this is to reset the hidden variable when the episode is completed to avoid passing the hidden variable through episode boundaries.

@binaryoung
Thanks for sharing your findings!
A couple of weeks ago I published a baseline/reference implementation that does truncated bptt.
https://github.com/MarcoMeter/recurrent-ppo-truncated-bptt


network: bridge: use device names for interfaces

Tested on my setup, works ok.

It works
F0222 14:34:22.220575   30603 manager.go:29] Bridge name (br10000000000000) cannot be longer than 12 characters


Error when copying data write: broken pipe

Hi all,
I was just trying to set up Telly + Plex and ran into the following issue.
I'm using the DEV-FFMPEG docker image with host network, same as for plex.
Adding Telly to Plex as DVR works and also recognizes the channel, however when I want to stream any channel, I get the following error in Telly:
_time="2020-05-13T09:48:07Z" level=info msg="frame=    6 fps=0.0 q=-1.0 size=     294kB time=00:00:00.50 bitrate=4740.0kbits/s speed=0.999x    "
time="2020-05-13T09:48:07Z" level=info msg="frame=   18 fps= 18 q=-1.0 size=     498kB time=00:00:01.02 bitrate=3995.9kbits/s speed=   1x    "
time="2020-05-13T09:48:08Z" level=info msg="frame=   31 fps= 20 q=-1.0 size=     664kB time=00:00:01.53 bitrate=3547.9kbits/s speed=1.01x    "
time="2020-05-13T09:48:08Z" level=error msg**="Error when copying data" error="write tcp <IP_ADDRESS>:6077-><IP_ADDRESS>:47176: write: broken pipe"**
time="2020-05-13T09:48:08Z" level=info msg="Stopped streaming 10000"_
Plex logs the following:
May 13, 2020 12:00:05.745 [0x7f6249ffb700] Fehler — Unable to find title for item of type 5
May 13, 2020 12:00:05.745 [0x7f6249ffb700] Fehler — Unable to find title for item of type 5
May 13, 2020 12:00:07.859 [0x7f61f57f2700] Fehler — [Transcoder] Unrecognized option 'crf:0'.
May 13, 2020 12:00:07.859 [0x7f61f7ff7700] Fehler — [Transcoder] Error splitting the argument list: Option not found
May 13, 2020 12:00:08.059 [0x7f6206ffd700] Fehler — Failed to start session.
Any ideas?

Did you find a resolution to this? If not, do you happen to be running on ubuntu 20.04?
I am having similar issues, on 20.04 (docker and bare metal). I can run fine on as raspberrypi which is what is making me think it is a problem with 20.04

Ok so the temp directory couldn't be accessed, or what was the issue?

Gotta love this when someone finds a solution to their problem but provides little to no details that could help others. Seriously...


slow upload speeds

My internet speed through my institution is quite high, but the speed for uploading these files seems quite slow (2.0mb/s). What can I do to make it faster?

I am not sure why it would be so slow in your case. There could be multiple factors, including filesystems on both sides and every hop of the network in between.
I did a bit of testing and from my institution I'm getting around 10 MB/s with galaxy-upload. A straight network performance test between myself and usegalaxy.org got around 30-60 MB/s. This isn't too bad considering the additional overhead of the upload process (the protocol, shared service, and writing to a storage backend), but it could probably be better. I'll see if there's anything that can be done to improve this, but I am not sure if it would help in your case.


non-GitHub member contributions

I hope that using Git to manage the Amos Professional repository does not inhibit other developers from contributing code, as this is the first (working) public repository that has become available it will take some catch-up time (maybe years) before possible contributors would find out we are here, we do accept contributions not only in pull requests so don't let Git put you off if you are not ready, any code that you have is acceptable "as is" to contribute and will be reviewed  anyway - test code generated for it - we encourage this, and hope that this would then encourage developers to start using Git as we are, but it shouldn't interfere.

We could add a link to the AMOS Factory forum and to the AMOS Facebook page to possibly generate more interest.  Are we ready for that though?

I'd like a link from the factory, but the news feed has gone down? not worried about announcements for now until the next package is ready, I think that would be a better time to generate interest when a new "Installer" package is available to download... and the good thing about GitHub is that it can handle the back-log on the website if it happens.


Update Nginx Ingress

How to categorize this PR?

/area control-plane
/topology seed shoot
/kind enhancement
What this PR does / why we need it:
This PR updates Nginx Ingress Controllers to v0.49.0 (Kubernetes 1.20, 1.21), v1.0.0 (Kubernetes >= 1.22) for shoot clusters and v0.49.0 (Kubernetes 1.18, 1.19, 1.20, 1.21), v1.0.0 (Kubernetes >= 1.22) for seed clusters (managed ingress feature).
Which issue(s) this PR fixes:
Fixes #4271
Parts of #4363
Special notes for your reviewer:
I used the best practices described in this document: https://kubernetes.github.io/ingress-nginx/#faq-migration-to-apiversion-networkingk8siov1
Additionally, I checked the following functionalities:

✅ Test v0.49.0 with Kubernetes v1.21.3 shoot cluster
✅ Test v1.0.0 with Kubernetes v1.22.1 by upgrading an existing shoot cluster
✅ Test v0.49.0 with Kubernetes v1.21.3 seed cluster
✅ Test v1.0.0 with Kubernetes v1.22.1 seed cluster by upgrading it
✅ Migrated a v1.22.1 seed cluster from using the shoot addon Nginx to the seed managed Nginx feature

Release note:

The NGINX Ingress Controller has been updated to `v0.49.0` for seed clusters running Kubernetes 1.18, 1.19, 1.20, 1.21. For seed clusters running Kubernetes >= 1.22 NGINX Ingress Controller `v1.0.0` is used.

The NGINX Ingress Controller addon has been updated to `v0.49.0` for shoot clusters running Kubernetes 1.20, 1.21. For shoot clusters running Kubernetes >= 1.22 NGINX Ingress Controller `v1.0.0` is used. Please have a detailed look at this [FAQ document](https://kubernetes.github.io/ingress-nginx/#faq-migration-to-apiversion-networkingk8siov1) which explains the most important ingress changes when updating to NGINX Ingress Controller `v1.0.0`.

/squash
/milestone v1.31
/assign @stoyanr