[Flyout]Appear next to the tray icon position

Summary of the Pull Request
The system tray quick launcher flyout assumes that the taskbar is always on the bottom of the primary screen.
This PR makes it so that the flyout tries to appear closer to the place where the tray icon was clicked.

PR Checklist

[x] Closes: #23737
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Send the coordinates of the click to settings to make the flyout appear on those coordinates.
Adapt according to the screen dpis.
Refactor argument passing to the settings app so that optional arguments are taken into account.

Validation Steps Performed
Tried opening settings normally and from a module like PowerRename to verify it still opened correctly (arguments refactoring)
Verified many taskbar positions / dpis on Windows 10.
Tried showing the flyout both as the first thing after we start PowerToys and also after opening Settings.

Looks complicated. I assume it also works if the mouse is not used?

Looks complicated. I assume it also works if the mouse is not used?

I've tried tabing to the tray icon and pressing space on my Windows 10 machine. Basically what I see happen is that the mouse pointer jumps to it before simulating a left mouse click 😆 .


fix: k8s upgrades to non-step versions unsupported

What this PR does / why we need it:
Currently the step logic always stops at the step version for a given minor upgrade. This change makes it stop at the specified minor.

It seems OK for me.
I think we will need to check it out in the daily testgrid afterwords.


Fixed typo in docs (geom_errorbar.md)

Coverage remained the same at 65.841% when pulling 4d7b92ebcbd8b5790f1b6834d8dd1f54630dbfc0 on JohnAnthony:master into 44422c27dd63109e43abc25c557223680eddf7ac on dcjones:master.

Coverage remained the same at 65.841% when pulling 4d7b92ebcbd8b5790f1b6834d8dd1f54630dbfc0 on JohnAnthony:master into 44422c27dd63109e43abc25c557223680eddf7ac on dcjones:master.

Coverage remained the same at 65.841% when pulling 4d7b92ebcbd8b5790f1b6834d8dd1f54630dbfc0 on JohnAnthony:master into 44422c27dd63109e43abc25c557223680eddf7ac on dcjones:master.

Thanks for catching that!


Looking for maintainer

I no longer use i3 (moved to mac) so I no longer use and update this plugin.
Looking for someone to help maintain this repo
I can continue doing code reviews but it will be difficult for me to test this plugin as a menu bar
For more details or if you are interested feel free to email me or comment on this issue

I may be interested, as I use this valuable piece of software daily. However I know I have little available time (life is short).
Perhaps I may try to submit a PR for #84 and #87, and if I succeed it will be a good indicator  I may be able to maintain this for some time.

@matclab Sounds good

Perhaps I may try to submit a PR for #84 and #87, and if I succeed it will be a good indicator I may be able to maintain this for some time.

Goal reached (and more quickly than I expected) :popcorn:

I invited you as a collaborator 🎉


New release of VS Code Extension

Merge develop into master

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

v0.104.0
GitHub release

Your semantic-release bot :package::rocket:


fix: select zIndex

Codecov Report

Merging #68 (c7ecfec) into master (bf0a857) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #68   +/-   ##
=======================================
  Coverage   70.27%   70.27%
=======================================
  Files         244      244
  Lines        1332     1332
  Branches      194      194
=======================================
  Hits          936      936
  Misses        395      395
  Partials        1        1

Impacted Files
Coverage Δ

src/component-panel/ComponentTokenDrawer.tsx
60.00% <ø> (ø)

src/component-panel/index.tsx
56.36% <100.00%> (ø)

Continue to review full report at Codecov.

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


Clarity. This is the Standard Ansible Modules Upstream Git?

This is the feeder Git for the standard ansible modules listed in their module index? (and I see, compared to 2.9, there are a boatload more on the way).
the naming overlap (before the adc change) was highly correlated. But clearly became richer...
.
Thanks.. I mean ευχαριστώ συμπατριώτη ;)

Yes this is where the development happens for citrix adc modules.
We will be moving all modules and related content to Ansible Galaxy.
Right now  to get the latest modules, install Ansible and run the install.py script.

We have moved to ansible collections for the distribution of modules.
Use of ansible 2.9 or later is required for this.

We have moved to ansible collections for the distribution of modules.
Use of ansible 2.9 or later is required for this.


fix: fix non-ascii char parse error

fix non-ascii char parse error

Can you show which error this fixes?

I believe this is now fixed another way.


fix/update-nom-to-5.1.x: Update the "nom" dependency to 5.1.x so that nom::Err can correctly inherit std::error::Error

This pull request will update the "nom" dependency to 5.1.x so that nom::Err can correctly inherit std::error::Error, following this commit: https://github.com/Geal/nom/commit/7952b6909e2e6d315fe6344d14fad084fe98bf89
This is useful because it allows users, when mixing nom function calls with non-nom function calls, to use a generic Result<T, Box<dyn Error>> return type and to use the ? error handling operator, which makes the code way more readable.

I thought this would not be a problem (cargo always picks 5.1 because of versioning rules). Anyway, it is more correct to depend on 5.1
Applied, thanks


Bug with startWeek

Please fix bug with startWeek feature. When i set the first day to Monday the dates stay the same as for Sunday. For example, monday of this month is 2-nd, but not the 1-st like in your calendar.
Thanks for fix!

done


chore: Standardized script names (unit/lint/test)

Closing this in favor of a67887d9d4841baae8eb94a1f2ac18f12e634195 using names provisionally recommended in pds/composer-script-names.


Set a default volume type for cinder (1.2.x)

We were relying on an env setting for this, but we really should have a
default in the role. File is the safe default.
(cherry picked from commit a7060d71da926d9afb44fd9fadf6fa46a75f0f1f)

Self merging, this is blocking other PRs.


Update anime.py change "QUALITIES" to a tuple

Not sure that the difference will even be noticeable, but you might as well comb through the providers and change there as well, e.g:
https://github.com/vn-ki/anime-downloader/blob/f13f13bc367c7df8f6d667d7ff74266b673386a2/anime_downloader/sites/animefreak.py#L12

@Sultron please merge all PR:s to one, also I'm not even sure QUALITY in providers matter much, if at all.

There's nothing particularly wrong with using tuples instead of lists, I doubt the memory and time save will be too significant with this change.

No change on this PR after asking an action of all those PRs to be merged into here. Reopen when you do that.


Update ex8_04.cpp

It seems the post version was not the cpp.(maybe I was too weak to understand the code)
"for(const auto &str:vec)" this sentence can not build right.

Sorry, but it is. Please use c++11 compiler, and read the C++ Primer 5...


Enable user to set model_version via record_inference_data call

ditto.
Currently can't set model_version via primary calls; e.g: sklearn API wrapper calls, record_inference_data.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Can't add reviewers and wasn't sure what alerts for PRs are in place; tagging @YehezkelShay for visibility. Apologies for poor tagging etiquette in advance.

LGTM


[BUG] ModuleNotFoundError because of change of scikit_learn upgrade

Describe the bug

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-10-f1e54e367177> in <module>
      1 import time
      2
----> 3 from sklearn.ensemble.forest import RandomForestClassifier
      4 from sklearn.pipeline import Pipeline
      5

ModuleNotFoundError: No module named 'sklearn.ensemble.forest'

To Reproduce

import time

from sklearn.ensemble.forest import RandomForestClassifier
from sklearn.pipeline import Pipeline

from sktime.datasets import load_osuleaf

train_x, train_y = load_osuleaf(split="train", return_X_y=True)
test_x, test_y = load_osuleaf(split="test", return_X_y=True)

# example pipeline with 1 minute time limit
pipeline = Pipeline(
    [
        (
            "st",
            ContractedShapeletTransform(
                time_contract_in_mins=time_contract_in_mins,
                num_candidates_to_sample_per_case=10,
                verbose=False,
            ),
        ),
        ("rf", RandomForestClassifier(n_estimators=100)),
    ]
)

start = time.time()
pipeline.fit(train_x, train_y)
end_build = time.time()
preds = pipeline.predict(test_x)
end_test = time.time()

print("Results:")
print("Correct:")
correct = sum(preds == test_y)
print("\t" + str(correct) + "/" + str(len(test_y)))
print("\t" + str(correct / len(test_y)))
print("\nTiming:")
print("\tTo build:   " + str(end_build - start) + " secs")
print("\tTo predict: " + str(end_test - end_build) + " secs")

Expected behavior

1.1210031509399414
2.162216901779175
2.449451446533203
2.5960922241210938
Results:
Correct:
	121/242
	0.5

Timing:
	To build:   68.00058245658875 secs
	To predict: 8.72866439819336 secs

Additional context

I upgrade scikit_learn from 0.23.1 to 0.24.0 and unfortunately failed in this cell.
The reason is that scikit_learn community changed the sub-module name from forest to _forest.
I wonder instead of such fine-grained import, we can avoid such issue by a little more coarse-grained import. For this case:
from sklearn.ensemble import RandomForestClassifier

We already know there cannot be another RandomForestClassifier class and the libs from sklearn.ensemble are not big. Therefore, this seems to a balanced solution for both 0.23.x to 0.24.x version of scikit_learn.
What do you think? If you also agree with this suggestion then I will pull a request to fix that. If you don't like that, I am also willing to hear your explanation.
Versions

System:
   machine: Windows-10-10.0.19041-SP0
Python dependencies:
pip: 20.3.3
setuptools: 49.2.1
sklearn: 0.24.0
sktime: 0.5.1
statsmodels: 0.12.1
numpy: 1.19.3
scipy: 1.4.1
Cython: 0.29.17
pandas: 1.1.2
matplotlib: 3.3.2
joblib: 0.17.0
numba: 0.52.0
pmdarima: 1.8.0
tsfresh: 0.17.0

great spot, thanks, it seems scikit changes structurally quite a bit from .23 to ,24. Your solution looks good to me, put in the PR.

great spot, thanks, it seems scikit changes structurally quite a bit from .23 to ,24. Your solution looks good to me, put in the PR.

great spot, thanks, it seems scikit changes structurally quite a bit from .23 to ,24. Your solution looks good to me, put in the PR.

Dear prof @TonyBagnall
I've fixed it. Please merge #613 whenever you are free. ❤

great spot, thanks, it seems scikit changes structurally quite a bit from .23 to ,24. Your solution looks good to me, put in the PR.

Dear prof @TonyBagnall
I've fixed it. Please merge #613 whenever you are free. ❤


Add Repository Method, so we can get the NotificationID

