Remove ogier/pflag

We are using ogier/pflag because it was introduced in original CiscoCloud project. pflag looks like abandoned (last commit over a year ago). We should switch to official golang flags. This change could be not backward compatible because ogier uses double dash -- while golang prefers - (see this comment)

Is it possible to switch to combo cobra / viper?
It's really powerful, simple to use and with a big community.

not to mention that, opposite to #195, we can be backward compatible

I made a small comparison between viper and flag. We try to minimize dependencies we are using in the code. Viper looks nice but we don't need most of it's features Changing from ogier to viper only to have live and supported project as a dependency is pointless. I hope reducing one dash (-) from flags won't be change that will cause an outage. We can remove ogier after we introduce SSE. So we will make two changes in config at once.

feature
viper
flag
required by marathon-consul

setting defaults
✓
✓
✓

reading from JSON, TOML, YAML, HCL, and Java properties config files
✓
✗
✓

live watching and re-reading of config files (optional)
✓
✗
✗⁺

reading from environment variables
✓
✗
✗⁺

reading from remote config systems (etcd or Consul), and watching changes
✓
✗
✗⁺

reading from command line flags
✓
✓
✓

reading from buffer
✓
✗
✗

setting explicit values
✓
✗
✗

⁺ nobody requested it

So because nobody asks for a feature (which is just best practice) it's not a feature to have?
Strange mindset.
You also forgot about "readability" of code by removing the "config" object.
One big point I mention was the link with cobra who is really helpful for an app:

auto-generated documentation
simple usage
...

Of course, everything is optional and an application can live without it... but it's just today right here, we have vendoring, why not using it "for free"?

Personally, I found https://github.com/jawher/mow.cli which works best for me. You could consider it if you like.

Thanks for response. Indeed I forgot about some features of cobra/viper that we might want. I'm not familiar with this tools so I'm not a fan of it. From my perspective ogier does nothing to help us and that's why I want to remove it. Adding new dependency (outside of stdlib) means somebody need to watch it and update when there are bugs to prevent users of marathon-consul to be hit by an error in our dependencies.
On the other hand, some features would be really nice:

configuration in YAML will allow having comments in config
removing config.Config struct
reading configuration from Consul
auto generated usage and readme

Combo Viper & Cobra looks nice :)

Anny update on this? Does anybody want to prepare PR with better configs handling?


Something went wrong with hydra and omegaconf

When I run
python main.py exp_dir=exp \
               exp_name=train_24_scratch \
               data.modality=vsr \
               optimizer.lr=3e-4 \

for training, something error with hydra.
Error occus:
Error merging 'config' with schema
Key 'exp_name' not in 'FairseqConfig'
        full_key: exp_name
        reference_type=Optional[Dict[Union[str, Enum], Any]]
        object_type=FairseqConfig

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

So I run
HYDRA_FULL_ERROR=1 python main.py exp_dir=exp \
               exp_name=train_24_scratch \
               data.modality=vsr \
               optimizer.lr=3e-4 \