We need a new repository method that returns a verifyMatchRequest and needs parameters such as a match but also users. We also need to add another method in verifiyMatchService.
Relates to #41 as we need it for email communication

Unclead due to increased amount of database accesses


Split build test

Testing splitting agent build into build/test portions.

Codecov Report

Merging #2403 (efde7ed) into main (4cc4de9) will decrease coverage by 6.15%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2403      +/-   ##
==========================================
- Coverage   31.03%   24.88%   -6.16%
==========================================
  Files         254      119     -135
  Lines       28753    11794   -16959
==========================================
- Hits         8924     2935    -5989
+ Misses      19829     8859   -10970

Impacted Files
Coverage Δ

...ent/onefuzz-task/src/local/libfuzzer_test_input.rs

src/agent/onefuzz/src/memory/tests_linux.rs

src/agent/onefuzz-task/src/tasks/utils.rs

src/agent/onefuzz/src/monitor/tests.rs

...nt/onefuzz-task/src/tasks/merge/libfuzzer_merge.rs

src/agent/onefuzz/src/asan.rs

src/agent/onefuzz-agent/src/worker/tests.rs

src/agent/onefuzz/src/jitter.rs

src/agent/debugger/src/lib.rs

src/agent/onefuzz/src/utils.rs

... and 125 more

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

Quite fiddly. Won't do it for now.


Possible feature

Hello. I was thinking if there is any way of making one events counter in each date cell which indicates something.
Lets say that in the date 14-10-2016 on the "14" cell should have a little circle with a number inside lets say "2" which indicates how many birthdays are in this date. Is there any feature or possible update?
Thanks a lot!

The goal of this project is to be as flexible as possible.
It allows the developer to create any thing he/she wants. Therefore, if you want an event counter, then create one your self.
This is the way a library should work -> be as flexible as possible.
If I were to add this new feature, then not every developer will want this feature on their design.
So, how will you create one? Simple.
If you have followed the tutorial then you will know how to design your dateCell.
So all you have to do is simply add a counter on the cell with what ever design you want for your project, then add the functionality for it in your custom class.

Hey, I forgot to tell you: Thanks for the input!
I really like it when you guys give me suggestions. I want this project to be the best of its kind on github. 👍
Again thanks.


Another way to add a http middleware that works with spring boot.

Coverage increased (+0.1%) to 30.237% when pulling 12d75b28b858db268e66b9cde5524c65a61c0f19 on fix/http-middleware into a426b99baf724bb96aedcf24247bc64db01cd57e on master.


OP_REQUIRES failed at save_restore_v2_ops.cc:184 : Not found: Key aux_logits/Conv/biases/ExponentialMovingAverage not found in checkpoint

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

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04

TensorFlow installed from (source or binary): conda install

TensorFlow version (use command below): v1.14

Python version: anaconda 3.7

Bazel version (if compiling from source): 1.01

Full enviorment details : `
tf_env.txt
Describe the current behavior
I am attempting to evaluate my custom trained inception V3 model, but the variables to restore being generated by this call
 variable_averages = tf.train.ExponentialMovingAverage(         inception.MOVING_AVERAGE_DECAY)     variables_to_restore = variable_averages.variables_to_restore()
are not found in my checkpoint file.
I get this error:
Exception has occurred: NotFoundError
Restoring from checkpoint failed. This is most likely due to a Variable name or other graph key that is missing from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

Key aux_logits/Conv/biases/ExponentialMovingAverage not found in checkpoint
	 [[node save/RestoreV2 (defined at /02_testing/xClasses/inception/nc_inception_eval.py:418) ]]

Original stack trace for 'save/RestoreV2':
  File "/.vscode-server/extensions/ms-python.python-2019.10.44104/pythonFiles/ptvsd_launcher.py", line 43, in <module>
    main(ptvsdArgs)
  File "/.vscode-server/extensions/ms-python.python-2019.10.44104/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 432, in main
    run()
  File "/.vscode-server/extensions/ms-python.python-2019.10.44104/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 316, in run_file
    runpy.run_path(target, run_name='__main__')
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/02_testing/xClasses/nc_imagenet_eval.py", line 271, in <module>
    tf.app.run()
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/02_testing/xClasses/nc_imagenet_eval.py", line 65, in main
    precision_at_1, current_score = nc_inception_eval.evaluate(dataset)
  File "/02_testing/xClasses/inception/nc_inception_eval.py", line 418, in evaluate
    saver = tf.train.Saver(variables_to_restore)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 831, in __init__
    self.build()
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 843, in build
    self._build(self._filename, build_save=True, build_restore=True)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 881, in _build
    build_restore=build_restore)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 514, in _build_internal
    restore_sequentially, reshape)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 334, in _AddRestoreOps
    restore_sequentially)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 581, in bulk_restore
    return io_ops.restore_v2(filename_tensor, names, slices, dtypes)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/ops/gen_io_ops.py", line 1696, in restore_v2
    name=name)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
    op_def=op_def)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3616, in create_op
    op_def=op_def)
  File "/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2005, in __init__
    self._traceback = tf_stack.extract_stack()
  File "/home/ubuntu/02_testing/xClasses/inception/nc_inception_eval.py", line 83, in _eval_once
    saver.restore(sess, ckpt.model_checkpoint_path)
  File "/home/ubuntu/02_testing/xClasses/inception/nc_inception_eval.py", line 427, in evaluate
    precision_at_1, current_score = _eval_once(saver, summary_writer, top_1_op, top_5_op, summary_op, max_percent, all_filenames, filename_queue, net2048, sel_end_points, logits, labels)
  File "/home/ubuntu/02_testing/xClasses/nc_imagenet_eval.py", line 65, in main
    precision_at_1, current_score = nc_inception_eval.evaluate(dataset)
  File "/home/ubuntu/02_testing/xClasses/nc_imagenet_eval.py", line 271, in <module>
    tf.app.run()

Describe the expected behavior
I have done this several times before so I am not sure why I am all the sudden getting this error. I even tried evaluating my old model with these scripts and it still gives me the same error.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
`inception_eval.evaluate(dataset)`

`def evaluate(dataset):
  """Evaluate model on Dataset for a number of steps."""
  with tf.Graph().as_default():
    # Get images and labels from the dataset.
    images, labels, all_filenames, filename_queue = image_processing.inputs(dataset)

    # Number of classes in the Dataset label set plus 1.
    # Label 0 is reserved for an (unused) background class
    num_classes = dataset.num_classes() + 1
    print("there are %d classes!" % dataset.num_classes())

    # Build a Graph that computes the logits predictions from the
    # inference model.
    logits, _, end_points, net2048, sel_end_points = inception.inference(images, num_classes)

    # Calculate predictions.
    #max_percent =  tf.argmax(logits,1)
    #max_percent = tf.reduce_max(logits, reduction_indices=[1]) / tf.add_n(logits)
    max_percent = end_points['predictions']
    # max_percent = len(end_points)
    #for kk in range(len(labels)):
    #   #max_percent.append(end_points['predictions'][kk][labels[kk]])
    #   max_percent.append(labels[kk])
    if FLAGS.mode == '0_softmax':
      top_1_op = tf.nn.in_top_k(logits, labels, 1)
      top_5_op = tf.nn.in_top_k(logits, labels, 5)
    elif FLAGS.mode == '1_sigmoid':
      top_1_op = None
      top_5_op = None
    # Restore the moving average version of the learned variables for eval.

    variable_averages = tf.train.ExponentialMovingAverage(
        inception.MOVING_AVERAGE_DECAY)
    variables_to_restore = variable_averages.variables_to_restore()
    with open('./vars2res.txt', 'w') as vas:
      for k, v in variables_to_restore.items():
        vas.write(k)
        vas.write('\n')
    saver = tf.train.Saver(variables_to_restore)

    # Build the summary operation based on the TF collection of Summaries.
    summary_op = tf.summary.merge_all()

    graph_def = tf.get_default_graph().as_graph_def()
    summary_writer = tf.summary.FileWriter(FLAGS.eval_dir, graph_def=graph_def)

    while True:
      precision_at_1, current_score = _eval_once(saver, summary_writer, top_1_op, top_5_op, summary_op, max_percent, all_filenames, filename_queue, net2048, sel_end_points, logits, labels)`

`def _eval_once(saver, summary_writer, top_1_op, top_5_op, summary_op, max_percent_op, all_filenames, filename_queue, net2048_op, endpoints_op, logits_op, labels_op):
  """Runs Eval once.

  Args:
    saver: Saver.
    summary_writer: Summary writer.
    top_1_op: Top 1 op.
    top_5_op: Top 5 op.
    summary_op: Summary op.
  """
  #tf.initialize_all_variables()
  # modify for new tensorflow releases
  tf.global_variables_initializer()
  with tf.Session() as sess:
    ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
    if ckpt and ckpt.model_checkpoint_path:
      if os.path.isabs(ckpt.model_checkpoint_path):
        # Restores from checkpoint with absolute path.
        saver.restore(sess, ckpt.model_checkpoint_path)`

Other info / logs
Tensors in my model
tensors2.txt
Variables attempting to restore
var2res.txt

@mattreex, Please provide us the simple standalone code to reproduce the reported issue. Thanks!

@mattreex, Provide the sample code snippet to replicate the issue. Thanks!

Have you solved this issue? It happened to me when I use AI platform's distributed training service.
My error is very similar with what @gadagashwini reported.  It complains about bundle_tower/dense/bias/rt_0/ExponentialMovingAverage is not found in the checkpoint.
When I print out variables from checkpoint, you can see part_0 is partially stripped to rt_0.
(0): bundle_tower/dense/bias: [1285]
(1): bundle_tower/dense/bias/dense/bias/part_0/Adam: [1285]
(2): bundle_tower/dense/bias/dense/bias/part_0/Adam_1: [1285]
(3): bundle_tower/dense/bias/rt_0/ExponentialMovingAverage: [1285]

This happens for all partitioned ExponentialMovingAverage variables.


Use two isolation stages for docker networks

This MR implements an IPv6 version of docker/libnetwork#2117.
Fixes #22
Closes #22
/cc @robbertkl

@robbertkl It even simplifies the code base!

@robbertkl I had to change two rules for internal networks.
If use the same dropping rules for internal IPv6 networks as we do for IPv4, we will end with these rules:
    0     0 DROP       all      *      dckrNet1 !fddd:0:0:11::/64     ::/0
    0     0 DROP       all      dckrNet1 *       ::/0                !fddd:0:0:11::/64

This also blocks Neighbor Discovery Protocol (counterpart to ARP for IPv4) so ICC will not be possible - even when it is enabled.
As a solution we should not check for a specific address but for input and output interfaces:
    0     0 DROP       all      dckrNet1 !dckrNet1  ::/0                 ::/0
    0     0 DROP       all      !dckrNet1 dckrNet1  ::/0                 ::/0

With these rules NDP packets will not be dropped and if you can still decide with the ICC flag if you want to allow ICC.
Commit: 4fba810337a632db042e8622e30760b8299cd1cc


Podman login returns username after logout indicates no user logged in.

/kind bug
Description
I'm trying to resolve troubleshooting issue #13 - Anonymous image pull fails with invalid username password
podman logout docker.io returns Not logged into docker.io.
Yet podman login --get-login docker.io returns a username
According to latest help documentation this data can only come from:
$ cat ${XDG_RUNTIME_DIR}/containers/auth.json
{
        "auths": {}
}

Steps to reproduce the issue:

Runpodman logout docker.io
podman login --get-login docker.io

Describe the results you received:
A user name.
Describe the results you expected:
No logged in user name.
Additional information you deem important (e.g. issue happens only occasionally):
Output of podman version:
$ podman version
Version:            1.9.3
RemoteAPI Version:  1
Go Version:         go1.10.1
OS/Arch:            linux/amd64

Output of podman info --debug:
debug:
  compiler: gc
  gitCommit: ""
  goVersion: go1.10.1
  podmanVersion: 1.9.3
host:
  arch: amd64
  buildahVersion: 1.14.9
  cgroupVersion: v1
  conmon:
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.16, commit: '
  cpus: 2
  distribution:
    distribution: ubuntu
    version: "18.04"
  eventLogger: file
  hostname: desktop.local.lan
  idMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  kernel: 5.3.0-40-generic
  memFree: 318054400
  memTotal:<PHONE_NUMBER>6
  ociRuntime:
    name: runc
    package: 'containerd.io: /usr/bin/runc'
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc10
      commit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
      spec: 1.0.1-dev
  os: linux
  rootless: true
  slirp4netns:
    executable: /usr/bin/slirp4netns
    package: 'slirp4netns: /usr/bin/slirp4netns'
    version: |-
      slirp4netns version 0.4.3
      commit: unknown
  swapFree:<PHONE_NUMBER>
  swapTotal:<PHONE_NUMBER>
  uptime: 37h 3m 8.25s (Approximately 1.54 days)
registries:
  search:
  - docker.io
  - quay.io
store:
  configFile: /home/<redacted>/.config/containers/storage.conf
  containerStore:
    number: 0
    paused: 0
    running: 0
    stopped: 0
  graphDriverName: vfs
  graphOptions: {}
  graphRoot: /home/<redacted>/.local/share/containers/storage
  graphStatus: {}
  imageStore:
    number: 0
  runRoot: /run/user/1000/containers
  volumePath: /home/<redacted>/.local/share/containers/storage/volumes

Package info (e.g. output of rpm -q podman or apt list podman):
$ apt list podman
Listing... Done
podman/unknown,now 1.9.3~1 amd64 [installed]

Additional environment details (AWS, VirtualBox, physical, etc.):
Physical. Ubuntu 18.04.

podman login --get-login docker.io may return username from .docker/config.json, should fix the logout error message as something like not logged in podman, please logout using docker.

Also need to update the help documentation (linked to in OP) to cite the docker config location as a data source for Podman.


Move "Collapse output" to output "..." button

From https://github.com/microsoft/vscode/issues/142455
This has come up multiple times - people looking for the "Collapse output" action in the "..." button that shows up next to the output container. Makes sense, so we should do that.

This is not currently in any menus, we made collapsing more discoverable by letting you click the blue left sidebar.


Azure Deployment: Acces Denied

Hello Jan,
We have deployed skoruba to Azure and while it can connect to the DB and authenticate, when it goes to the Admin it shows Access Denied:

We have updated every appsettings and the identityserverdata json to point to azure websites but it does not work.
Additionally when we configure the connection strings it appears a Microsoft Identity Platform config that I think should not appear. Could it be related to the issue?

Thank you.

Does your admin have the admin role? Can you verify it? Thanks

It was an error in the redirect_uris in the BD, we had the id's changed so it did redirect to other website.
Thanks so much for helping and for this amazing project :) ❤

Great, thanks for your feedback. :)


Throw an error require is not defined when using viteDevServer.ssrLoadModule

Describe the bug
Throw an error require is not defined when using viteDevServer.ssrLoadModule to load the SSR entry file.
Seems the error come from the pkg apollo-upload-client import the extract-files

But the errors to require file is existing
And the error does not throw when I using vite build --ssr index.ts
Reproduction

Create a file then import the apollo-upload-client', see like:

import 'apollo-upload-client';

Create the build file, see like:

const path = require('path');
const {createServer} = require('vite');

const build = async () => {
	const devServer = await createServer({});

	const entryPath = path.resolve(__dirname, './index.ts');
	const App = await devServer.ssrLoadModule(entryPath);

	console.log(App);
};

build()
	.then(() => {
		console.log(`Build pages done.`);
		process.exit(0);
	})
	.catch((e) => {
		console.error(`Build pages failed.`);
		console.error(e);
		process.exit(1);
	});

Run the script

node build.js

Then get the error.
System Info

vite version: 2.0.1
Operating System: macOS 10.15.7 (19H2) Darwin 19.6.0
Node version: v12.18.3
Package manager (npm/yarn/pnpm) and version: yarn: 1.22.10

Vite upgrade to version: 2.0.2
The error still exists

This is the error thrown content:

Remove the apollo-upload-client, the same error throw in other pkg


Q: To use RedissonRedLock locking mechanism do we need to create multiple locks?

My use case is simple (I think). I need to make sure that for a specific keyspace, only one client can create an entry i.e. akey with value for it. If multiple threads/clients etc access the "creation" method at the very same time, then only the first one should get access to create the entry & all others should be rejected.
I was trying to accomplish using the following code snippet.
    /*
    * 1. Test if the object with the specified identifiers does not exist already.
    * */
    if (exists(objectIdentifiers)) {
      throw new DuplicateObjectCreationRequestException(message);
    }

    /*
      * 2. Acquire a distributed Redis lock, auto-expire it after reasonable amount of time.
    * */
    RLock redissonRLock = redissonClient.getLock("lock-unique-id");
    RedissonRedLock locker = new RedissonRedLock(redissonRLock);
    locker.lock(5, TimeUnit.SECONDS);

    /*
      * 3. Guard against clients which got access to this block of code, after the first client already created the entry.
    * */
    if (exists(objectIdentifiers)) {
      throw new DuplicateObjectCreationRequestException(message);
    }

    //create entry

    locker.unlock();
  }

But this seems to not work at all. I executed this method using executor service, where I ran 2 threads in parallel.
And it seems that one of the threads gets is able create the lock, do the work & unlock it. But the second one is not even able to get the lock & the method never finishes execution.
After I changed the locking mechanism to Fair Lock things work as expected.
I am not sure why this is? Is it because of the fact that the RedissonRedLock expects multiple locks? But I dont think I would need that in my case.
FYI here is the snippet of code I use to paralelly start 2 executions.
Callable<Entry> callable_1 = new Callable<Entry>() {
      @Override public Entry call() {
        try {
          return datastoreManagementService.createEntry(key1, key2);
        } catch (DuplicateObjectCreationRequestException | InvalidRequestException ex) {
          ex.printStackTrace();
        }

        return null;
      }
    };

    Callable<Entry> callable_2 = new Callable<Entry>() {
      @Override public Entry call() {

        try {
          return datastoreManagementService.createEntry(key1, key2);
        } catch (DuplicateObjectCreationRequestException | InvalidRequestException ex) {
          ex.printStackTrace();
        }
        return null;
      }
    };

    ExecutorService executor = Executors.newCachedThreadPool();
    executor.invokeAll(Arrays.asList(callable_1, callable_2));

Am I doing something wrong?

Which Redisson version do you use?

Why do you have to use lock instead of to just use trySet method in the RBucket?

@mrniko I am using 2.2.24.
@jackygurui The requirement is to not allow the second set operation AND also to let the client know about it. This should happen regardless of how many clients are trying to perform the same set operation at the very same time. Hence I think trySet will not work. Does trySet internally have a synchronized block?

Also wanted to ask, does Redisson itself make a determination on whether a node is a master or slave? Or it uses the first node in the list as master and all others as slave?

@tankchintan

Does trySet internally have a synchronized block?

It works atomically in one operation.

Also wanted to ask, does Redisson itself make a determination on whether a node is a master or slave

Only in redis cluster mode.

@tankchintan
public boolean trySet(V value);

this is perfect for your case, to further extend what @mrniko has described, redis is only a single thread system, that means only one command is executed at any given time, regardless how many it receives at the same time. The trySet method uses SETNX key value command under the hood and from the boolean return value, your client will know if it has been accepted or not.
There is no need to create complicated locking or synchronising by yourself.

@mrniko I think I did not clarify I am using Elasticache mode. Here is my configuration that I explicitly set.
  config:
    elasticacheServersConfig:
      nodeAddresses:
        - "//sample.1.cache.amazonaws.com"
        - "//sample.2.cache.amazonaws.com"

Having said that will it automatically figure out what is master and what is slave? And if elasticache makes changes on one of those nodes.. form master to slave... for service degradation reasons, will Redisson automagically figure it out & update it's settings?
@jackygurui Thanks for the explanation. It does makes sense to use trySet instead. Just one more clarification. You mentioned that redis is single threaded. But what about in cluster mode or the elasticache mode? Because the requests can go to any node, right? Will operations still work as expected?

@tankchintan
In cluster mode, elasticache mode or master-slave mode, your write operation can only be done on master nodes, i.e. your trySet will be executed on a master. In cluster mode, for any given key, it can only reside on one (hash) slot. So the answer to your questions are: No, the requests wouldn't go to any node, it would only go to the master node which manages the slot contains the key; Yes, the trySet operation should still work as expected.

Thanks for the great explanation @jackygurui. I just now finished writing few test cases to verify this behavior & it works as expected.

I think I can close this ticket, but the original question still remains a mystery (of if we need multiple distinct RLock objects for a RedissionRedLock object to lock & unlock properly).

I think I can close this ticket, but the original question still remains a mystery (of if we need multiple distinct RLock objects for a RedissionRedLock object to lock & unlock properly).

I think it's not necessary to use RedLock with single lock, because it's designed for N locks not for one. For single lock use a RLock instance.

@jackygurui @mrniko I wanted to run something by you. As you suggested we have been using the trySet method for making sure that only one copy of a specific key is ever created. And that if someone attempts to create another key it will throw exception, even if both creation requests are made at the very same millisecond.
After implementing this system, thus far we have seen very small amount of duplicates getting created. Like 10 in the last couple of months it has been in production. Granted this is a very small number, I wanted to make sure that this is not happening because of trySet usage & coulod be because of some other application code we are using.
I was reading through SETNX doc, which I think is being used under the hood for trySet. In the handling deadlocks section, it mentions that there is a possibility in a race condition that 2 clients can acquire a lock on the same key & that breaks down the protection. Is this applicable to Redisson's usage of trSet?

Could you please list all methods of RLock you use?

@mrniko Actually I ended up not using RLock at all. Based on @jackygurui suggestion, trySet serves my scenario perfectly, hence I ended up using that instead.
bucket.trySet(object, ttlInSeconds, TimeUnit.SECONDS)

So you use only RBucket.trySet method only, right? I'm asking because if you use RBucket.get too this maybe the reason of your problem

Yeah @mrniko we use trySet directly.

do you use null values as argument for trySet method?

Nope. None of the params can be null vy the time we reach this Redisson call.
FYI what set of alarms for us was the following description in SETNX,
C1 sends DEL lock.foo
C1 sends SETNX lock.foo and it succeeds
C2 sends DEL lock.foo
C2 sends SETNX lock.foo and it succeeds
ERROR: both C1 and C2 acquired the lock because of the race condition.```