and it shows:
Traceback (most recent call last):
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/config_loader_impl.py", line 618, in _load_config_impl
    merged = OmegaConf.merge(schema.config, ret.config)
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/omegaconf.py", line 321, in merge
    target.merge_with(*others[1:])
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/basecontainer.py", line 331, in merge_with
    self._format_and_raise(key=None, value=None, cause=e)
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/base.py", line 95, in _format_and_raise
    format_and_raise(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/_utils.py", line 629, in format_and_raise
    _raise(ex, cause)
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/_utils.py", line 610, in _raise
    raise ex  # set end OC_CAUSE=1 for full backtrace
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/basecontainer.py", line 329, in merge_with
    self._merge_with(*others)
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/basecontainer.py", line 347, in _merge_with
    BaseContainer._map_merge(self, other)
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/basecontainer.py", line 314, in _map_merge
    dest[key] = src._get_node(key)
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/dictconfig.py", line 258, in __setitem__
    self._format_and_raise(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/base.py", line 95, in _format_and_raise
    format_and_raise(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/_utils.py", line 629, in format_and_raise
    _raise(ex, cause)
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/omegaconf/_utils.py", line 610, in _raise
    raise ex  # set end OC_CAUSE=1 for full backtrace
omegaconf.errors.ConfigKeyError: Key 'exp_name' not in 'FairseqConfig'
        full_key: exp_name
        reference_type=Optional[Dict[Union[str, Enum], Any]]
        object_type=FairseqConfig
The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "main.py", line 74, in <module>
    main()
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/main.py", line 32, in decorated_main
    _run_hydra(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/utils.py", line 346, in _run_hydra
    run_and_report(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/utils.py", line 201, in run_and_report
    raise ex
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/utils.py", line 198, in run_and_report
    return func()
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/utils.py", line 347, in <lambda>
    lambda: hydra.run(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/hydra.py", line 100, in run
    cfg = self.compose_config(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/hydra.py", line 507, in compose_config
    cfg = self.config_loader.load_configuration(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/config_loader_impl.py", line 151, in load_configuration
    return self._load_configuration(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/config_loader_impl.py", line 224, in _load_configuration
    job_cfg, job_cfg_load_trace = self._load_primary_config(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/config_loader_impl.py", line 819, in _load_primary_config
    ret, load_trace = self._load_config_impl(
  File "/home/luosongtao/miniconda3/envs/autoavsr/lib/python3.8/site-packages/hydra/_internal/config_loader_impl.py", line 628, in _load_config_impl
    raise ConfigCompositionException(
hydra.errors.ConfigCompositionException: Error merging 'config' with schema

Any help to resolve this would be greatly appreciated!

The latest version of fairseq (0.12.2) conflicts with the configuration files of Hydra. Downgrading to an earlier version of fairseq (0.9.0) can resolve this issue.

The latest version of fairseq (0.12.2) conflicts with the configuration files of Hydra because fairseq has its own configuration file. To resolve this, you can rename the "conf/config.yaml" file to a different name.

Hi @jinchiniao, thank you for letting me know the conflicts. I tested the development version. I was wondering if you installed it using pip install?

I followed the instructions in the README to set up the environment. This means that I compiled fairseq from source code and also installed Hydra using pip.

Hello! I am trying to run the training on a custom dataset and also experiencing this issue.
The file cstm.yaml is placed in here auto_avsr/conf/data/dataset and looks like this:
defaults:

self
root: "/content/drive/MyDrive/sepedi/data/preprocess_datasets"
label_dir: "labels"
train_file: "train_labels.csv"
val_file: "val_labels.csv"
test_file: "test_labels.csv"

As suggested above, I tried renaming the conf/config.yaml file. However, when I run:
!python main.py exp_dir=exp
exp_name=trainaudio
data.modality=audio
ckpt_path='content/drive/MyDrive/LRS3_A_WER1.0/model.pth'
+data/dataset=cstm
trainer.num_nodes=1
I get:
Error merging data/dataset=cstm
Key 'defaults' not in 'FairseqConfig'
full_key: defaults
reference_type=Optional[FairseqConfig]
object_type=FairseqConfig
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
When running:
%env HYDRA_FULL_ERROR=1
!python main.py exp_dir=exp
exp_name=trainaudio
data.modality=audio
ckpt_path='content/drive/MyDrive/LRS3_A_WER1.0/model.pth'
+data/dataset=cstm
trainer.num_nodes=1
I get:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/config_loader_impl.py", line 720, in _merge_config
ret = OmegaConf.merge(cfg, loaded_cfg)
File "/usr/local/lib/python3.10/dist-packages/omegaconf/omegaconf.py", line 321, in merge
target.merge_with(*others[1:])
File "/usr/local/lib/python3.10/dist-packages/omegaconf/basecontainer.py", line 331, in merge_with
self._format_and_raise(key=None, value=None, cause=e)
File "/usr/local/lib/python3.10/dist-packages/omegaconf/base.py", line 95, in _format_and_raise
format_and_raise(
File "/usr/local/lib/python3.10/dist-packages/omegaconf/_utils.py", line 629, in format_and_raise
_raise(ex, cause)
File "/usr/local/lib/python3.10/dist-packages/omegaconf/_utils.py", line 610, in _raise
raise ex  # set end OC_CAUSE=1 for full backtrace
File "/usr/local/lib/python3.10/dist-packages/omegaconf/basecontainer.py", line 329, in merge_with
self._merge_with(*others)
File "/usr/local/lib/python3.10/dist-packages/omegaconf/basecontainer.py", line 347, in _merge_with
BaseContainer._map_merge(self, other)
File "/usr/local/lib/python3.10/dist-packages/omegaconf/basecontainer.py", line 314, in _map_merge
dest[key] = src._get_node(key)
File "/usr/local/lib/python3.10/dist-packages/omegaconf/dictconfig.py", line 258, in setitem
self._format_and_raise(
File "/usr/local/lib/python3.10/dist-packages/omegaconf/base.py", line 95, in _format_and_raise
format_and_raise(
File "/usr/local/lib/python3.10/dist-packages/omegaconf/_utils.py", line 629, in format_and_raise
_raise(ex, cause)
File "/usr/local/lib/python3.10/dist-packages/omegaconf/_utils.py", line 610, in _raise
raise ex  # set end OC_CAUSE=1 for full backtrace
omegaconf.errors.ConfigKeyError: Key 'defaults' not in 'FairseqConfig'
full_key: defaults
reference_type=Optional[FairseqConfig]
object_type=FairseqConfig
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/content/auto_avsr/main.py", line 74, in
main()
File "/usr/local/lib/python3.10/dist-packages/hydra/main.py", line 32, in decorated_main
_run_hydra(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/utils.py", line 346, in _run_hydra
run_and_report(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/utils.py", line 201, in run_and_report
raise ex
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/utils.py", line 198, in run_and_report
return func()
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/utils.py", line 347, in
lambda: hydra.run(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/hydra.py", line 100, in run
cfg = self.compose_config(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/hydra.py", line 507, in compose_config
cfg = self.config_loader.load_configuration(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/config_loader_impl.py", line 151, in load_configuration
return self._load_configuration(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/config_loader_impl.py", line 256, in _load_configuration
cfg = self._merge_defaults_into_config(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/config_loader_impl.py", line 805, in _merge_defaults_into_config
hydra_cfg = merge_defaults_list_into_config(hydra_cfg, user_list)
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/config_loader_impl.py", line 777, in merge_defaults_list_into_config
merged_cfg = self._merge_config(
File "/usr/local/lib/python3.10/dist-packages/hydra/_internal/config_loader_impl.py", line 724, in _merge_config
raise ConfigCompositionException(
hydra.errors.ConfigCompositionException: Error merging data/dataset=cstm
I am running this on colab due to issues installing fairseq editable locally.
Thank you in advance!

Hi
Thank you for sharing the code.
For  Installing additional packages in step 3.4 I got this error:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
ipython 7.34.0 requires jedi>=0.16, which is not installed.
arviz 0.15.1 requires setuptools>=60.0.0, but you have setuptools 59.5.0 which is incompatible.
cvxpy 1.3.2 requires setuptools>65.5.1, but you have setuptools 59.5.0 which is incompatible.
fairseq 0.12.2 requires hydra-core<1.1,>=1.0.7, but you have hydra-core 1.3.0 which is incompatible.
fairseq 0.12.2 requires omegaconf<2.1, but you have omegaconf 2.3.0 which is incompatible.
Successfully installed GitPython-3.1.32 antlr4-python3-runtime-4.9.3 av-10.0.0 docker-pycreds-0.4.0 gitdb-4.0.10 hydra-core-1.3.0 lightning-utilities-0.9.0 omegaconf-2.3.0 pathtools-0.1.2 pyDeprecate-0.3.1 pytorch-lightning-1.5.10 sentencepiece-0.1.99 sentry-sdk-1.29.2 setproctitle-1.3.2 setuptools-59.5.0 smmap-5.0.0 torchmetrics-1.0.3 wandb-0.15.8
Can you help me about this?

Hello,
While running the training code, I encountered the following error:
python train.py
exp_dir="/root/autodl-tmp/pth/"
exp_name="gaofeiPTH"
data.modality="video"
data.dataset.root_dir="/root/autodl-tmp/auto_avsr"
data.dataset.train_file="train_cstm.csv"
sys:1: UserWarning:
'config' is validated against ConfigStore schema with the same name.
This behavior is deprecated in Hydra 1.1 and will be removed in Hydra 1.2.
See https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/automatic_schema_matching for migration instructions.
/root/miniconda3/lib/python3.8/site-packages/hydra/main.py:94: UserWarning:
'config' is validated against ConfigStore schema with the same name.
This behavior is deprecated in Hydra 1.1 and will be removed in Hydra 1.2.
See https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/automatic_schema_matching for migration instructions.
_run_hydra(
Error merging 'config' with schema
Key 'exp_dir' not in 'FairseqConfig'
full_key: exp_dir
object_type=FairseqConfig
I was wondering if you have come across a similar issue before. Could this be caused by a version conflict between fairseq, hydra-core, and omegaconf? My package versions are:
hydra-core==1.3.2
omegaconf==2.3.0
fairseq==0.12.2
If you have any insights, I would really appreciate your help in understanding what might be causing this problem.
Thank you in advance for your time and assistance.

The latest fairseq (0.12.2) has configuration conflicts with Hydra due to its own config files. If renaming files doesn't help, try downgrading Hydra, OmegaConf, or using a different fairseq version.


Added callback on success

I find that I need a callback on both failure and success for asynchronous usage.

Yep! Thanks for this.


Dragon can be flashed

Description
Dragon can be flashed, making the dragon completely blind because he can't see anything now for a good while.


Watch for config changes

I'm submitting a feature request
Webpack version:
2.x
Please tell us about your environment:
OSX 10.x
Current behavior:
I'm not sure if this was discussed before, but it's one of the pain point for me in webpack workflow.
When config / config's dep is updated — hot reloadable server (or watch mode) must be restarted manually. Usually this hot reloadable server is not stand-alone process, but part of the bigger task or even lives inside docker container. And in case of config related change — the only way to pick this up is to restart everything.
Expected/desired behavior:
It'd be cool if webpack could track such changes and rebuild everything from scratch w/o killing current process.
What is the motivation / use case for changing the behavior?
It'll make easier:

work on webpack config setup
work w/ loader's configs, eg postcss plugin's options (js vars etc)

Unfortunately, a webpack config file is not necessarily pure. Automatically reloading impure config files can result in pain and suffering.
Plugins may also want to run at hook points that happen before the watch-run loop, so if those plugins need reloading, they will never be called again, unless webpack destroys and re-creates the compiler every time.
Even if you write things as "pure"ly as possible for your export, if you require anything at all besides require('webpack') inside the config, it's no longer reloadable.

@Kovensky Agreed. The case when webpack destroys and recreates everything from scratch on change in config / its dep is the behaviour that solves all the issues w/ min pain and this is what I meant initially. I guess this part was confusing:
... and reload config in the same manner as it tracks app deps in watch mode.

Not in the same manner, but just tracks changes and rebuilds everything from scratch. I'll update the issue.
Personally I don't care if it'll take time, restarting global task or docker will take even more time. If I changed something in config — well it means that I want to see the result of this change and next thing that I'll do is restart, so it might make sense to do this internally.

FWIW, it's fairly simple to patch something together yourself using Chokidar. Here's my go at it. That's for webpack 1 so it webpack-dev-server may need a little patching to work around a bug, but it works.

@bebraw that would deal with the webpack.config.js itself, but the wishlist includes the dependencies

@Kovensky Yeah, that's a harder problem for sure. npm-install-webpack-plugin might be worth studying in detail.

The problem with configuration dependencies is that some of those are implicit (think loaders). It would be an easier problem with explicit imports. Now it's going to get kind of tricky to figure out what changed if I'm understanding right.

Another workaround, using nodemon, is described in https://github.com/webpack/webpack-dev-server/issues/440#issuecomment-205757892

The nodemon trick works great. You can make it work with webpack 2 env like this ´  "start": "nodemon --watch webpack.config.js --exec "webpack-dev-server --env development"",`.
The browser will still cache some bits like html-webpack-plugin title, but it works well enough for it to be worthwhile.
I guess ideally WDS should force a hard refresh if this functionality is implemented there.

Moved to https://github.com/webpack/webpack-cli/issues/15.

I'm curious why this was moved to webpack/webpack-cli#15
Isn't in the right place and it should actually be a part of webpack or maybe even webpack/watchpack?
This idea has been request in multiple threads and just tracking down a solution is like Alice falling down the rabbit hole into wonderland. It appears to eventually have been added to the webpack-cli but then removed as of a few weeks ago. Then re-added, but with the wrong implementation spec so that it no longer accomplished the same thing as the nodemon hack.
I am trying to implement the nodemon hack with a Phoenix app... wish me luck.

@owenstrevor Webpack doesn't come with a cli as it was separated from the core. That said, you could be right in that it's a core feature (esp. watchpack) and likely it requires core level tweaks in webpack itself (reactive config). It could be a potentially big change. That's why the external hacks (i.e. nodemon) as they don't have to change webpack itself fundamentally.

Thanks for the quick reply @bebraw.
I totally understand what you are saying, and how it could be a potentially big change. My confusion is more around how the request got moved around from one place to another, to an absurd degree.
Took me a little while but I got it nodemon working and it does the job well. Thanks again.


Service is broken (for v2/ie11 at least)

What

https://cdn.polyfill.io/v2/polyfill.js?features=default,fetch is not returning the right content for ie11 (it returns basically nothing, though appears to be detecting that it needs to return something rather than nothing)
Details

It looks like it detects that it needs to return things, but then doesn't.
$ curl 'https://cdn.polyfill.io/v2/polyfill.js?features=default,fetch' -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
/* Polyfill service v3.25.1
 * For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
 *
 * Features requested: default,fetch
 *
 * - Array.of, License: MIT (required by "default")
 * - Array.prototype.fill, License: CC0 (required by "default")
 * - Element.prototype.matches, License: CC0 (required by "Element.prototype.closest", "default")
 * - Element.prototype.closest, License: CC0 (required by "default")
 * - Event, License: CC0 (required by "CustomEvent", "default")
 * - CustomEvent, License: CC0 (required by "default")
 * - Node.prototype.contains, License: CC0 (required by "default")
 * - Number.isFinite, License: MIT (required by "Array.from", "default")
 * - Number.isNaN, License: MIT (required by "Set", "default")
 * - Object.assign, License: CC0 (required by "Array.from", "_ArrayIterator", "_Iterator", "default")
 * - Object.setPrototypeOf, License: MIT (required by "Array.from", "_ArrayIterator", "default")
 * - Promise, License: MIT (required by "fetch")
 * - String.prototype.endsWith, License: CC0 (required by "default")
 * - String.prototype.includes, License: CC0 (required by "Array.from", "_ArrayIterator", "String.prototype.contains", "default")
 * - String.prototype.contains, License: CC0 (required by "Array.from", "_ArrayIterator", "default")
 * - String.prototype.startsWith, License: CC0 (required by "default")
 * - Symbol, License: MIT (required by "Array.from", "_ArrayIterator", "_Iterator", "Symbol.toStringTag", "default")
 * - Symbol.iterator, License: MIT (required by "Array.from", "_ArrayIterator", "_Iterator", "default")
 * - Symbol.species, License: MIT (required by "Set", "default")
 * - Map, License: CC0 (required by "default")
 * - Set, License: CC0 (required by "default")
 * - Symbol.toStringTag, License: MIT (required by "Array.from", "_ArrayIterator", "_Iterator", "default")
 * - URL, License: CC0 (required by "default")
 * - _DOMTokenList, License: ISC (required by "DOMTokenList", "default")
 * - DOMTokenList, License: CC0 (required by "Element.prototype.classList", "default")
 * - Element.prototype.classList, License: ISC (required by "default")
 * - _Iterator, License: MIT (required by "Array.from", "_ArrayIterator", "default")
 * - _ArrayIterator, License: MIT (required by "Array.from", "default")
 * - Array.from, License: CC0 (required by "default")
 * - _mutation, License: CC0 (required by "Element.prototype.replaceWith", "default")
 * - DocumentFragment.prototype.append, License: CC0 (required by "default")
 * - DocumentFragment.prototype.prepend, License: CC0 (required by "default")
 * - Element.prototype.after, License: CC0 (required by "default")
 * - Element.prototype.append, License: CC0 (required by "default")
 * - Element.prototype.before, License: CC0 (required by "default")
 * - Element.prototype.prepend, License: CC0 (required by "default")
 * - Element.prototype.remove, License: CC0 (required by "default")
 * - Element.prototype.replaceWith, License: CC0 (required by "default")
 * - fetch, License: MIT */

(function(self, undefined) {
})
('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});

I haven't changed anything on my end recently and this had all been working up until sometime today (or maybe a day or so ago, I only noticed today)

@ubergeek42 thank you for the report -- this looks like a misbehaving configuration - i've reset the cache and all looks to be working again based on my tests 👍
How does it look from your side?

@JakeChampion Looks to be good and working properly here. Thanks for fixing it so quickly!


Add support for different formats

Add a 'format' option, so not only Turtle (.ttl) files can be used.
The read function that is used, supports the formats 'RDF/XML', 'N-TRIPLE', 'TURTLE' (or 'TTL') and 'N3'.
It looks like Jena does not care about the format though. When the server is started with arguments test.ttl --format rdf/xml, the Turtle file is read succesfully and the server works.

Interesting, thanks!
However, if Jena doesn't care, can we maybe just drop the --format and have it autodetected? Then it just supports all.

That is a very good point.

Ah but I didn't necessarily mean closing 🙂 We can still keep the functionality in and not bind as explicitly to Turtle, yet even without --format.


Incompatible function pointer type casts

Some compiler tools and instrumentation like Control Flow Integrity and Emscripten require that function pointers only call functions that have types matching the function pointer type. In enabling Control Flow Integrity for Chrome, I've run across an instance in LCMS that calls some functions with two different function pointer types making it difficult to fix this error. In particular, function pointers are called as both _cmsInterpFn16 (from struct cmsInterpFunction field Lerp16) and _cmsOPTeval16Fn (cast in the call to _cmsPipelineSetOptimizationParameters from OptimizeByResampling). These types [1] differ in the third argument's pointer type. To fix, one of the types could be eliminated and casts applied where necessary to accommodate.
[1]
typedef void (* _cmsInterpFn16)(register const cmsUInt16Number Input[],
                                register cmsUInt16Number Output[],
                                register const struct _cms_interp_struc* p);

typedef void     (* _cmsOPTeval16Fn)(register const cmsUInt16Number In[],
                                     register cmsUInt16Number Out[],
                                     register const void* Data);

Hi,
From the ISO/IEC 9899:TC3 (c99) spec:
"<IP_ADDRESS> Pointers
1 A pointer to void may be converted to or from a pointer to any incomplete or object
type. A pointer to any incomplete or object type may be converted to a pointer to void
and back again; the result shall compare equal to the original pointer."
Maybe I'm wrong on this, but it seems to me that both function pointers should be compatible  because the above requirement. Please let me know if this is not the case.

Later on in <IP_ADDRESS>:
8 A pointer to a function of one type may be converted to a pointer to a function of another
type and back again; the result shall compare equal to the original pointer. If a converted
pointer is used to call a function whose type is not compatible with the pointed-to type,
the behavior is undefined.

This is checked by UBSan -fsanitize=function on a limited set of platforms.

Sure, that is the point.The spec says "compatible", and because point 1 function parameters should be compatible. I didn't get any complaint from lints until now.

Convertibility and compatibility are different in the standard. For example, per <IP_ADDRESS>p5/p6 void* is convertible to size_t and back. However, <IP_ADDRESS>p2 states that pointers are compatible if the types they point to are compatible, but void is not compatible with a struct.
This is a common form of UB that generally does what you expect so I'm not surprised that linters have not looked for it. This is an issue for CFI/emscripten because they exploit type information to optimize their respective implementations.

Fine, I'm adding this in the todo list for 2.10.
I released 2.9 one week ago, so it will take some time. About a year, usually.
Thanks for reporting.

Now it is fixed.


cffi and _cffi_backend version mismatch after condacolab.install() and kernel relaunch

See cffi-bug colab notebook.
There are several resources related to this:

https://stackoverflow.com/questions/43325110/exception-version-mismatchcffi
https://stackoverflow.com/questions/52456379/pip-version-mismatch-in-venv
https://stackoverflow.com/questions/68592184/error-version-of-cffi-python-package-mismatch
https://stackoverflow.com/questions/67630525/version-mismatch-this-is-the-cffi-rapids-on-colab

In other code:
!conda install -c sgbaird mat_discover
from mat_discover.mat_discover_ import Discover

It was the source of the following error
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-21-1873c4667230> in <module>()
----> 1 from mat_discover.mat_discover_ import Discover

15 frames
/usr/local/lib/python3.7/site-packages/mat_discover/mat_discover_.py in <module>()
     40 # from sklearn.decomposition import PCA
     41
---> 42 import umap
     43 import hdbscan
     44

/usr/local/lib/python3.7/site-packages/umap/__init__.py in <module>()
      1 from warnings import warn, catch_warnings, simplefilter
----> 2 from .umap_ import UMAP
      3
      4 try:
      5     with catch_warnings():

/usr/local/lib/python3.7/site-packages/umap/umap_.py in <module>()
     30 import umap.distances as dist
     31
---> 32 import umap.sparse as sparse
     33
     34 from umap.utils import (

/usr/local/lib/python3.7/site-packages/umap/sparse.py in <module>()
     10 import numpy as np
     11
---> 12 from umap.utils import norm
     13
     14 locale.setlocale(locale.LC_NUMERIC, "C")

/usr/local/lib/python3.7/site-packages/umap/utils.py in <module>()
     37
     38
---> 39 @numba.njit("i4(i8[:])")
     40 def tau_rand_int(state):
     41     """A fast (pseudo)-random number generator.

/usr/local/lib/python3.7/site-packages/numba/core/decorators.py in wrapper(func)
    219             with typeinfer.register_dispatcher(disp):
    220                 for sig in sigs:
--> 221                     disp.compile(sig)
    222                 disp.disable_compile()
    223         return disp

/usr/local/lib/python3.7/site-packages/numba/core/dispatcher.py in compile(self, sig)
    907                 with ev.trigger_event("numba:compile", data=ev_details):
    908                     try:
--> 909                         cres = self._compiler.compile(args, return_type)
    910                     except errors.ForceLiteralArg as e:
    911                         def folded(args, kws):

/usr/local/lib/python3.7/site-packages/numba/core/dispatcher.py in compile(self, args, return_type)
     77
     78     def compile(self, args, return_type):
---> 79         status, retval = self._compile_cached(args, return_type)
     80         if status:
     81             return retval

/usr/local/lib/python3.7/site-packages/numba/core/dispatcher.py in _compile_cached(self, args, return_type)
     91
     92         try:
---> 93             retval = self._compile_core(args, return_type)
     94         except errors.TypingError as e:
     95             self._failed_cache[key] = e

/usr/local/lib/python3.7/site-packages/numba/core/dispatcher.py in _compile_core(self, args, return_type)
    109                                       args=args, return_type=return_type,
    110                                       flags=flags, locals=self.locals,
--> 111                                       pipeline_class=self.pipeline_class)
    112         # Check typing error if object mode is used
    113         if cres.typing_error is not None and not flags.enable_pyobject:

/usr/local/lib/python3.7/site-packages/numba/core/compiler.py in compile_extra(typingctx, targetctx, func, args, return_type, flags, locals, library, pipeline_class)
    603     """
    604     pipeline = pipeline_class(typingctx, targetctx, library,
--> 605                               args, return_type, flags, locals)
    606     return pipeline.compile_extra(func)
    607

/usr/local/lib/python3.7/site-packages/numba/core/compiler.py in __init__(self, typingctx, targetctx, library, args, return_type, flags, locals)
    307         # Make sure the environment is reloaded
    308         config.reload_config()
--> 309         typingctx.refresh()
    310         targetctx.refresh()
    311

/usr/local/lib/python3.7/site-packages/numba/core/typing/context.py in refresh(self)
    154         Useful for third-party extensions.
    155         """
--> 156         self.load_additional_registries()
    157         # Some extensions may have augmented the builtin registry
    158         self._load_builtins()

/usr/local/lib/python3.7/site-packages/numba/core/typing/context.py in load_additional_registries(self)
    689
    690     def load_additional_registries(self):
--> 691         from . import (
    692             cffi_utils,
    693             cmathdecl,

/usr/local/lib/python3.7/site-packages/numba/core/typing/cffi_utils.py in <module>()
     17 try:
     18     import cffi
---> 19     ffi = cffi.FFI()
     20 except ImportError:
     21     ffi = None

/usr/local/lib/python3.7/dist-packages/cffi/api.py in __init__(self, backend)
     54                     raise Exception("Version mismatch: this is the 'cffi' package version %s, located in %r.  When we import the top-level '_cffi_backend' extension module, we get version %s, located in %r.  The two versions should be equal; check your installation." % (
     55                         __version__, __file__,
---> 56                         backend.__version__, backend.__file__))
     57                 else:
     58                     # PyPy

Exception: Version mismatch: this is the 'cffi' package version 1.14.6, located in '/usr/local/lib/python3.7/dist-packages/cffi/api.py'.  When we import the top-level '_cffi_backend' extension module, we get version 1.14.5, located in '/usr/local/lib/python3.7/site-packages/_cffi_backend.cpython-37m-x86_64-linux-gnu.so'.  The two versions should be equal; check your installation.

This should have been fixed by #31, since we no longer leave the system Python on path. I'll close but feel free to add details here if needed!


Email validator in flutter

Article checklist
Pre-submission checks

Please ensure that you have only one open topic suggestion (issue) + in-review article (linked pull request) at a time. This will ensure that we complete the review process in a timely manner from inception to publishing

If you have not already, please go over our Resources Page for more tips and tricks on how to improve your overall technical writing so reviews are swifter, increase the chance of a payout and provide more value to our readers.

For first-time contributors and for more details on our submission guidelines, see our Contributing Guidelines.

Formatting and structure checks

[x] Have you used the correct folder and file structure? - see Contribution Guidelines

[x] Is your article properly formatted in Markdown? - see Github Markdown guide

[x] Have you used our preferred heading structure? - H3 (###) and up

[x] Does your article follow any of the suggested structure formats? - see example formats

[x] Is your article over 750 words? - Tool: Wordcounter.net

[x] Is the article you are submitting an in-depth and unique article? Does it go beyond what is in the official docs and what is covered in other blog sites. See these articles as examples.

[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.

[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.

[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid - Grammarly
[x] Please place your article through a 3rd party plagiarism checker. We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide
[x] Have you checked your code runs correctly and you've highlighted all necessary dependencies for installation?
[x] Are the software programs and packages you're highlighting in your article up to date, using current versions and not deprecated?

Topic suggestion this closes

Remove the backticks and add the issue number below to link and close your Topic Suggestion (issue) when your article has been published (PR has been merged). See this video for more details.

`This closes #3932

Finally, delete the article checklist notes in blockquotes and submit your PR. We look forward to reviewing your article.

@jerimkaura @Kayere I have polished the article

@jerimkaura could you take  up this PR. It appears you were reviewing it before. Thanks

plagiarism check done :heavy_check_mark:

@jerimkaura @Kayere
Can we get a status on this PR.
If we need to get this re-assigned we can do so 👍

@joni-kano
Good afternoon and thank you for submitting your article for publishing. With the recent increase in article volume out team has been working diligently to review every article.
Your article has been entered into our queue and should be reviewed (and published pending any changes) as soon as a peer reviewer is finished with the ones in the queue before it. 🚀
Thank you.

Peer reviewer pinged via Slack as well :thumb

Noted with thanks.i am working on it
On Thu, Dec 2, 2021, 12:18 AM Jerim Kaura @.***> wrote:

@.**** requested changes on this pull request.
Hello @joni-kano https://github.com/joni-kano
A quick one. Take the corrections I have suggested in the comments and
address them in detail. Remember it is just about a working code, we need
to have a great flow and easy-to-read content as well.
Your article seems to have a lot of readability issues. Furnish it then
ping me here or on slack @jerimkaura https://github.com/jerimkaura
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760569141
:

+Email validator is a Flutter package that checks whether an email is valid or not. It is not based on regular expression, but rather checks if the email entered is linked to a reliable domain. Domains that exist are Gmail, Yahoo, Outlook, among others.
+
+### Key takeaways
+- What is an email validator?
+- Explaining how an email validator works.
+- Create a simple app to show email validator.
+- Understand the implementation of email validator.

+### Working mechanism of email validator
+Email validator runs a check on the emails through a process called swift process. This process detects typographical errors or deliberate mistakes. Furthermore, it helps to organize and clean all email addresses in a flutter application.
+
+For this reason, it protects the email sender score while maximizing the efficiency of the flutter application. The key concepts from the use of this package are validity, risk, and the invalidity of any email address.
+
+This package consists of a class and a function.
+
+The constructor for this class is pretty simple: Create a new instance of this class and set the validator type to either 1 or 2 (defaults to 1). The constructor should pass a string and an array of strings for validation.The arguments are also key factors.
Explain type 1 and 2 and what each type does.
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760569796
:

url: /engineering-education/flutter-email-validator/hero.png

alt: Flutter Email Validator Hero Image
+---
+Email validator is a Flutter package that checks whether an email is valid or not. It is not based on regular expression, but rather checks if the email entered is linked to a reliable domain. Domains that exist are Gmail, Yahoo, Outlook, among others.
+
+### Key takeaways
+- What is an email validator?
+- Explaining how an email validator works.
+- Create a simple app to show email validator.
+- Understand the implementation of email validator.

+### Working mechanism of email validator
+Email validator runs a check on the emails through a process called swift process. This process detects typographical errors or deliberate mistakes. Furthermore, it helps to organize and clean all email addresses in a flutter application.
+
+For this reason, it protects the email sender score while maximizing the efficiency of the flutter application. The key concepts from the use of this package are validity, risk, and the invalidity of any email address.
Explain the key concepts
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760570869
:

+The first argument is self-explanatory. It is just a boolean that specifies whether we are using the @.***format ordomain.com` as our string to validate.

+The second argument allows you to pass an array of strings that are valid domains for the email. This argument is only necessary if the string passed in as our first argument is in domain.com format; otherwise, it can be omitted.
+
+If either of the first two arguments contains an error, then false should be returned. Otherwise, true should be returned, and our string should be validated.
Where are the arguments? Explain them in detail with a proper example to
enable understanding of the concept.
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760571249
:

+1. Makes sure the user enters a correctly formatted email address while signing up.
+2. Ensures emails are not on the blocklist and are not sent to blacklisted email addresses or domains.
+3. Alerts if the username is available on the website during the registration process.
+4. You can add it as a pre-requisite while submitting the app to the app store and google play store for review purposes.

Explain how each benefit is acheived.
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760572960
:

+- Address CaptureSingle-line Address Verification Software.
+- Address VerifyAddress Enhancement.
+- Data CleanseBatch Data Cleanse & Maintenance.
+- Bank VerificationBank Account, Sort Code & IBAN Validation.
+- GeocodeLongitude & Latitude Data.
+- Email ValidationCheck and Verify Email Addresses.
+- This example brings us to the understanding usage of this API for serverless flutter applications.

Provide a detailed explanation of how email validation works in each of
the specified areas. What module of the system implemented it. At what
level does it work. For instance, answer the question How is GeocodeLongitude
& Latitude Data applying this concept?
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760573582
:

+1. Makes sure the user enters a correctly formatted email address while signing up.
+2. Ensures emails are not on the blocklist and are not sent to blacklisted email addresses or domains.
+3. Alerts if the username is available on the website during the registration process.
+4. You can add it as a pre-requisite while submitting the app to the app store and google play store for review purposes.

+### Areas of application
+- Address CaptureSingle-line Address Verification Software.
+- Address VerifyAddress Enhancement.
+- Data CleanseBatch Data Cleanse & Maintenance.
+- Bank VerificationBank Account, Sort Code & IBAN Validation.
+- GeocodeLongitude & Latitude Data.
+- Email ValidationCheck and Verify Email Addresses.
+- This example brings us to the understanding usage of this API for serverless flutter applications.
+
+### Benefits of using Email Validator.
+Email validator works better in that it is a more accurate validation tool. In addition to validating email addresses, it also checks that domains are not likely to exist soon.
 And will it determine that a domain will not
exist soon?
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760574381
:

+3. Alerts if the username is available on the website during the registration process.
+4. You can add it as a pre-requisite while submitting the app to the app store and google play store for review purposes.

+### Areas of application
+- Address CaptureSingle-line Address Verification Software.
+- Address VerifyAddress Enhancement.
+- Data CleanseBatch Data Cleanse & Maintenance.
+- Bank VerificationBank Account, Sort Code & IBAN Validation.
+- GeocodeLongitude & Latitude Data.
+- Email ValidationCheck and Verify Email Addresses.
+- This example brings us to the understanding usage of this API for serverless flutter applications.
+
+### Benefits of using Email Validator.
+Email validator works better in that it is a more accurate validation tool. In addition to validating email addresses, it also checks that domains are not likely to exist soon.
+
+Domain Validation Tool is a free service that allows you to search up to 500 domains from your list for availabilitydor and immediate results. It's the most potent domain availability checker available on the internet today. You can quickly check up to 500 domains from your list for availability and receive immediate results.
This is the first time you mention this in the article and it looks new.
How will a reader connect it to the parent concept being discussed?
In content/articles/email-validator-in-flutter/index.md
https://github.com/section-engineering-education/engineering-education/pull/5116#discussion_r760576181
:

+Email validator is one of the best ways to confirm emails in Flutter. It helps to reduce the invalid emails that users may use to sign up and help one easily maintain the available emails.

+I recommend any programmer to use any flutter application due to its' compatibility with all levels of flutter application, be it flutter web application, flutter mobile application, or any other application.
A conclusion should summarize your article as well. What can be learned
from your article is the conclusion here.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/pull/5116#pullrequestreview-820802928,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANT5VXJHOA56AIZAK46PAYLUO2GK7ANCNFSM5ILTDCCQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@jerimkaura I have revised the article as you would want

@jerimkaura I have revised the article as you would want

@joni-kano
Please be sure you are going over the entire article as our peer reviewers are not responsible to point out every mistake - that is the authors responsibility.
If any more major revisions are needed - we will be closing this PR asap. 👀
cc @jerimkaura

Acknowledged.
On Sat, Dec 4, 2021, 12:15 AM hectorkambow @.***> wrote:

@jerimkaura https://github.com/jerimkaura I have revised the article as
you would want
@joni-kano https://github.com/joni-kano
Please be sure you are going over the entire article as our peer reviewers
are not responsible to point out every mistake - that is the authors
responsibility.
If any more major revisions are needed - we will be closing this PR asap.
👀
cc @jerimkaura https://github.com/jerimkaura
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/pull/5116#issuecomment-985832577,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANT5VXKFWW47NMIJFP7F6VTUPEXNXANCNFSM5ILTDCCQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

reviewer pinged via slack

Hello @joni-kano
Seem like your article still has a lot of readability issues. I will be closing this PR. Feel free to write on another topic or polish this until it's ready for publishing.

I will polish this until it's ready
On Mon, Dec 6, 2021, 9:56 PM Jerim Kaura @.***> wrote:

Closed #5116
https://github.com/section-engineering-education/engineering-education/pull/5116
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/pull/5116#event-5722674657,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANT5VXPID7FPY2UKPIGF7TTUPUBONANCNFSM5ILTDCCQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Bookshelf doesn't consider timezone when wrapping date in JS Date object

this().query(function(qb) {
    qb.where({
        'company_id': company.id,
    })
}).fetchAll({
    withRelated: [{
        'appointments': function(qb) {
           qb.select(db.knex.raw('"id", ("start_date"::timestamptz at time zone \'Europe/Moscow\')'));
        }
    }]
});

when specifying time zone PostgreSQL returns date-time without time zone like this "2016-12-22 12:22:00"
Then as far as I understand bookshelf take that date and wraps in JS date object with time zone that is set on a server.
So let's say my server time zone is "UTC" and in database I have field of type timestamp with time zone with value "2016-12-22 09:22:00+00", after running that query I get date in this format "Tue Dec 20 2016 05:55:00 GMT+0000 (UTC)". Actual date and time seems to be correct but time zone not.

@vishchiv
The DateTime types are stored without time zone informations, and when you fetch those columns data, Bookshelf or any other library can't guess the missing time zone, and will use the server time zone instead.
My suggestion for you, is to use a Timestamp instead of DateTime (depending on your case), or always save dates in UTC, and change the time zone on display.

@absolux


How to create vmalertmanager config with multiple routes

I use the following VMAlertmanagerConfig configuration
kind: VMAlertmanagerConfig
metadata:
  name: vmalertmanager-config
  namespace: monitoring
spec:
  route:
    receiver: slack
  receivers:
  - name: slack
    slack_configs:
    ##slack configuration##

and this gives the result
route:
  routes:
  - matchers:
    - namespace = "monitoring"
    receiver: monitoring-vmalertmanager-config-slack
receivers:
- name: monitoring-vmalertmanager-config-slack
  slack_configs:

After adding the next route like described in docs
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAlertmanagerConfig
metadata:
  name: vmalertmanager-config
  namespace: monitoring
spec:
  route:
    receiver: slack
    routes:
      - receiver: webhook
        continue: false
  receivers:
  - name: slack
  - name: webhook

the final config becomes
route:
  receiver: monitoring-vmalertmanager-config-slack
  group_by:
  - alertname
  routes:
  - routes:
    - continue: false
     matchers:
     - namespace = "monitoring"
     receiver: monitoring-vmalertmanager-config-slack
     continue: true

So the new route with webhook receiver was not added to routes and the receiver was not added to receivers with the log message
level=info ts=2021-11-10T06:56:52.640Z caller=main.go:414 component=configuration msg="skipping creation of receiver not referenced by any route" receiver=monitoring-vmalertmanager-config-webhook
What am I doing wrong and how I can create multiple routes properly?

Hello,
Hm, i cannot reproduce, can you share kubernetes version? Do you use CRD from release 0.20+ ?
My files:
# config.yaml
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAlertmanagerConfig
metadata:
  name: vmalertmanager-config
spec:
  route:
    receiver: slack
    routes:
      - receiver: webhook
        continue: false
  receivers:
  - name: slack
    webhook_configs:
      - url: http://some-2.example.net
  - name: webhook
    webhook_configs:
      - url: http://some-1.example.net
---
# alertmanager.yaml
---
apiVersion: v1
kind: Secret
metadata:
  name: vmalertmanager-example-alertmanager
  labels:
    app: vm-operator
type: Opaque
stringData:
  alertmanager.yaml: |
    global:
      resolve_timeout: 5m
    route:
      group_by: ['job']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: 'webhook'
    receivers:
      - name: 'webhook'
        webhook_configs:
          - url: 'http://alertmanagerwh:30500/'

---
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAlertmanager
metadata:
  name: example-alertmanager
spec:
  replicaCount: 1
  configSecret: vmalertmanager-example-alertmanager
  configSelector: {}

Produced config:
global:
  resolve_timeout: 5m
route:
  receiver: webhook
  group_by:
  - job
  routes:
  - routes:
    - receiver: default-vmalertmanager-config-webhook
      continue: false
    matchers:
    - namespace = "default"
    receiver: default-vmalertmanager-config-slack
    continue: true
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
receivers:
- name: webhook
  webhook_configs:
  - url: http://alertmanagerwh:30500/
- name: default-vmalertmanager-config-slack
  webhook_configs:
  - url: http://some-2.example.net
- name: default-vmalertmanager-config-webhook
  webhook_configs:
  - url: http://some-1.example.net

It seems to be desired configuration. Correct me, if i miss something.

Yes, your configuration seems right.
my k8s version is 1.21 and vm operator version is v0.20.0
Also I don't use separate secret for initial config, I added it in configRawYaml:
    global:
      resolve_timeout: 5m
    route:
      group_by: ['alertname']
      repeat_interval: 1h
      receiver: 'slack'
    receivers:
      - name: 'slack'

And in the vmalertmanagerconfigs resource i see:
    receiver: slack
    routes:
    - {}

Maybe my crd didn't update while upgrading the operator...

@symmetriac , was you able to fix it? Any additional help is needed?

No I didn't fix this, I had to switch back to alertmanager from prometheus-operator. I will try to reproduce it one more time in clean environment in the coming days and will return with the feedback.

Hm, possible source of issue:

not updated CRD - fields are not rendered correctly.
kubectl apply issue (or other client, that creates such CRDs).

I think, that it's possible to investigate with validation webhook. Need to add it for VMAlertmanagerConfig.
I also will test it against 1.21 version.
Perhaps some integration test may help to spot such bugs..

Yes, the problem was in stale CRD, after upgrade it's all good with config generation. Thanks for the help


chore: use the chat context provider in more components

Description

Incrementally adding the useLessonChat hook in more places, removing some prop-drilling

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


Linux Servers Scripts add executable

The Server's scripts feature only allows you to add powershell scripts. This doesn't really account for Linux usage.
It would be nice if, instead of running a powershell, there was an option to run an executable & arguments, similar to starting the server.

This would be useful because the server Scripts, by default, run powershell and they're just broken on Linux.
2024-05-27 00:50:56.6398|ERROR|LANCommander.Services.ServerProcessService|Error running script ""Stop CURSED HALO"" for server ""Cursed Halo""|System.ArgumentNullException: Value cannot be null. (Parameter 'path')
   at System.ArgumentNullException.Throw(String paramName)
   at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
   at LANCommander.SDK.PowerShell.PowerShellScript..ctor()
   at LANCommander.Services.ServerProcessService.<>c__DisplayClass26_0.<StopServer>b__0()

It looks like the constructor for PowerShellScript(); just won't work on Linux.
https://github.com/LANCommander/LANCommander/blob/66ae9f175c03397cfd3902debe62f6c8fe6547ef/LANCommander/Services/ServerProcessService.cs#L291C42-L291C65

The server currently uses the same method to execute PowerShell scripts that the Playnite extension uses. For most projects it would make the most sense to have the scripting runtime embedded in the application. Because of limitations with Playnite's built in runtime, namely not being able to run scripts with elevated privileges as well as being out of date, scripts are currently run by feeding their path to PowerShell.exe, which obviously doesn't exist in Linux.
I would like to support scripts for other runtimes/shells in the future, but right now with the workload I can only focus on supporting PowerShell. That being said, with 1.0.0 there will be a major change to how scripts are executed on the server and new client where PowerShell scripts will execute as part of the application's runtime, which I believe will result in support for scripts on any platform that supports .NET 8.
I'm hoping to get something more concrete over the next few weeks.


Respect volta npm and yarn paths

https://volta.sh sets custom paths per project. NI does not respect these paths, and uses the global node/npm/yarn installed by volta not the project specific one.

I don't use Volta myself. If it's easy to support I am happy to receive a PR for it. Thanks

This is fixed now :+1:

😎 nice, thanks!


[android] Switch armv7 vendor to 'unknown' in target triple to match other arches

Recent changes have made 'none' and 'unknown' not interchangeable anymore, so standardize on 'unknown' for armv7 too.
I don't know exactly when this change was introduced in trunk, maybe with #31170, but both vendors work with the release/5.3 branch. When I just tried to cross-compile the corelibs for armv7 with #33724, where I use 'unknown' in the triple, applied to the Nov. 26 trunk source snapshot, I hit this error when CMake checks that the Swift compiler works when configuring libdispatch, which this pull fixes:
<unknown>:0: error: could not find module 'Swift' for target 'armv7-unknown-linux-android'; found: armv7-none-linux-android

Another way to reproduce is by trying to cross-compile a "hello world" executable by using the Android cross-compilation flags from the docs:
> ./swift-DEVELOPMENT-SNAPSHOT-2020-11-26-a-ubuntu20.04/usr/bin/swiftc
-tools-directory android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/
-L android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/
-sdk android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot
-resource-dir build/Ninja-Release/swift-android-armv7/lib/swift
swift/test/Interpreter/hello_toplevel.swift -target armv7-unknown-linux-androideabi24
<unknown>:0: error: could not find module 'Swift' for target 'armv7-unknown-linux-android'; found: armv7-none-linux-android

I've modified a couple armv7 tests to use the new vendor, while leaving in others that are meant to check that the vendor and triple are changed before being passed to the linker.
@drodriguez and @compnerd, I'm not sure why these tests on the Android CI didn't catch this, should I add a test that does?

It should have been unknown all along, I think. none doesn't have a special meaning in the vendor field, and it might have been taken as unknown anyway (it can be seen in the test you link and haven't modified, in where none and more are both transformed internally into unknown). none might have been interpreted as an specific vendor, which did not match when unknown is explicitly specified.
@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 1a28a91db9b8755476d570ea6eab4ac8aeea524d

Linux passes, mac single test failure is unrelated, and Windows CI fails when checking out git.

@swift-ci please test macOS platform

@swift-ci please test Windows platform

@swift-ci please test Windows platform

@swift-ci please test macOS platform

Build failed
Swift Test OS X Platform
Git Sha - 1a28a91db9b8755476d570ea6eab4ac8aeea524d

Mac CI dies when cross-compiling stdlib for Mac-ARM64, running out of memory? Unrelated to this pull of course.

The only concern is with the tool prefixing that might happen in some cases

If you're talking about NDK paths that use these variables, I just checked and they don't. There is a separate SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_TRIPLE variable for that, which never used a vendor.

Ping, we should get this in.

@swift-ci please test macOS platform

Build failed
Swift Test OS X Platform
Git Sha - 1a28a91db9b8755476d570ea6eab4ac8aeea524d

Yet another spurious failure on the Mac CI.

@swift-ci please test macOS platform

I believe that this is safe and everyone is in agreement here, merging.


[Bug] Reorder operation not working with MongoDB

Bug report
What I did
Reorder operation is not working when using MongoDB as the database driver, with the jenssegers/laravel-mongodb package.
The problem occurs here: https://github.com/Laravel-Backpack/CRUD/blob/5a7445bf2b5bb0b04f80694613c7789364bf7f1f/src/app/Library/CrudPanel/Traits/Reorder.php#L21
The method beginTransaction is called from getPdo() which is null for the MongoDB driver.
What I expected to happen
\DB::beginTransaction(); and \DB::commit(); should only run for SQL database drivers.
What happened
Currently they always run.
What I've already tried to fix it
I temporarily fixed this by making a class alias and a class where I simply removed these lines.
Is it a bug in the latest version of Backpack?
Yes.
Backpack, Laravel, PHP, DB version
### PHP VERSION:
PHP 8.1.10 (cli) (built: Aug 30 2022 18:05:49) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.1.10, Copyright (c) Zend Technologies

### LARAVEL VERSION:
v9.46.0@62b05b6de5733d89378a279e40230a71e5ab5d92

### BACKPACK PACKAGE VERSIONS:

By the way, "backpack package versions" is indeed empty for me, I do have the version 5.4.15 installed.

Hello @patriksh thanks for the report.
I extracted two issues from here. The first one I already submitted a PR to fix, about the empty backpack versions in the php artisan backpack:version. https://github.com/Laravel-Backpack/CRUD/pull/4924
The second one about MongoDB, you already provided the solution, we need to wrap DB:: calls into CRUD::isDriverSql() call.
We have already some if's in the codebase checking for sql driver, and other open PR's to fix some issues that popped up when used with MongoDB, like https://github.com/Laravel-Backpack/CRUD/pull/4607
I don't like having the if's and else's all around the codebase to account for other db engines that we don't "officially" support.
I think if we plan on supporting other engines, MongoDB for example, we should think in a long-term maintainable solution that would provide that support, maybe even creating a child package like backpack/crud-mongodb, overwrite what's needed there, and remove the conditionals from the core codebase.
That would also be a good exercise on making our "core" extensible/configurable.
Unfortunately I don't think it's something that we are going to focus right way, maybe after we launch v6 we can revisit this.
At the moment our plate is full with the new Laravel version, our v6 and the planned packages to be launched this month.
Sorry for not bringing the best news, I really like the idea of us supporting Mongo officially, I liked the few times I worked with it, so I hope in future we can give it some love. Right now I think your approach is perfectly fine and if you didn't know about the other issue I mentioned, feel free to apply it to your codebase too.
Cheers

Well, I had an "ahh ahh" moment and realized that we may be able to fix this in a non breaking way, and also improve our code to make it more performante. win-win
Let's move the conversation over to #5342
Thanks for the report @patriksh
Please don't tell me that upsert also doesn't work with the mongo package or I will be sad 😢
Cheers


Implement dependabot

Context
This project didn't get much crate updates since it started, using dependabot we would be able to have a continuous follow-up on dependencies update.
What needs to be done ?

Check out dependabot configuration
Add a dependabot configuration file in the project
Enable dependabot (it might be spammy at first as we got a lot of out-of-date dependencies)

You could be using another tool than dependabot (e.g renovabot), but dependabot is the only "officially" supported tool on GitHub.

Done


Menu glitch

Hi!
The menu is floating over everything and it makes navigating really hard:
https://imgur.com/a/jQ0Fb
Can you guys fix it?

Basically a duplicate of #207. See you there!


Can't flash to Jetson Nano, says "Failed"

Trying to flash jetson nano. Doing lsusb | grep NVIDIA returns the correct values seen by the instructions.
This is the carrier board I'm using : https://www.waveshare.com/jetson-nano-dev-kit-a.htm
The Jetson-IO-BASE-A. I've shorted the correct pins aswell.
I've made an Ubuntu 22.04 VM, got docker running, built the image and did docker-compose up, put the balena image into the volume aswell.
Here's the error message:
https://pastebin.com/raw/u8qktG2g

Closing due to inactivity, feel free to re-open if the issue still occurs


Nuxt generates bad paths in build/generate process

Version
v1.4.2
Reproduction link
https://github.com/FilipJedrasik/firebase-nuxt-quiz/tree/gh-pages
Steps to reproduce
Clone repo and run npm run generate.
There you can preview generated pages in action:
https://filipjedrasik.github.io/firebase-nuxt-quiz/
What is expected ?
Generate static files with proper paths that will work properly on gh-pages.
What is actually happening?
First thing are bad paths in generated html files. For example:
/firebase-nuxt-quiz/staticmanifest.ab3ac000604ba888eee3.js
Should be:
/firebase-nuxt-quiz/static/manifest.ab3ac000604ba888eee3.js
This problem occurs few times. I changed it manually to proper in each .html file in hope it will work. Unfortunelly, it seems like there are some bad paths in generated js file.
Additional comments?
I tried to push dist either from nuxt build or nuxt generate. Both don't work.

This bug report is available on Nuxt community (#c7886)

Please follow the Github Page Deployment tutorial to properly set up your nuxt app with GH pages :relaxed:

Ahhhh right I didn't update master branch(only gh-pages branch). However I set router base properly. For sure I've just pushed commit. How to fix it?

@FilipJedrasik You are missing a trailing slash in your public path. (/static/ -> /static/)


Support for required modules

Would it be possible to support looking up a commonjs module's required dependencies? I'm thinking of how I could use cjs-module-lexer for fast on the fly cjs-esm transformation.
Require calls are dynamic, so you can't statically analyze everything. But supporting some common use cases would be interesting.

Sorry to open a feature request on a fresh repository. This is great work as usual :) I'd contribute, but I don't have any experience with C unfortunately.

Hey @LarsDenBakker, glad to hear you find the project useful.
Are you mainly referring to getting access to eg require(dynamicExpression()) sort of case, or the process of handling recursive dependency analysis here?
We could definitely add integration for arbitrary require expression detection. Possibly even with automatic conversion into wildcard expressions.

I was thinking of transforming CJS to ESM on the fly with a similar approach as the rollup commonjs plugin by analyzing the require and export statements, and generating imports/export for them.
We could use the rollup plugin for this, but doing AST analysis in javascript is slow. If we can use cjs-module-lexer to generate at least a basic analysis we could do the code transformation entirely with string concatenation with only a few ms overhead per file.
I'm fully aware of the commonjs-esm interop edge cases, and that require calls can by highly dynamic. But if we can just catch static top level require statements I think we can cover a lot of existing code already.

I would actually strongly advise against this route - a large amount of handling of CommonJS conversion is actually related to scoping and strict mode conversion issues none of which can be handled in this way. So you'll get 80% there then hit a serious block with such an approach.
If your concern is performance, then eg move over to a native-based JS transformation tooling that can handle full scope analysis. The main issue on that side is finding reliable projects to build on, but there's some interesting stuff happening, and work there would have immediate wider benefit to the ecosystem without hitting a dead end as opposed to work on this.

Advice noted. But doesn't the rollup commonjs plugin have the same issues? I think it just forced all commonjs modules into strict mode.
Moving to native based tooling would be ideal, but I don't know of any per-file commonjs -> esm transform tool availably today. There is esbuild, but it only does it when bundling as far as I know.

Yes, the rollup commonjs plugin has very bad levels of compatibility, but there is at least a path for it to improve - for example posting a bug for strict mode cases can be fixed with a relatively simple PR.
esbuild has a CommonJS layer specifically yes. Perhaps there's a way it could be extended to work to per-file by just bundling an individual CommonJS file? I'm sure @evanw would be interested in your use cases.

There's already an open issue for esbuild about adding single-file module format conversions, which would allow conversion from CommonJS to ES6 modules: https://github.com/evanw/esbuild/issues/109. It may not end up doing what you want though. The exports for CommonJS modules aren't statically analyzable in the general case so I'm not planning on doing the AST analysis that Rollup does. I'm planning to implement this conversion the way node does instead, which is that all CommonJS modules become an ES6 module with a single default export. That may not make it suitable for your use case.

It wouldn't work for some existing codebases, but I think it's still a great sensible way forward. I'll close this and watch the other issues then. Thanks!

@evanw glad to hear you're matching proper Node.js interop semantics there, this has been an issue in other tools now trying to align.
You may also like to keep an eye on https://github.com/nodejs/node/pull/33416 which is probably the closest Node.js has come to any consensus on named exports for CJS support (many proposals have been debated endlessly and this one has the least blocks).
So if named exports will land the discussion will be there (and this project is integrated in that PR which provides the basic heuristical wasm static analysis approach).

Thanks for the pointer. I wasn't aware of that discussion going on. Good to know about.


support getters/setters

class MyClass {
	get value() {
		return "wow"
	}
};

const myClass = new MyClass();

console.log(JSON.prune(myClass)); // empty object {}

Would that really be better ? I'd take opinions on that.

Would that really be better ? I'd take opinions on that.

Probably would be a great option... as a workaround, I'm just using toJSON on my objects


[main] Upgrade to latest dependencies

Cron -knative-prow-robot
/cc knative-sandbox/api-core-wg-leads
/assign knative-sandbox/api-core-wg-leads
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/hack/schema dc6c287...65c463a:
  > 65c463a Update community files (# 195)
  > e7d6365 Add [skip-dot-release] feature (# 189)
  > 33ce6af Update community files (# 190)
bumping knative.dev/pkg 9c5a731...e60d250:
  > e60d250 upgrade to latest dependencies (# 2543)
  > 97eb150 Update community files (# 2541)
  > 5569169 update boilerplate date (# 2539)
  > 85965e1 upgrade to latest dependencies (# 2540)
  > f4ae0af Update community files (# 2538)
  > f5db225 Drop `UserInfo` from logger tagging in webhook. (# 2535)
  > 1777513 Update actions (# 2536)
bumping knative.dev/hack dc6c287...65c463a:
  > 65c463a Update community files (# 195)
  > e7d6365 Add [skip-dot-release] feature (# 189)
  > 33ce6af Update community files (# 190)

/lgtm
/approve


Map Snowflake alias data types to actual data types

Provider Version
0.34.0
Terraform Version
0.14.2
Describe the bug
When you create a table with columns using alias data types like SMALLINT, Snowflake replaces those aliases with the actual data type used. In this case NUMBER(38,0). That causes changes to the table each time you apply. It would be nice if those TF recognize the usage of an alias.

Duplicate of https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/494


Use RGBA notation for HTML color codes instead of ARGB

This follows the now widely-supported CSS standard: https://drafts.csswg.org/css-color/#hex-notation
Another upside is that text editors like Visual Studio Code will now highlight the color as expected:

Existing HTML color codes with alpha will have to be changed (e.g. in text editor themes and RichTextLabel BBCodes), so this is a breaking change.

After some testing, it this doesn't impact resource saving/loading as colors are seralized with their full notation in text/binary files. This can now be merged.

Superseded by #40868.


possible bug: GET parameters are lost if the page has multiple urls.

You add an additional url to a page. If you send GET data to that new URL then it will be lost when the route redirects to the primary url. I think in this case get parameters should be preserved.
I'm not sure however if this is the expected behavior or not.

Perhaps it would be a solution if there was a difference between the urls under which simple the same content is delivered (so it wouldn't involve a redirect and thus all parameters and post data should be simply there) from the simple redirected urls.

SEO folks would probably say it's a bad idea to have a page live at two different URLs. That's why we do the full redirect from the additional URL to the canonical one. I think we should just modify it so that the GET parameters get passed along during the redirect.

SEO folks would probably say it's a bad idea to have a page live at two different URLs. That's why we do the full redirect from the additional URL to the canonical one. I think we should just modify it so that the GET parameters get passed along during the redirect.

+1

I think we should just modify it so that the GET parameters get passed along during the redirect.
+1
I think that would solve it.

Get request is fine, but remember that we will always lose post data on these redirects so we all still need to pay attention to which pages are redirecting.

Yeah that's fine. That's expected.
Sent from my iPhone

On Nov 2, 2015, at 4:44 PM, Korvin Szanto<EMAIL_ADDRESS>wrote:
Get request is fine, but remember that we will always lose post data on these redirects so we all still need to pay attention to which pages are redirecting.
—
Reply to this email directly or view it on GitHub.

This is resolved by b082706


[CI only] Release 0.56 + CUDA lineinfo fixes

Testing a backport of #8594 onto the 0.56.4 branch.

gpuci run tests

gpuci won't run this because it's not on the main branch - never mind.


Summary
Let's take a mobile application on Android. It's not possible to add a desired intent for the notifications. Right now, if i'm not  mistaken, all we can do is to define the launch activity type on the AndroidOptions class. But even with the activity type defined,  it makes the application open from scratch, losing the state that the application had before the notification was clicked.
API Changes
And idea would be to add a method, on AndroidOptions, that makes possible for us to provide the desired intent
Intended Use Case
Take an application (where this app would be in the background) wich is using location tracking in the background and uses the notifications to show the user that the app is tracking his location. If the user clicks in the notification the app will open once again, and all the data on the interface will be reseted, because clicking the notification is like booting the app all over again.

I don't want to add every config option in the world especially on this area since it can break others portions of the integration


TypeError: FirebasePaginator is not a constructor

Hi!
Thank for this job!
I'm trying include paginator to isomorphic react-firebase (latest 16 and 4.6.2) app like this
// functions/firebase-database.js:
const FirebasePaginator = require('firebase-paginator')
// src/containers/App.jsx:
const FirebasePaginator = typeof window !== 'undefined' ? window.FirebasePaginator: undefined;

Expected outcome
get basic functionality with default options:
const paginator = new FirebasePaginator(firebase.database().ref('/employees').orderByChild('level'));
const getAllEmployees = () => {
  return paginator.once('value').then(snap => {
    return {employees: snap.val()};
  });
};

Actual outcome
TypeError: FirebasePaginator is not a constructor

I didn't build FirebasePaginator for ES2015 imports. I built it the old
fashioned way... to get added to a script tag.
So the script tag on your page will get it added to the window object. Also
try importing just the file path and not assigning it to a variable... then
access it off of window.
Or fork the project, get it working and send me a pull request!
On Sun, Dec 3, 2017, 07:33 Valery Orloff<EMAIL_ADDRESS>wrote:

Hi!
Thank for this job!
I'm trying include paginator to isomorphic react-firebase (latest 16 and
4.6.2) app like this
https://github.com/firebase/functions-samples/tree/master/isomorphic-react-app
// functions/firebase-database.js:
const FirebasePaginator = require('firebase-paginator')
// src/containers/App.jsx:
const FirebasePaginator = typeof window !== 'undefined' ? window.FirebasePaginator: undefined;
Expected outcome
get basic functionality with default options:
const paginator = new FirebasePaginator(firebase.database().ref('/employees').orderByChild('level'));
const getAllEmployees = () => {
return paginator.once('value').then(snap => {
return {employees: snap.val()};
});
};
Actual outcome
TypeError: FirebasePaginator is not a constructor
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/deltaepsilon/firebase-paginator/issues/12, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA1pYwfAV7HWcIR47BVl9OrcZ_5rsH4_ks5s8rFQgaJpZM4QzvYC
.

I've finally gotten deep enough into Babel to go back and repair this. Sorry it took so long!
3c053de8e61be4378f8fcef4fb36aa7f206c6505


(Not a project issue) Kliva removed from the store?

Hi everybody,
I was about to reinstall Kliva on my device but I cannot find it anymore... Was it removed because of GDPR or was it intentional?
In the first case, do you think it will come back?
If not I can rebuild the package locally of course but I'm also thinking about other users :-)
Thank you for this great app!

Hey @wokhan
We've had privacy issues for over half a year now, even before GDPR. Next to that Strava is cutting on its public APIs, taking away functionality already implemented (while in an ideal world, we would get even more like uploading images).
So looking at it right now, chances are slim that we will continue our battle to get it back in the store, certainly for phone. If we bring it back to Windows, it would be a "readonly" application.

Since Strava did cut even more APIs, we're closing down Kliva and this repository. For more info, please check the readme.


chore(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3279

Questions ?
Please refer to the Backport tool documentation


Bumping Dashboard to 0.11.1

Signed-off-by: Artur Souza<EMAIL_ADDRESS>Description
Bumping Dashboard to 0.11.1
Issue reference

Please reference the issue this PR will close: endgame
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

What about the main chart.yaml?
https://github.com/dapr/dapr/blob/release-1.10/charts/dapr/Chart.yaml


Update BugsnagEditor.EDM.cs

UnityEditor.Menu.SetChecked(EDM_MENU_ITEM, IsEDMEnabled());
instead of
Menu.SetChecked(EDM_MENU_ITEM, IsEDMEnabled());
removes problems with others libs
Goal

Design

Changeset

Testing

Hi @xavierarpa
Thank you for reaching out raising this PR.
We now have an item on our backlog aimed at reviewing this PR when priorities allow. Once we have an update we will be sure to update you via this thread.

Hello :wave: ,
Your PR has been reviewed, and released with v7.7.3 of our Unity notifier. Thanks for raising the PR and contributing to BugSnag!
If you have any questions, please let us know!


The wizard is taking almost all the screen because of the instructions by default

[ ] use a max width?

No solutions for now, resize the screen by yourself

Solved in 0.0.3


Error during setup of component o365

Hello,
i have a new HA installation latest version.
installed HACS and your o365 component
Created the config file and office 365 app integration in Azure
after reload (treyed many times) i get following error:
2022-08-23 12:38:23.714 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration o365 which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-08-23 12:39:06.904 ERROR (MainThread) [homeassistant.setup] Error during setup of component o365
File "/config/custom_components/o365/init.py", line 41, in async_setup
Please advice ..

Please post the full error stack from your logs, and a copy of your O365 config (with appropriate items redacted)

2022-08-23 12:38:23.714 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration o365 which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-08-23 12:38:23.720 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration garbage_collection which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-08-23 12:38:23.726 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-08-23 12:38:23.732 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration alexa_media which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-08-23 12:38:53.296 WARNING (SyncWorker_5) [homeassistant.components.rpi_power.binary_sensor] Under-voltage was detected. Consider getting a uninterruptible power supply for your Raspberry Pi.
2022-08-23 12:39:03.096 WARNING (MainThread) [homeassistant.setup] Setup of automation is taking over 10 seconds.
2022-08-23 12:39:04.766 WARNING (MainThread) [homeassistant.components.media_player] Setup of media_player platform dlna_dmr is taking over 10 seconds.
2022-08-23 12:39:06.904 ERROR (MainThread) [homeassistant.setup] Error during setup of component o365
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 235, in _async_setup_component
result = await task
File "/config/custom_components/o365/init.py", line 41, in async_setup
accounts = MULTI_ACCOUNT_SCHEMA(conf)[CONF_ACCOUNTS]
File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 272, in call
return self._compiled([], data)
File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict
return base_validate(path, iteritems(data), out)
File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 433, in validate_mapping
raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: extra keys not allowed @ data['accounts'][0]['track_new_calender']
o365:
accounts:
- account_name: Office365-Mahieu-IT-Services
client_id: "*********" #here i set de application ID !
client_secret: ""
alt_auth_method: False
enable_update: True
track_new_calender: True
email_sensor:
- name: inbox
max_items: 2
is_unread: True
download_attachments: False
status_sensors: # Cannot be used for personal accounts
- name: "Teams Status"
chat_sensors: # Cannot be used for personal accounts
- name: "Teams Chat status"

Please can you post your config properly formatted, just use the <> in the GitHub editor toolbar. Then I can see if your formatting is wrong. The error indicates there is something wrong with track_new_calendar key.

Hello,
Sorry relative new at this ..
o365:   accounts:     - account_name: Office365-Mahieu-IT-Services       client_id: "29774fdc-2058-47a1-8585-08c6a907c1ff"       client_secret: "c75bffe9-3aae-4000-8e5d-724e776c4fbe"       alt_auth_method: False       enable_update: True       track_new_calender: True       email_sensor:         - name: inbox           max_items: 2           is_unread: True           download_attachments: False       status_sensors: # Cannot be used for personal accounts         - name: "Teams Status"       chat_sensors: # Cannot be used for personal accounts         - name: "Teams Chat status"
hope this is ok.

Hello,
i found a typo in "track_new_calendar_key" i wrote "track_new_calendEr_key"
i am native dutch speaking ...
thank you for pointing me in the good direction !


[Question] Enabling GraphQL Actuator Metrics for WebSockets

Hi! I'm trying to follow the Observability instructions to get GraphQL actuator metrics published. We're using a Datadog StatsD sidecar container, so I've added the following dependencies to my classpath:

org.springframework.boot:spring-boot-starter-web, version 3.2.2
org.springframework.boot:spring-boot-starter-graphql, version 3.2.2
org.springframework.boot:spring-boot-starter-actuator, version 3.2.2
org.springframework.boot:spring-boot-starter-websocket, version 3.2.2
io.micrometer:micrometer-registry-statsd, version 1.12.1

I didn't do any additional configuration or create any additional beans.
To see what metrics were available, I set management.endpoints.web.exposure.include=* and went to /actuator/metrics, but didn't see any GraphQL metrics.
I have two questions:

Is there a configuration I'm missing, or am I looking in the wrong place for GraphQL metrics?
I was looking at the predecessor project, graphql-spring-boot, and found references to Websocket metrics like graphql.websocket.sessions. Do those metrics still exist in the current version of the library?

@nlemoing  We migrated from the graphql-kickstart project as well and I could not find anything. I had to implement my own ConcurrentHashMap that tracked sessions using afterConnectionEstablished and afterConnectionClosed extended from the GraphQLWebSocketHandler
// Simple Metric for active connections   Gauge.builder(           AppConstants.CustomMetrics.WEBSOCKETS_ACTIVE_SESSIONS,           this::getActiveSessions   ).strongReference(true).register(Metrics.globalRegistry);

@sgrannan Thanks for the tip! I tried to use WebSocketGraphQlInterceptor to build my own metrics as well but it seems it was under-reporting connection close events. I think it might've under-reported because we were doing a stress test on the server and instances that were shutting down didn't report that their WebSocket connections were closing.

Hello @sgrannan and @nlemoing
Thanks for this report and the discussion so far. I agree, this feature is currently missing in Spring for GraphQL and we should have a look at it. So far, we have instrumented the GraphQL engine with a graphql-java Instrumentation so that you'll get observations (timer metrics and traces) for requests and data fetching operations.
For such metrics, we can't depend on the Observation API because it only covers timers. For gauges and counters, we'll need the Metrics API and we must make that an optional dependency. We should look into providing a MeterBinder for active sessions. Something like what's provided by Micrometer for Netty allocators, for example.
In the case of active WebSocket sessions, we could expose the information on the WebSocket handler directly and make the binder quite straightforward. As for the subscriptions count, it's a different story since subscriptions can happen over multiple transports (SSE, WebSocket, RSocket) - ideally, a single metric should count them all and they should be tagged by transport.
I'll schedule this for the 1.3.x generation and I'll report back here after investigating a bit.


Preview of Rmarkdown

Currently, the Markdown file can get a preview.
I believe R markdown file can also get a preview by calling preview command on Markdown.
I put this issue as the TODO

By adding the below to settings.json, you can use Markdown: Open Preview on R markdown files. It doesn't do anything special with the R code blocks, though.
"files.associations": {
     "*.Rmd": "markdown"
}

From https://qiita.com/yutannihilation/items/1f71c0fedae6e4b8038c

@andycraig Thank you! It is working well.

I can not use R markdown syntax and inline execution by this change.
We should call this as the R markdown mode.

That's right, that change doesn't do anything special with R code blocks.
A better R markdown experience could be gained by adding a command that calls the knitr package, and then previews a resulting HTML or PDF file (maybe using https://marketplace.visualstudio.com/items?itemName=hdg.live-html-previewer and https://marketplace.visualstudio.com/items?itemName=tomoki1207.pdf). This could be a Good First Issue.
RStudio-like inline output from R code blocks would be tougher. I'm not sure if the VSCode editor supports non-text objects.

It looks like the neuron extension might be very helpful here:
https://marketplace.visualstudio.com/items?itemName=neuron.neuron-IPE
I haven't managed to get it running successfully yet.

Using VSNotebooks:

This setting was necessary to get VSNotebooks to recognise Rmd files:
"files.associations": {
    "*.Rmd": "r"
}

Is this still being worked on? Rmarkdown support is one of the major reasons I don't switch to vscode.

Hi @rjBadger, as shown in the video above, the VSNotebooksBeta extension (a fork of the neuron extension) provides some support of R Markdown files, although there is a lot of room for improvement. I'd like to see work on R Markdown support for VSCode made on neuron or one of its forks, so that the improvements also benefit Julia etc. I'm not currently working on anything related to this, though.

There is an issue open for adding support for other languages to the (very good) Jupyter component of the Python extension. If you are interested in better notebook support for R, please consider voting for it here: https://github.com/microsoft/vscode-python/issues/5078#issuecomment-507751659
Thank you!

With #150, we can use rmarkdown::run(file) to start an HTTP server to show an RMarkdown document, instantly.

That sounds great @renkun-ken! Would this also allow to show chunks of text, math, and or code separately? For an illustration of what I mean, see the GIF below:

Would love to have a pdf preview option as well.

Now that R session watcher is enabled by default in #670, how about adding a button that runs rmarkdown::run(file) and opens a tab, like the button that shows the VSCode default Markdown preview?

I wonder if it's possible to have run as a task, so that it's non-blocking. Hmm... Live preview would be very neat ;)

I've tinkered with this idea a bit. A little proof of concept:

There is an issue with rmarkdown::run() that mathjax and syntax highlight are lost when the document is refreshed. Didn't have time to investigate at the moment. @ElianHugh Are you interested in digging into this?

Ah, I see what you mean - happy to look into it!

Closed by #692.


update example in README

This updates the example in the README to work with the 2.0 changes.

Again, may have missed this, thanks a ton!


admob requestReview problem

import SwiftUI
import AppTrackingTransparency
import StoreKit
struct RootView: View {
https://github.com/AppStorage("showingOnboarding") private var showingOnboarding = true
https://github.com/State var adsManager = AdsManager()
https://github.com/State private var selectionItem = 0
@Environment(.requestReview) private var requestReview
var body: some View {
TabView(selection: $selectionItem){
MainView(selectionTabItem: $selectionItem)
.tabItem {
Label("Başlangıç", systemImage: "house")
.environment(.symbolVariants, selectionItem == 0 ? .fill : .none)
}
.tag(0)
    ResultView(selectionTabItem: $selectionItem)
        .tabItem {
            Label("Hesaplamalar", systemImage:     "arrow.counterclockwise.circle")
                .environment(\.symbolVariants, selectionItem == 1 ? .fill : .none)
        }
        .tag(1)
}
.fullScreenCover(isPresented: $showingOnboarding, content: {
    OnboardingView.init()
        .edgesIgnoringSafeArea(.all)
        .onDisappear{
            showingOnboarding = false
            ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in })
        }
})
.onAppear{
    adsManager.increaseBannerAdCounter()
}
.tint(.main)

}
}
@Environment(.requestReview) private var requestReview when showing admob banner ad with SwiftUI
If I define the ad is not loading and Invalid Request. Cannot determine request type. Is your ad unit id correct?
I get an error. It gets fixed when I remove it.

Hey @fatihdurmaz, your question would be better suited for the AdMob developers forum. Please create a new thread there. Closing this out. Thanks!


Don't generate WSL distributions for docker-desktop*

These utility distributions are used by Docker for Windows' WSL2
integration. They are not intended for user consumption.

[x] Closes #3556
[x] CLA signed.
[x] Tests added/passed
[x] Requires documentation to be updated
[x] I've discussed this with core contributors already.

There is a minimal chance that a user has a distribution named docker-desktop or some superstring thereof, but this is taken as an acceptable level of risk.

@zadjii-msft clear of blockers?


Fixes the comment keybinding

In atom, cmd + / is used to comment a line of code.
Addresses #22

Whoops! Thank you.

This breaks all non us keyboards. See my pr here: https://github.com/waderyan/vscode-atom-keybindings/pull/17


Update README.md for the new redis agent.

Fix #41  and then update the README. Couple of things you need to do -

Remove the hydra-py section
Update the python-hydra-agent ( try to explain how the agent can be used in a better way)
Provide references to the agent design wiki

It has fixed in #43


Keys in repo

You have a key hardcoded here. I don't know if it should be secret but even so it should be in the env file.

This is an interesting point. I don't think it's a key per se, rather it's an identifier for our database within airtable. In the airtable docs it's written in this way. You're right that it's worth moving it to a .env file for production.

Ah in that case it doesn't matter about it being in the repo but yeah you'd still want to be able to set different values to choose between dev/production tables.