We are wondering how come both C1 & C2 can acquire the lock & it succeeds.

Such deadlocks possible if you use delete & trySet methods. RLock uses lua script to avoid such situation. Are you using delete method and then trySet like in this scenario?

Yeah, ok that makes sense. To answer your question, nope we dont delete and then do trySet.

Like 10 in the last couple of months it has been in production

Just wondering. Did you encounter Redis fail-over process during this period of time?

@mrniko Nope. We did not.


Add GH Actions

Add CI/CD as well as linting/formatting/release'ing new versions.

Basic GH actions for building/linting has been added. What's left is to add binaries generation and release process based on tags.

Done


Housing counselor: Update hud_print.css

Fixes [GHE]/CFGOV/platform/issues/3206
Changes

Updates print styles for find a housing counselor.

Testing

Pull branch and run gulp clean && gulp build
Visit http://localhost:8000/find-a-housing-counselor/?zipcode=52246 and click "Print list"

Screenshots
PDF from print below:
Find a Housing Counselor | Consumer Financial Protection Bureau.pdf
Find a Housing Counselor | Consumer Financial Protection Bureau.pdf
Note

Since the external link icon appears on its own line in the page's first paragraph, when the icon is hidden in the print view, the sentence ending period ends up on its own line. Not sure we can do much about this, though we should aim to get the external link icon on the line before in the desktop view too by adjusting the copy.

@niqjohnson Updated and ready for review. Latest print view is updated in the original post (link for convenience: https://github.com/cfpb/cfgov-refresh/files/2704095/Find.a.Housing.Counselor.Consumer.Financial.Protection.Bureau.pdf)

I tried it out in Safari (12.0.2), too, and the table headers were still showing up only once at the very top of the results list

I see this too. What should be do about this? It appears to be how Safari handles the headers. We could hide them on all browsers?

@anselmbradford: Is Safari's mishandling responsive table headers when printing a global thing on cf.gov? It looks like the headers show up correctly if you try to print https://cfpb.github.io/capital-framework/components/cf-tables/, but I know that page isn't 100% in sync with what we're using on cf.gov (and I couldn't find a responsive table like that to test out elsewhere on cf.gov).
At any rate, if this is a global thing, then I say let's keep things as they are and make any needed Safari fixes elsewhere.

@niqjohnson I'm not aware of elsewhere where we are using the full-width table either. Let's do what you suggest and merge this and address the Safari issue separately. If that sounds good with you can you update your review status?

@anselmbradford: Figuring out what's up with Safari separately sounds good to me. This looks good to go now.


Can I use this for other browsers?

Can I use puppeteer in other browsers? eg. firefox, safari, ie, edge?

Look here issues-1667

ok thanks


NDcPP 3.0 - FAU_GEN.1.2 - removal of 'if applicable' caveat for Subject Identity

Provide the location of the issue
FAU_GEN.1.2 - removal of 'if applicable' caveat for Subject Identity
What is the correction request for the cPP? Please describe.
Keep the if applicable caveat in place (undo the change)
Describe the solution you'd like
Keep the if applicable caveat in place.
Describe alternatives you've considered
Add an application note to clarify Subject Identity in the context of the requirement.
Additional context
Subject Identity is typically equated with User Identity (hence the caveat, as not all events involve users), however, a subject does not necessarily have to be a user. This should be ok as most audit logs contain some form of indication as to the ‘initiator’ of an event (e.g. system event). It might cause problems with overzealous evaluators / certifiers asking to see an explicit subject identity in every audit event.

Feedback from NIAP advised us that we should clearly show where we have modified a CC Part 2 SFR, hence the inclusion of the original text with the strikethrough. You'll note that v3.0 hasn't changed the SFR from previous versions of the cPP, all of which simply omit the '(if applicable)' wording.


Branding changes for the ORION name

A fairly extensive change in terms of lines of code for zero immediate technical benefit.
It's main upside would be using consistent terminology in order to make it easier for people coming from outside of the project to grok the codebase. Put forth in the recognition that this might not be a development priority right now...
A few things to point out:

Obviously, this could be fairly disruptive in the short term to people with ongoing branches,
so careful timing of making changes like these is warranted (but the longer a renaming waits,
the harder it is to do it...
Even if you don't want to accept everything else (right away), you might want to cherry-pick
2269f42 and 27f3566 which address references to obsolete repositories
For capitalization, I mostly stuck with "ORION" since it is an acronym, but used "orion"
in the helm chart since that's more idiomatic there.

Thanks for this @bpow ! I'm going to check with a few people to make sure this won't cause issues with ongoing development, but I'd like to get it merged in very soon.


Helm chart for kubernetes deployment

Once merged, we can use github pages to publish the chart and update the documentation.
Closes #26

@mikhailadvani Hey 👋 Thanks for your contrubision. I hope I will have enough time to make a review this weekend.

@Strech I have added a few enhancements that I could think of related to security & reliability

@mikhailadvani I have some additional feedback. I think the best for the user will be an ability to spin up this helm with just a few values set, the ones which are crucial to the application.
I just tried to run the latest PR state in a console and get that:
$ helm install --generate-name --dry-run helm-charts/sidekiq-prometheus-exporter
Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"

@Strech you get the error because you do not have the prometheus-operator installed. I have gone in for the prometheus-operator approach rather than the vanilla prometheus approach since it allows easier wiring in through service-discovery labels

@Strech you get the error because you do not have the prometheus-operator installed. I have gone in for the prometheus-operator approach rather than the vanilla prometheus approach since it allows easier wiring in through service-discovery labels

Yes, you are right. I disable serviceMonitor and was able to dry-run it. But I mean in general, that I think that as less you need entities to spin the simple exporter as better. And all non-essential for application entities, in my opinion, should be possible to enable but disabled by default.
And again, if you turn them on – less configuration as possible to make them running.

switched to serviceMonitor.enabled false and added an empty podAnnotations map for the ability to prometheus to scrape metrics in a non-operator setup

addressed points 1 & 3. I do not agree on 2. keeping the service port as 80 with cluster IP keeps it simple for anyone consuming the service (rather than the pod) over http within the cluster as http://. the port is an internal configuration of the setup and IMHO a candidate for abstraction. I look at the service as a load balancer/reverse proxy abstracting away the internal implementation and would prefer to stick to standard ports. your thoughts?

@mikhailadvani your point sounds reasonable. Agree 👍

all other comments have already been addressed

@mikhailadvani Hey, I want to say thank you for your great contribution 👏 🎉

you are welcome. more issues and PRs coming soon

@mikhailadvani Currently I'm re-shaping cart, so be aware 👀


IllegalInstruction error on semaphore wait

Hi all,
I've recently been facing an error which seems to happen "randomly" on my ESP32 board. After some time publishing and receiving messages on topics the ESP32 catches the following error :
Guru Meditation Error: Core  0 panic'ed (IllegalInstruction). Exception was unhandled. Memory dump at 0x40119494: 00f01d02 f01d120c 56004136 Backtrace: 0x4011949a:0x3ffe9500 0x000000c6:0x3ffe9520 0x40119203:0x3ffe9540
The decoded backtrace is the following :
0x4011949a: IotSemaphore_TimedWait at ../amazon-freertos/libraries/abstractions/platform/freertos/iot_threads_freertos.c line 344 0x40119203: _threadRoutineWrapper at ../amazon-freertos/libraries/abstractions/platform/freertos/iot_threads_freertos.c line 85
After looking at the ESP IDF docs, it looks like it may come from a task returning instead of being deleted. Before going too deep in my assumptions I thought I'd reach for better help.
Thanks in advance.
Best,
Etienne

it looks like it may come from a task returning instead of being deleted

That could be a valid explanation. When a tasks ends, it is supposed to call vTaskDelete( NULL ), in order to get it removed from the lists of tasks.
The call to vTaskDelete() will not return.
In the past users have asked why this doesn't happen automatically.  There are various reasons, one reason is to save code.
Can you check if any of your tasks returns to the caller?
Maybe like this:
void myTask( void * pvParameter )
{
	for( ;; )
	{
	}
	configASSERT( pdFALSE );
}

Hi @htibosch
Thanks for the answer.
I can't spot any task returning to the caller. I'm still trying to find the root of this issue, whether it's a firmware or hardware issue.
I've been facing some really strange behaviors lately that I don't really understand, especially related to SPIFFS functionalities.
The ESP IDF doc also mentions that the IllegalInstruction error could come from the configuration of the SPI flash pins.

Failure to load next instruction from SPI flash. This usually happens if:
Application has reconfigured SPI flash pins as some other function (GPIO, UART, etc.). Consult Hardware Design Guidelines and the Datasheet for the chip or module for details about SPI flash pins.
Some external device was accidentally connected to SPI flash pins, and has interfered with communication between ESP32 and SPI flash.

I would be interested in knowing if anyone had similar issues.
To be continued...

Hi @EtienneMdv
Have you made any new discoveries? Please let us know if there's some way we can reliably reproduce the issue -- Helpful for debugging.
It is interesting that the exception occurs on a call to IotSemaphore_TimedWait. If you can access a debugger, it may be useful to track down which semaphore is being queried during at this crash, then seeing where it used.
If you can attach a memory watchpoint to that semaphore, you can even break into code when it accesses the sem. This may reveal any invalid sequences (i.e. using sem before it's created, using sem after its been destroyed etc.).

@EtienneMdv I'm going to close this for now. Please feel free to reopen this issue if you have any further issues or questions.


Master clone

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

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

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes and the overall coverage did not decrease.
[ ] All unit tests pass on CircleCi.
[ ] I ran all tests locally and they pass.

creating a jira for the code coverage as discussed
Merging this pr


CI is not collecting coverage data for vDVS driver

CI is not showing coverage data for vDVS driver.
CI link: https://ci.vmware.run/vmware/docker-volume-vsphere/1781
Python coverage package does not exist

Fixed as part of #2031


Fixed docblocks to prevent things as reported in #10 from happening

@tuimz thanks for your contribution, but this is only a doc fix, a little confused how you fix the issue #10 ? Can you add more info?

The documentation docblock was incorrect which is why #10 occurred in the first place


handle markdown table column alignment

currently, the mdx field will remove any table column alignment on save:
| title | counts |
| ----- | -----: |
| one   | 1      |
| two   | 123    |

will be saved as:
| title | counts |
| ----- | ------ |
| one   | 1      |
| two   | 123    |

(note that the colon : which marks the column alignment is removed)

Any news on this issue? A fix for this bug would be of great help to my blog since Im trying to use keystatic to manage the content.


Returning empty nextAt when offer was disabled

Fixes https://github.com/topfreegames/offers/issues/9

Did you fix it for both the impression and the purchase? Please add the issue in your commit message so github will detect it as being closed. Example:  Returning empty nextAt when offer was disabled (Fixes #9)

Coverage increased (+0.1%) to 89.095% when pulling 5b5eb8951e7dbc3af3709985d899386cc4b99d3e on bugfix/impression into ed07db8c4285e84bbdae44c2c273e5e5d9d9362c on master.

Coverage increased (+0.1%) to 89.095% when pulling 3f6c504e19bee13f19a4333854d8bca3861a8fa7 on bugfix/impression into ed07db8c4285e84bbdae44c2c273e5e5d9d9362c on master.

Coverage increased (+0.1%) to 89.095% when pulling 3f6c504e19bee13f19a4333854d8bca3861a8fa7 on bugfix/impression into ed07db8c4285e84bbdae44c2c273e5e5d9d9362c on master.

I didn't know about the commit message name, thanks for the tip!
I updated the PR with the check for claimOffer as well.

Coverage increased (+0.1%) to 89.111% when pulling 31c2d534399a908942785cc2db68a0e890e31edc on bugfix/impression into ed07db8c4285e84bbdae44c2c273e5e5d9d9362c on master.


DSD-1298: dark mode for v1.4.0 components

Fixes JIRA ticket DSD-1298
This PR does the following:

Adds dark color mode support for the FilterBar, Modal and MultiSelect components.

How has this been tested?

local build of Storybook

Accessibility concerns or updates

n/a

Checklist:

[x] I have updated the Storybook documentation accordingly.
[x] I have added relevant accessibility documentation for this pull request.
[x] All new and existing tests passed.

Front End Review:

[x] Review the Vercel preview deployment once it is ready.

Looks good but remove Modal from the changelog. The FilterBar uses the modal components from Chakra and not the DS Modal component. Is using the DS Modal a change we want to update in the future?

@EdwinGuzman
Good catch.  I did initially make some style changes for Modal, but in the end I realized they were not necessary and I removed them.  I did, however, update the CHANGELOG to reflect this.


Jump Game II

Description
You are given a 0-indexed array of integers nums of length n. You are initially positioned at nums[0].
Each element nums[i] represents the maximum length of a forward jump from index i. In other words, if you are at nums[i], you can jump to any nums[i + j] where:
0 <= j <= nums[i] and
i + j < n
Return the minimum number of jumps to reach nums[n - 1]. The test cases are generated such that you can reach nums[n - 1].
DSA Problem
Jump Game II (Leetcode Problem 45)

@iamdestinychild I want to contribute the solution for this problem, Please assign me this issue.

please assign this issue to me. @iamdestinychild


chore(deps): update ci dependencies

This PR contains the following updates:

Package
Type
Update
Change

common-dev-assets

digest
e143de9 -> 9475b9f

github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper
require
patch
v1.25.0 -> v1.25.3

Release Notes

terraform-ibm-modules/ibmcloud-terratest-wrapper (github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper)
v1.25.3
Compare Source
Bug Fixes

deps: update module golang.org/x/crypto to v0.16.0 (#706) (a18a1d9)

v1.25.2
Compare Source
Bug Fixes

deps: update gomod (#705) (0c9e048)

v1.25.1
Compare Source
Bug Fixes

deps: update gomod (#704) (b5574c4)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


A 400 status error viewing a staking transaction.

https://explorer.avax.network/address/X-everest1fw9msk6vs7xwu94uqc654uddrrtvsmw53ynu2x
Go to the transaction for a staking node and then click on the address for that node.
This 400 should not happen.

@tyler-smith Ortelius will need to support P-chain tx to support the proposed solution.


program crashes when GTK::Simple::App.new(...) is called later in program

When I want to organize statements in such a way that the App object is placed later in the program when it is needed instead of instantiating it at the start the program, the program will crash.
E,g,
.....
my $button = GTK::Simple::Button.new(label => "Hello World!");
my $second = GTK::Simple::Button.new(label => "Goodbye!");
$second.sensitive = False;
$button.clicked.tap({ .sensitive = False; $second.sensitive = True });
$second.clicked.tap({ app-exit; });

my GTK::Simple::App $app .= new(title => "Hello GTK!");
$app.set-content( GTK::Simple::VBox.new( $button, $second));
$app.border-width = 20;
$app.run;

sub app-exit( ) { $app.exit; }

I assume there are some side effects which are needed by the other widgets but it isn't clear when it happens.
Shown error messages are
(process:13981): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(process:13981): GLib-GObject-CRITICAL **: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
Segmentation fault (core dumped)

The "side effect" is almost certainly https://github.com/perl6/gtk-simple/blob/master/lib/GTK/Simple/App.pm6#L26 I guess this could be factored out in such a way that it is called when it is first needed.

that's right I think. I've copied parts to my test program and moved the instantiation of $app down into the program and it works now. The whole program now looks like
#!/usr/bin/env perl6

use v6;

#--[ Part taken from App ]--
use nqp;
use NativeCall;
use GTK::Simple::Raw :app, :DEFAULT;

my $arg_arr = CArray[Str].new;
$arg_arr[0] = $*PROGRAM.Str;
my $argc = CArray[int32].new;
$argc[0] = 1;
my $argv = CArray[CArray[Str]].new;
$argv[0] = $arg_arr;
gtk_init($argc, $argv);
#--[ End of part ]--

use GTK::Simple;
use GTK::Simple::App;

my $button = GTK::Simple::Button.new(label => "Hello World!");
my $second = GTK::Simple::Button.new(label => "Goodbye!");
$second.sensitive = False;
$button.clicked.tap({ .sensitive = False; $second.sensitive = True });
$second.clicked.tap({ app-exit; });

#--[ Statement moved down ]--
my GTK::Simple::App $app .= new(title => "Hello GTK!");
$app.set-content( GTK::Simple::VBox.new( $button, $second));
$app.border-width = 20;
$app.run;

sub app-exit( ) { $app.exit; }

It seems to be able to initialize twice without harm.

Perhaps the following would do in module App.pm6
... use statements ...
unit package GTK::Simple;

our $initialized = False;
unless $initialized {
  my $arg_arr = CArray[Str].new;
  $arg_arr[0] = $*PROGRAM.Str;
  my $argc = CArray[int32].new;
  $argc[0] = 1;
  my $argv = CArray[CArray[Str]].new;
  $argv[0] = $arg_arr;
  gtk_init($argc, $argv);

  $initialized = True;
}

class App {
  ...
}

Now the initialization takes place when loading the module on first use.

This issue appears to be resolved. Reopen if not.


Make an alias for https://www.pombase.org/spombe/query/builder

Seen in an older paper: https://www.pombase.org/spombe/query/builder

URLs like that now redirect to https://www.pombase.org/query

Seen in an older paper

Examples:

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4596657/
https://plos.figshare.com/articles/dataset/_5FU_induced_RNA_processing_genes_in_S_pombe_/840138/1
https://www.academia.edu/85993074/An_Ancient_Yeast_for_Young_Geneticists_A_Primer_on_the_Schizosaccharomyces_pombe_Model_System
https://www.cell.com/cell/pdfExtended/S0092-8674(15)01425-7

It's also in an old news item - "PomBase web site fully live":

The updated site features a Gene List Search that provides behavior equivalent to GeneDB’s List Download. You can now type or paste lists into the Gene Systematic IDs and Gene Names filters, and use the Query History to combine a gene list search with other search options. For convenience, there is a direct link to a search page pre-configured to accept a list of systematic IDs available in the Find menu, on the Find page, and here: http://www.pombase.org/spombe/query/builder?filter=12

Maybe we should remove that item or add a disclaimer at the top?

Add a disclaimer, I like to keep the news history intact. Never know when we might want to check a date

Add a disclaimer, I like to keep the news history intact. Never know when we might want to check a date

OK, I've checked in that change for tonight's update.


User profile - basic validations in education section

Basic field validations missing in education section. For example - degree should be validated or a drop down should be provided. Fields accept special characters.

Hello @bachia I am interested in contributing to this problem statement. I can work on this issue


Fixing grammatical mistakes, typos, and adding description to the Viterbi algorithm

Thanks a lot for the fixes, receiving a native speaker's read-through is invaluable!

Oh ****. I made a huge error on your branch.


Update definitions

update of definitions as they are in the latest developer documentation at developer.oanda.com

Coverage remained the same at 99.247% when pulling f7eb9b67c13e5ed3169a62e4ec30873a69ea390c on update-definitions into 5f4d97510bda0f3c8082b69c0d72f2593ae8a768 on master.

Coverage remained the same at 99.247% when pulling f7eb9b67c13e5ed3169a62e4ec30873a69ea390c on update-definitions into 5f4d97510bda0f3c8082b69c0d72f2593ae8a768 on master.

Coverage remained the same at 99.247% when pulling f7eb9b67c13e5ed3169a62e4ec30873a69ea390c on update-definitions into 5f4d97510bda0f3c8082b69c0d72f2593ae8a768 on master.

Coverage remained the same at 99.247% when pulling f7eb9b67c13e5ed3169a62e4ec30873a69ea390c on update-definitions into 5f4d97510bda0f3c8082b69c0d72f2593ae8a768 on master.


Render Custom Pages

Use  HTML,CSS (with/without a framework like Bootstrap) and JS for building more visually appealing pages for the app.

Please assign me this issue

Please assign me this issue


[camera] Camera plugin fails my build

I am really getting very desperate. I am close to a deadline and suddenly this error pops up. My builds have been succeeding all week but of all moments when this has to happen is 1 day before a planned submit of the app.
I have no clue where to look anymore I have tried opening the project in Android Studio, I have cleared the gradle caches, cleared the pub-cache folder. I have tried downgrading all plugins to a pre AndroidX plugins. All to no avail.
When I run flutter build apk -v I get the following message:
 Task :app:mergeReleaseResources FAILED
[        ]          *********************************************************
[        ] WARNING: This version of camera will break your Android build if it or its dependencies aren't compatible with AndroidX.
[        ]          See https://goo.gl/CP92wY for more information on the problem and how to fix it.
[        ]          This warning prints for all Android build failures. The real root cause of the error may be unrelated.
[        ]          *********************************************************
[        ] 134 actionable tasks: 6 executed, 128 up-to-date
[ +413 ms] Running Gradle task 'assembleRelease'... (completed in 8.3s)
[   +4 ms] "flutter apk" took 74,973ms.
[        ] "flutter apk" took 74,973ms.
Gradle task assembleRelease failed with exit code 1

#0      throwToolExit (package:flutter_tools/src/base/common.dart:24:3)
#1      _buildGradleProjectV2 (package:flutter_tools/src/android/gradle.dart:478:5)
<asynchronous suspension>
#2      buildGradleProject (package:flutter_tools/src/android/gradle.dart:346:14)
<asynchronous suspension>
#3      buildApk (package:flutter_tools/src/android/apk.dart:34:9)
<asynchronous suspension>
#4      BuildApkCommand.runCommand (package:flutter_tools/src/commands/build_apk.dart:51:11)
<asynchronous suspension>
#5      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:559:18)
#6      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:77:64)
#7      _rootRunUnary (dart:async/zone.dart:1132:38)
#8      _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#9      _FutureListener.handleValue (dart:async/future_impl.dart:126:18)
#10     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:639:45)
#11     Future._propagateToListeners (dart:async/future_impl.dart:668:32)
#12     Future._complete (dart:async/future_impl.dart:473:7)
#13     _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#14     _AsyncAwaitCompleter.complete.<anonymous closure> (dart:async-patch/async_patch.dart:33:20)
#15     _rootRun (dart:async/zone.dart:1124:13)
#16     _CustomZone.run (dart:async/zone.dart:1021:19)
#17     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#18     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#19     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#20     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:115:13)
#21     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:5)

This has happened before but then downgrading the packages would be enough, but sadly this time it is not helping.
Here is my output of flutter doctor
[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale en-NL)
    • Flutter version 1.5.4-hotfix.2 at /Users/patrick/flutter
    • Framework revision 7a4c33425d (3 weeks ago), 2019-04-29 11:05:24 -0700
    • Engine revision 52c7a1e849
    • Dart version 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/patrick/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/patrick/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/patrick/Library/Android/sdk
    • Java binary at: /Users/patrick/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/183.5522156/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2.1, Build version 10E1001
    • ios-deploy 1.9.4
    • CocoaPods version 1.6.1

[✓] Android Studio (version 3.4)
    • Android Studio at /Users/patrick/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/183.5522156/Android Studio.app/Contents
    • Flutter plugin version 35.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2019.1.2)
    • IntelliJ at /Users/patrick/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 35.3.3
    • Dart plugin version 191.7141.49

[✓] VS Code (version 1.33.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.0.2

and these are the packages I have right now
fluro: ^1.4.0
camera: ^0.5.0
path_provider: ^0.5.0+1
flutter_staggered_grid_view: ^0.2.7
flutter_launcher_icons: ^0.7.0
transparent_image: ^1.0.0
html_unescape: ^1.0.1+2
firebase_analytics: ^2.1.1+3
firebase_messaging: ^4.0.0+4
url_launcher: ^5.0.2
http: ^0.12.0+1
sqflite: ^1.1.5
flutter_offline: ^0.2.4+1
logging: ^0.11.3+2
flutter_html: ^0.9.6
photo_view: ^0.3.1
esys_flutter_share: ^1.0.1
native_device_orientation: ^0.2.0
image: ^2.1.0

Have you found a solution?
Is your project using androidX? I saw the link in your log..
          ********************************************************* [        ] WARNING: This version of camera will break your Android build if it or its dependencies aren't compatible with AndroidX. [        ]          See https://goo.gl/CP92wY for more information on the problem and how to fix it. [        ]          This warning prints for all Android build failures. The real root cause of the error may be unrelated. [        ]          *********************************************************
and it seems that if you don't want to migrate to androidX you need to use camera: 0.2.9+1

Have you found a solution?
Is your project using androidX?

1.首先你的项目是否迁移androidX
2.查看android=>app=>build.gradle=>defaultConfig中的minSdkVersion最小也是21

I did not figure out why it didn't. I have updated recently all my packages including flutter itself and all seems to build fine now. I even updated the app to comply to the 64bit Play Story guidelines.
Sorry if I don't have a definitive answer on why it does work for me now. The project is using Android X and that setup was correct.


Implemented API for Merkle proof

Implemented to enable the Merkle proof in the network.
Register API Interface
Use Merkle Proof

I think this is pretty much ready, unless @Geod24 has comments.

Most of this PR is a rename from merkle branch to merkle path. It would have been much nicer / easier to make it a separate commit (and maybe even PR).
But it's a bit late in the sprint for that, so I will merge as-is. Let's make sure to split things more atomically next time.


Remove redundant checkings that are done by JDBC drivers already

like checking if the query starts with "SELECT", or checking if the query has "?" and so on.
Three point in favor of removing the checkings:

They degrade performance: https://github.com/javalite/activejdbc/issues/340#issuecomment-69402217
Some checkings are too complex to implement: https://github.com/javalite/activejdbc/issues/193
The JDBC driver already does it!

My suggestion is we create unit tests, after removing all the checkings, to make sure the JDBC drivers really check all the possible errors that were being checked.

Added comment: https://github.com/javalite/activejdbc/issues/340#issuecomment-70796770

well, maybe you are right about this... a driver will throw an exception anyway

Yeah!  ;- )  (another case of redundant code! oh no, the "r" work again! hehehe)
We can try to work on this after release is done. This is low priority anyway, as there are other factors that affect performance much more than this one.

exactly!


merge master into live-based

Docs Build status updates of commit 96a0df9:
:clock10: Full build: the average full build time is 100 min(s) 5 sec(s), this is based on the last 6 build(s) for this repository.

Docs Build status updates of commit 96a0df9:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


.github/workflows: fix digests file creation

With the introduction of 57db22b2029c, Syft creates the sbom files under the same directory the image digest files are created. This resulted on image-digest-output.txt file to contain all the SBOMs unexpectedly. Thus, using find, we will make sure that only the files that start with the "image-digests" are used to by copied into the image-digest-output.txt file.
Tested in https://github.com/aanm/cilium/actions/runs/9358191181
Fixes: 57db22b2029c ("Generate SBOMs using Syft instead of bom")
@ferozsalam if the Syft PR was backported to all branches then we will need to add the needs-backport to all branches.

/test

Thanks @aanm – I've added the backport labels.


"activity_id -- add ‘RFMIP'" to "source_id MPI-ESM-1-2-HAM”

According to #951 MPI-ESM-1-2-HAM needs to have the activity_id RFMIP to publish the piClim-aer and piClim-control experiments co-sponsered by AerChemMIP.
activity_id: RFMIP
source_id: MPI-ESM-1-2-HAM
institution_id: HAMMOZ-Consortium

Yes, that is my understanding, but I think you meant we need to add "RFMIP" to the activity_participation list for MPI-ESM-1-2-HAM.

@nedavid thanks for the tweak, your registration is now updated, please take a peek at CMIP6_source_id.html and let me know of any further tweaks required


fix: Add subjectAltName for kubeletserver cert

What type of PR is this?
/kind bug

What this PR does / why we need it:
Current kubeletserver certificate does not have subjectAltName field, which is not compliant to the description in https://www.rfc-editor.org/rfc/rfc2818.
RFC 2818: "If a subjectAltName extension of type dNSName is present, that MUST be used as the identity. Otherwise, the (most specific) Common Name field in the Subject field of the certificate MUST be used. Although the use of the Common Name is existing practice, it is deprecated and Certification Authorities are encouraged to use the dNSName instead."
Some packages may remove support for use of common names when a certificate doesn't provide a subjectAltName, such as https://github.com/urllib3/urllib3/issues/497. So, the kubeletserver certificate without subjectAltName will cause problems for users.
This pr adds a subjectAltName with node name as DNSName.
Which issue(s) this PR fixes:

Fixes # https://github.com/Azure/AKS/issues/2770
Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

cc @chengliangli0918

alternatively, please test this with standalone on FIPS to validate it works.

for posterity: hostname SAN works, IP SAN appeared to break FIPS.


[Feature Request] Bump SVGO to version 2

SVGO v1 is deprecated. Is it possible to support SVGO 2?

I will check for that, thanks for asking!

@kingyue737 I could remember I use version 1.3 for some particular reasons. But I forget what it is... So it will stay the same

pr #5


[ODS-4188] Unable to Reference Post Secondary Institution as Education Organization

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


DistortionsListener.prototype.addListener(value, "iterable", config)

Where value is an iterable value, so we can set the same configuration for several values at once.

Related to #140.

Fixed.


Add set text analyser for matlab lexer

This PR ports pygments matlab text analysis to chroma/go. Original code can be found at: https://github.com/pygments/pygments/blob/master/pygments/lexers/matlab.py#L165
Text analysis is used in wakatime client to determine the language of a file, once multiple lexers match the file extension.

Do you think creating separate files under testdata folder would be better?

Thought about this as well. This way it will be more readable. Will adjust. :+1:


Weight fits images are not trimmed like the coadded images

During the linmos stage to save space the formed image (nominally stokes-I) are trimmed of as much empty pixels around the image border as possible. This should be done for the same weight images that linmos produces.

Closed by #144


PHPLIB-1394: Support "type" option for createSearchIndex(es)

https://jira.mongodb.org/browse/PHPLIB-1394

@jmikola can you please target v1.20 for this PR? No need to delay this functionality until 1.21 when we haven't released 1.20.0 yet.


Update the CI/CD pipeline to generate the JSON equivalency of the DSL schema

What would you like to be added:
Update the CI/CD pipeline to generate the JSON equivalency of the DSL schema
Why is this needed:
Even though we should be working on the YAML version of the DSL schema, which is both cleaner and easier to read and maintain, programatic approaches (of course) typically favor the JSON format of the so called JSON Schemas. Making sure said format is available to users and implementers is a must have convenience.

There is a JSON version of the released DSL schema on serverlessworkflow.io (https://github.com/serverlessworkflow/serverlessworkflow.github.io/tree/main/static/schemas)
Automatically generating a JSON version each time the YAML schema is updated in this repo would be feasible, and probably a plus for "early implementers" trying to keep up to date before a version is released, but it would also create quite a lot of noise in the git history.

@JBBianchi right! Closing for now, we'll reopen if we need it later for early implementers!


Make Parfors cacheable

As titled.
TODOS:

[x] refactor and the FIXMEs
[x] add tests
[x] ~Docs:~ (i'm moving these to a separate PR)

[x] ~what is cachable?~ (#4211)
[ ] ~how 3rd extension register C addresses?~

[x] open issue for https://github.com/numba/numba/pull/4155#discussion_r294469705  (see https://github.com/numba/numba/issues/4212)

@stuartarchibald, is adding cache=True around here https://github.com/numba/numba/compare/da45a75..0fc300270ef2b552ccdc44d892f8a1d555e37901#diff-c0b639fa60749f1e3f4ec59f8c5d46a0R239 enough to test the parallel-backend x cache?

@stuartarchibald, is adding cache=True around here https://github.com/numba/numba/compare/da45a75..0fc300270ef2b552ccdc44d892f8a1d555e37901#diff-c0b639fa60749f1e3f4ec59f8c5d46a0R239 enough to test the parallel-backend x cache?

I think duplicating those lines containing parallel=True and adding cache=True to the duplicates should be sufficient.

I've added pending buildfarm to ensure this goes through the farm because the threading backend tests are too heavy for public CI and are therefore not tested.

I've tested this patch manually on some common use cases and I've also locally modified numba.tests.test_parfors to use caching and checked that it continues to behave as expected.

Thanks for the fixes, couple of typos to look at then this can be marked for merge.

Am running a smoke test on the farm for this PR now.

Nothing new has broken on the build farm in relation to this so am considering it a pass.


Restrict fields for included resource

Hi,
I stuck at some point. Let's say I download Comment resources. Each comment has it's own Author.
I create query like
var query = Query(resourceType: Comment.self, path: "comments")
query.include("author")

Now I want to fetch authors names only. Looks like restrictFieldsOfResourceType(type: to:) is what i need. The description says This method can be used to restrict fields of included resources.
I do
query.restrictFieldsOfResourceType(Author.resourceType, to: "name")

but the first cycle of this method will check if the field name is available for Comment  class (not Author)
So the question is it possible to restrict fields for included resource and what is the correct way to do this?
Thanks

Yes, this is definitely possible and restrictFieldsOfResourceType is the way to do this. I see that there is a bug in the method. It should check the fields of the included type, instead of the main type.

I pushed an update to master that should fix this.

Thanks. Will check it.

Looks like we still have an issue with that. restrictFieldsOfResourceType adds the field to the correct resource type but now JSONAPIRouter crashes when tries to add filters
// Fields
for (resourceType, fields) in query.fields {
    let keys = fields.map { fieldName in
	return keyFormatter.format(T.fieldNamed(fieldName)!)
    }
    ...
}

resourceType is correct (authors in my case), but it tries to find field in Comment resource (T.fieldNamed(fieldName)!)

Hmm, this is quite a problem since it makes restrictFieldsOfResourceType completely unusable. Unfortunately the Router doesn't have a way to access the fields of other resource types.

I'm not familiar with the code base but what if to save fields for the Query instances as
var fields: [ResourceType: [Field]]

instead of
var fields: [ResourceType: [String]]

in this case it is not necessary for the router to ask fields of the other resource type
What do you think? Any objections for this?

That's how it worked at first. The problem is that the field names in Swift do no necessarily match the JSON keys. So the Router uses a KeyFormatter to get the JSON keys from the Swift field names. So we need to store the entire Field for that.

We might be able to store the serializedName in the query, and then let the KeyFormatter format that to a key, but it requires some refactoring of the key formatting process.

I updated this is master, so it should work now.


Add RAMPUP_SENSORS=yes ENV variable to evenly start each target sensor with a delay

Upon testing canaryd with a large target set (hundreds of targets) I noticed that canaryd starts each target Sensor at the same time, after the defined DEFAULT_SAMPLE_INTERVAL. When loading hundreds of urls this can impact performance due to the high concurrency of targets executing at the same time.
When loading a list of "top 1000 urls" on a 15 second DEFAULT_SAMPLE_INTERVAL, and running dstat, before this patch I see on an m3.large AWS instance:
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
  0   0 100   0   0   0|   0     0 | 185B  482B|   0     0 | 154   211
  0   0 100   0   0   0|   0     0 |4062B 6222B|   0     0 |  95   104
  1   0 100   0   0   0|   0     0 |2034B 2636B|   0     0 | 133   146
  0   0  99   0   0   0|   0    24k|3941B 6113B|   0     0 | 123   167
  0   0 100   0   0   0|   0    36k|  52B  354B|   0     0 |  46    63
  0   0 100   0   0   0|   0     0 |3166B 5177B|   0     0 |  74    92
  0   0 100   0   0   0|   0     0 |  52B  354B|   0     0 |  31    52
  2   4  95   0   0   1|   0     0 | 114k   81k|   0     0 |3793  2831
 18  14  62   0   0   6|   0    60k|3151k  643k|   0     0 |  40k   32k
  3   0  97   0   0   1|   0  4096B|1814k   66k|   0     0 |3238  2815
 15   2  83   0   0   0|   0     0 | 665k   21k|   0     0 |1328  1235
  0   0 100   0   0   0|   0     0 |  68k 4980B|   0     0 | 235   236
  0   1 100   0   0   0|   0     0 |  19k 6142B|   0     0 | 109   140
  0   0 100   0   0   0|   0    80k| 494B  850B|   0     0 |  73    97
  0   0 100   0   0   0|   0     0 |  18k 6527B|   0     0 | 132   136
  0   0 100   0   0   0|   0     0 |  52B  354B|   0     0 | 192   209
  0   0 100   0   0   0|   0     0 |3166B 5177B|   0     0 |  74    89
  0   0 100   0   0   0|   0     0 | 353B  700B|   0     0 |  49    87
  1   0 100   0   0   0|   0    44k|3871B 5995B|   0     0 | 131   150
  1   0  99   0   0   0|   0  8192B| 324B 1910B|   0     0 |  41    54
  0   0 100   0   0   0|   0     0 |3166B 5177B|   0     0 |  72    84
  0   0 100   0   0   0|   0     0 |  92B  354B|   0     0 |  26    42
  2   3  95   0   0   1|   0     0 | 117k   83k|   0     0 |4026  2912
 19  16  61   0   0   4|   0  8192B|3164k  636k|   0     0 |  40k   31k
  3   1  96   0   0   1|   0     0 |1840k   69k|   0     0 |3378  2655
  0   0 100   0   0   0|   0     0 | 597k   19k|   0     0 |1169  1120
  0   0 100   0   0   0|   0     0 |  89k   10k|   0     0 | 330   317
  0   0 100   0   0   0|   0     0 |  12k 1123B|   0     0 |  71   105
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
  1   0 100   0   0   0|   0    92k|5720B 6716B|   0     0 | 153   215
  0   1  99   0   0   0|   0     0 | 196B 2383B|   0     0 |  35    45
  0   0 100   0   0   0|   0     0 |3166B 5177B|   0     0 | 242   228
  0   0 100   0   0   0|   0     0 |  92B  354B|   0     0 |  23    35
  0   0 100   0   0   0|   0     0 |3677B 5861B|   0     0 |  91   108
  0   0 100   0   0   1|   0    32k|1640B 1087B|   0     0 |  77   102
  0   0 100   0   0   0|   0     0 |3166B 5177B|   0     0 |  77    99
  0   0 100   0   0   0|   0     0 |  92B  354B|   0     0 |  24    40
  0   0 100   0   0   0|   0     0 |3206B 5177B|   0     0 |  81    86
  3   2  96   0   0   0|   0     0 |  82k   56k|   0     0 |4497  3771
 23  13  61   0   0   4|   0  8192B|2873k  613k|   0     0 |  36k   28k
  3   1  96   0   0   0|   0     0 |1669k   57k|   0     0 |2954  2375
  1   0  99   0   0   0|   0     0 | 399k   17k|   0     0 | 819   781

We can see CPU idle drop ~40% due to all urls being checked at the same time. I've also noticed that the reported request_time is impacted by this as well. With this patch applied, performance is smoothed out considerably:
  2   1  97   0   0   1|   0    24k| 682k   64k|   0     0 |3175  2661
  1   2  97   0   0   1|   0     0 | 295k   53k|   0     0 |2672  2124
  1   2  97   0   0   0|   0     0 | 180k   51k|   0     0 |2168  2023
  2   2  96   0   0   0|   0     0 | 198k   50k|   0     0 |2367  2167
  2   2  95   0   0   1|   0    24k| 518k   63k|   0     0 |2884  2405
  1   1  98   0   0   1|   0    36k| 260k   49k|   0     0 |2488  1911
  1   2  97   0   0   0|   0     0 | 168k   54k|   0     0 |2414  1828
  1   1  97   0   0   1|   0     0 | 463k   55k|   0     0 |2874  2187
  3   0  97   0   0   0|   0     0 | 499k   62k|   0     0 |2902  2282
  2   2  95   0   0   1|   0    20k| 314k   56k|   0     0 |2668  1949
  2   1  97   0   0   1|   0    24k| 213k   52k|   0     0 |2550  2144
  2   0  97   0   0   1|   0     0 | 330k   54k|   0     0 |2474  1979
  2   2  96   0   0   0|   0     0 | 319k   53k|   0     0 |2554  2189
  1   1  98   0   0   1|   0     0 | 404k   63k|   0     0 |3064  2495
  2   1  97   0   0   1|   0    36k| 889k   70k|   0     0 |3721  3508
  2   1  97   1   0   1|   0    24k| 735k   70k|   0     0 |3311  2980
  2   2  96   0   0   0|   0     0 | 313k   57k|   0     0 |2650  2117
  2   2  97   0   0   0|   0     0 | 187k   51k|   0     0 |2258  2311
  2   2  95   0   0   1|   0     0 | 197k   50k|   0     0 |2436  2067
  4   1  95   0   0   0|   0    24k| 457k   62k|   0     0 |2837  2325
  1   1  97   0   0   1|   0    28k| 305k   52k|   0     0 |2557  2090
  1   1  98   0   0   1|   0     0 | 189k   52k|   0     0 |2440  1928
  1   0  98   0   0   1|   0     0 | 387k   54k|   0     0 |2761  2163
  2   1  96   0   0   1|   0     0 | 597k   68k|   0     0 |3219  2538
  3   1  95   0   0   0|   0    20k| 315k   53k|   0     0 |2603  2221
  1   1  96   0   0   1|   0    24k| 255k   58k|   0     0 |2659  1993
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
  2   0  98   0   0   0|   0     0 | 341k   51k|   0     0 |2367  2130
 17   4  79   0   0   0|   0     0 | 287k   60k|   0     0 |2547  2015
  1   1  99   0   0   0|   0     0 | 617k   65k|   0     0 |3322  2846
  2   1  98   0   0   0|   0    52k| 703k   64k|   0     0 |3036  2619
  1   1  97   0   0   1|   0    40k| 647k   62k|   0     0 |3106  2721
  1   1  98   0   0   1|   0     0 | 348k   58k|   0     0 |2681  2211
  1   2  96   0   0   0|   0     0 | 236k   48k|   0     0 |2263  2095
  1   2  96   0   0   0|   0     0 | 200k   55k|   0     0 |2394  2208
  2   2  95   0   0   0|   0    44k| 502k   60k|   0     0 |2972  2370
  2   1  97   0   0   1|   0    36k| 304k   56k|   0     0 |2670  2321
  3   1  96   0   0   0|   0     0 | 214k   51k|   0     0 |2295  2135

The result is that the performance is evened out and we dont see as many spikes in local resources when all target sensors fire measurements at the same time. The cost here is that some targets can take the full DEFAULT_SAMPLE_INTERVAL to measure.
Let me know if you would want to have RAMPUP_SENSORS  accept options for 'even' vs. 'random'. Currently this only does the delays evenly, but it wouldn't be difficult to have the start delay be randomized as opposed to evenly determined off of DEFAULT_SAMPLE_INTERVAL.

Sorry for firing the PR off a bit early. I have updated the description a bit.
This should merge in cleanly with #23. If not, I will deal with it when the time comes.

Also, it might nice to move manifest into its own pkg. I can do this if you want.

+1 - this is working great over here.  Thank you very much for this contribution - I had an unpublished branch that introduced an initial random delay for each target, but it wasn't distributed like this.  I like your solution much better.
I'd gladly accept a PR breaking Manifest out.


Bug: Clang build fails on coroutine type error

Version
v2.0.230225.1
Summary
MSYS2 Clang build fails with:
C:/Users/Michel/REDACTED/cppwinrt/winrt/Windows.UI.Core.h:3496:25: error: no matching function for call to object of type 'const impl::coroutine_handle<>' (aka 'const coroutine_handle<void>')
                        handle();
                        ^~~~~~
C:/msys64/clang64/include/c++/v1/experimental/coroutine:106:10: note: candidate function not viable: 'this' argument has type 'const impl::coroutine_handle<>' (aka 'const coroutine_handle<void>'), but method is not marked const
    void operator()() { resume(); }
         ^

Reproducible example
No response
Expected behavior
No response
Actual behavior
No response
Additional comments
No response

You may be using an older or untested version. The CI build validates a few scenarios with different compilers. It may help narrow down what might be wrong:
https://github.com/microsoft/cppwinrt/actions/runs/4325498719/jobs/7551737827

It seems you are using experimental coroutines (as shown by the path to the coroutines header in the error). Experimental coroutines where only ever supported with MSVC, and unless you manually defined _RESUMABLE_FUNCTIONS_SUPPORTED, I don't think cppwinrt even attempts to use experimental coroutines on Clang.
You should be able to use C++20 coroutines however.

You need to pass -std=c++20 (or -std=gnu++20) to Clang to enable C++20.
The error is just confusing. LLVM's libc++ does have experimental/coroutine but that implementation is different from the one from the MSVC STL so it's really untested, and I don't think it's worth the trouble to try to make it compatible. There should probably be a && defined(_MSC_VER) here: https://github.com/microsoft/cppwinrt/blob/629f9e7659a7dae408606456cf8a9f05ff2f4511/strings/base_includes.h#L58
Hypothetically, if the user doesn't need to use coroutine at all, is it possible to make cppwinrt usable in C++17 without coroutine support?

Hypothetically, if the user doesn't need to use coroutine at all, is it possible to make cppwinrt usable in C++17 without coroutine support?

It used to be possible, I don't remember when that changed exactly.


Fix for @Authorized() requests with no specific permissions

This is a line in authChecker that (from what I can tell) is supposed to handle authorized requests where there are no parameters in the @Authorized decorator. It simply passes when there is a user logged in and fails if the user is undefined.
There was a typo in the code where, instead of checking how many permissions the request needs, it was checking how many permissions the user had. This was causing the authorization to always succeed when the user had 0 permissions. I made this change locally and my authorized resolvers started working.

Thanks for the PR!
This should work for simple role-based access control.  If you want to handle more complex use-cases, it might make sense to do something like FoalTS does: https://foalts.gitbook.io/docs/topic-guides/authentication-and-access-control/administrators-and-roles by creating custom method decorators.

Can you rename the commit message to follow conventional commits guidelines?
https://www.conventionalcommits.org/en/v1.0.0/#summary
Otherwise the new version will not be published.
So in your instance you’d just start the commit message with:
fix(authchecker): ____

Yep, I get off work around 4 today so I can do it then.

Fixed :)

Thanks!

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


TP-669: Remove manual WorkBasket assignment when editing.

Currently when editing a TrackedModel the user is asked which WorkBasket
to add the object to, and are offered to make a new WorkBasket if needed.
The intended usecase for now is to only allow a single WorkBasket at any
one time, in which case there is no reason to allow a choice or manual
creation.
This commit removes the interstitial page and defaults to using the current
active WorkBasket.

Are we going to manually create the initial workbasket for each environment?

Currently it makes itself when you go to the index page. Although we probably need something a bit more formative (e.g. create new workbasket on old workbasket approval). Could be part of a future PR.

https://github.com/uktrade/tamato/blob/0bff2ea/common/views.py#L31

Ah I see, I guess this is fine for now then. Might just be worth creating it in check_for_current_workbasket if there is currently none? I'm assuming that is called on the index and also before the edit page.


More frequent releases please!

Current Behavior

As of writing, the current release of tsdx is 0.12.3, which came out over 5 weeks ago, and there has since been 34 new commits, half of which have brought new or revised functionality.  This new functionality, as it has not been released, is not readily accessible to users of tsdx.
Desired Behavior

More frequent updates please!
Suggested Solution

Adopt a continuous release strategy.  When code is merged into master (and all tests are passing) a new release should be made.
If current tests are insufficient to ensure that the latest master branch is safe for release, then new tests should be added. 😀
Some discussion on automated releases can be found in #254

Who does this impact? Who is this for?

All users of tsdx.
Describe alternatives you've considered

I have tried to run tsdx directly from the github repo using npx github:jaredpalmer/tsdx create package-name however as of the time of writing this failed with the following error:
npm ERR! prepareGitDep src/index.ts(349,11): error TS2367: This condition will always return 'false' since the types '"START" | "BUNDLE_START" | "BUNDLE_END" | "END" | "ERROR"' and '"FATAL"' have no overlap.
npm ERR! prepareGitDep src/index.ts(351,24): error TS2339: Property 'error' does not exist on type 'RollupWatcherEvent'.
npm ERR! prepareGitDep   Property 'error' does not exist on type '{ code: "START"; }'.

Additional context

n/a

Seems like TSDX isn't alone here: https://github.com/jaredpalmer/razzle/issues/1159 😕
I've emailed Jared to ask to make me a collaborator here and on NPM or move TSDX to an org. We'll see if there's any progress there.

So I was added as a collaborator here and on my first day yesterday I closed 35+ issues, triaged, consolidated, labeled, etc, about 80% of open and closed issues, and closed out ~15 PRs.
Did some more triage today and merging of PRs, but unfortunately I wasn't yet added as a collaborator on NPM, so I can't yet make releases.
That being said, I did merge #544 , so you should now be able to install from GitHub without the error listed above.

Sorry I have been a bit MIA. Have been cranking  on Formik Inc. now full time and haven’t been on GitHub much. Similarly Shawn (@swyx)  is crazy busy as well. Giving contributor and publish rights to @agligur who has done an amazing job with this project over the last several months

It would be nice to have a new release indeeed

Jared gave me publishing rights yesterday so I just published v0.13.0.
Please see #254 for discussions on automated releases.
I've now triaged ~95% of all open and closed issues, have basically read through all of them. Not all are resolved yet of course, but I've closed, resolved, marked as duplicate / support / etc many. Still have 2 more PRs to review, the rest I've already reviewed or are authored by me (or are automated dependency updates).
Might start using milestones for better transparency on Roadmap, but hard to predict where/when things may land.
Have also added everyone who's contributed PRs as contributors in All Contributors (hence the 74 commits of not much substance in the commit log). Probably still a good portion of people who contributed bug reports or ideas that haven't been credited yet though. That's on backlog, but ping me with links to your contributions if you want to be credited near-term.

Dude, that's awesome.  Fantastic work.  😀

awesome work @agilgur5 - i'm not making as many react + TS libraries as I used to hence my usage of TSDX itself has slowed in recent months. But I am sure that I will be back. glad that TSDX is in good hands.