Add check for problematic column index for q78

WIP. need to do more tests in CI to make sure it doesn't break nightly runs.
close #101

Pass CI test. Waiting for QA to get his test result.

verified successful against https://github.com/wjxiz1992/spark-rapids-benchmarks/tree/issue-101


CP2K parser crashes when printlevel was reduced

The CP2K parser crashed when calculations were run with
&GLOBAL
  PRINT_LEVEL LOW
&END GLOBAL

This causes the complete Quickstep output block (lines starting with QS|) to be omitted. The parser then fails to read the plane wave cutoff from the output file and subsequently crashes:
(.pyenv) stefan@localhost:~/LISAPLUS/NOMAD$ nomad parse /home/stefan/sampledata/CP2K/cp2k/H2O.out --show-archive
WARNING  nomad.datamodel      2024-06-04T13:17:25 Schema is deprecated, use plugins.
  - nomad.commit:
  - nomad.deployment: devel
  - nomad.service: cli
  - nomad.version: 1.2.2.dev465+gc6aff391
ERROR    nomad.client         2024-06-04T13:17:30 parsing was not successful
  - exception: Traceback (most recent call last):
      File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/parsing/parsers.py", line 215, in run_parser
        parser.parse(mainfile_path, entry_archive, logger=logger, **kwargs)
      File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/parsing/parser.py", line 460, in parse
        self.mainfile_parser.parse(mainfile, archive, logger)
      File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/electronicparsers/cp2k/parser.py", line 2300, in parse
        self.parse_method_quickstep()
      File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/electronicparsers/cp2k/parser.py", line 2039, in parse_method_quickstep
        basis_set=self._parse_basis_set(),
      File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/electronicparsers/cp2k/parser.py", line 2024, in _parse_basis_set
        cutoff=self.settings.get('qs', {}).get('planewave_cutoff', None)
      File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/pint/unit.py", line 187, in __mul__
        return self._REGISTRY.Quantity(1, self._units) * other
    TypeError: unsupported operand type(s) for *: 'Quantity' and 'NoneType'
  - exception_hash: rc-YL5xWeMqCMqQKzi4-XMIs2eGx
  - nomad.client.parser: parsers/cp2k
  - nomad.commit:
  - nomad.deployment: devel
  - nomad.service: cli
  - nomad.version: 1.2.2.dev465+gc6aff391
Traceback (most recent call last):
  File "/home/stefan/NOMAD/.pyenv/bin/nomad", line 8, in <module>
    sys.exit(run_cli())
  File "/home/stefan/LISAPLUS/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/cli/cli.py", line 75, in run_cli
    return cli(obj=POPO())  # pylint: disable=E1120,E1123
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/cli/parse.py", line 83, in _parse
    entry_archives = parse(mainfile, **kwargs)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/client/processing.py", line 66, in parse
    entry_archives = parsers.run_parser(
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/parsing/parsers.py", line 219, in run_parser
    raise e
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/parsing/parsers.py", line 215, in run_parser
    parser.parse(mainfile_path, entry_archive, logger=logger, **kwargs)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/nomad/parsing/parser.py", line 460, in parse
    self.mainfile_parser.parse(mainfile, archive, logger)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/electronicparsers/cp2k/parser.py", line 2300, in parse
    self.parse_method_quickstep()
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/electronicparsers/cp2k/parser.py", line 2039, in parse_method_quickstep
    basis_set=self._parse_basis_set(),
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/electronicparsers/cp2k/parser.py", line 2024, in _parse_basis_set
    cutoff=self.settings.get('qs', {}).get('planewave_cutoff', None)
  File "/home/stefan/NOMAD/.pyenv/lib/python3.9/site-packages/pint/unit.py", line 187, in __mul__
    return self._REGISTRY.Quantity(1, self._units) * other
TypeError: unsupported operand type(s) for *: 'Quantity' and 'NoneType'

Relevant source code:
https://github.com/nomad-coe/electronic-parsers/blob/e7d1ffe0615d5eb68955705cbed5809b9dca71d1/electronicparsers/cp2k/parser.py#L2022-L2026
Getting planewave_cutoff fails, and the attempt to convert the empty result to hartree crashes the parser. Proposed fix: Enclose in Try/Except block, as this is a perfectly fine CP2K calculation which should not crash the parser.
CP2K version: 2024.1, but problem is also present with CP2K 9.1
nomad.version: 1.2.2.dev465+gc6aff391
NOMAD parser version: current github repo
Attachments: complete input and output files for reproducing the issue (strip the .txt extension!, This was added for Github to accept the upload).
H2O.inp.txt
H2O.out.txt

Hi again! This is an easy fix, but please, check my comment in #228 first (I think we can solve these in one go when transferring the CP2K to its own repository).
And thanks again for delving in the parser! This feedback is very much appreciated 🙂
In this case, the issue is that cutoff in BasisSet() has some units assigned, but when it fails to get from self.settings and returns None, this has some conflict with the pint units (i.e., with the ureg.hartree multiplication). There are two fixes:

Set a default value to planewave_cutoff instead of None.
Add an if self.settings.get('qs', {}).get('planewave_cutoff') is not None: before instantiating bs_pw = BasisSet(...)

Thanks for the answer.
I personally would strongly advocate for solution 2. If the value is not present in the input or output file, it should not occur in the parsed data. I am extremely wary to hard-code program defaults in a third-party parser, as such parameters may simply change over time and program version, and all of a sudden, your parsed data is simply wrong, or you have to keep track of potentially hundreds of parameters for every version of a software package.
Of course there has to be some default value for the planewave cutoff, it is an essential ingredient of every plane wave calculation, but in case of CP2K, i don't know whether it is a constant or whether it is calculated from system parameters (cell size, k points, involved elements e.g.)

Great, we go with the if then. Thanks for the detailed answer, that was very helpful!

Hi,
thanks for looking at this issue so quickly!
Yes, there is indeed a default cutoff value of 280, see https://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/MGRID.html#CP2K_INPUT.FORCE_EVAL.DFT.MGRID.MULTIGRID_CUTOFF
It would indeed be great if the input file is also checked before setting the default value.

Great, thanks @mm-may, I have to definitely check the documentation, we can go with option 1 anyways and set the default value as you suggest.

It would indeed be great if the input file is also checked before setting the default value.

This is a bit more complicated. We can do it, but there is always the risk that input files are being modified by users and calculations are not referring to the actual input file being uploaded; this is one of the reasons we like to keep out input files as much as possible out of parsing.


Add blink_luasnip

@Saghen it works fine in 0.6.2 but was somehow failing in master, let me know if I can help to debug.

The accept logic was changed to first apply the item and then call source's execute function. where as before, it would hand off everything to the source @leiserfg

Thanks @Saghen that was what I understood but was waiting for a stable release with the changes.

@Saghen LuaSnip does more stuff with the current line and wants access to the range to clear it by itself. I was thinking to set insertText to the triggering word, so that LuaSnip will "see" the same. But that looks a bit dirty to me. I think it would be cleaner to have a way for asking  blink.cmp not to edit the text.

I managed to make it work following your previous suggestion, right now the only issue I see is that the snippet is expanded but it goes to "normal" mode instead of staying in "select" mode as it should.

the only issue I see is that the snippet is expanded but it goes to "normal" mode instead of staying in "select" mode as it should.

I think you're missing the required insertTextFormat = vim.lsp.protocol.InsertTextFormat.Snippet, see here

If I pass insertTextFormat = vim.lsp.protocol.InsertTextFormat.Snippet then it crashes with
10.2/share/nvim/runtime/lua/vim/lsp/_snippet_grammar.lua:177: snippet parsing failed

That's only if you want blink.cmp to expand the insertText as a snippet which you don't want

Yes but it's passing the inserText any way, I tried passing
inserText = " ",  -- an space
insertTextFormat = vim.lsp.protocol.InsertTextFormat.Snippet

and that worked fine (kept the snippet in select mode), so I think I will use that as a workaround, but IMHO passing
inserText = "",  -- empty
insertTextFormat = vim.lsp.protocol.InsertTextFormat.Snippet

should not break.

You should be using vim.lsp.protocol.InsertTextFormat.PlainFormat. The source should switch the mode to select as part of the execute

In all the cases I'm using kind = vim.lsp.protocol.CompletionItemKind.Snippet, in case it matters
This keeps changes the mode to Normal
insertTextFormat = vim.lsp.protocol.InsertTextFormat.PlainText,
insertText = ""

This crashes because tries to parse the snippet
insertTextFormat = vim.lsp.protocol.InsertTextFormat.Snippet,
insertText = ""

This one works well but inserts the space:
insertTextFormat = vim.lsp.protocol.InsertTextFormat.Snippet,
insertText = " "

This one works well but to me is a HACK 😄 :
insertTextFormat = vim.lsp.protocol.InsertTextFormat.Snippet,
insertText = "$0"


Failing to run bundle_v2 integration tests running out of space

Bug Description
When running CI the test bundle v2 fails. After sshing into the runner we found out the main problem is insufficient amount of disk space causing pods stopping in pending state with
Events:
  Type     Reason            Age    From               Message
  ----     ------            ----   ----               -------
  Warning  FailedScheduling  3m13s  default-scheduler  0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/disk-pressure: }. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.

df command from inside the runner:
runner@fv-az572-42:~/work/kfp-operators/kfp-operators$ df
Filesystem                  1K-blocks     Used Available Use% Mounted on
/dev/root                    76026616 74390372   1619860  99% /
devtmpfs                      8183156        0   8183156   0% /dev
tmpfs                         8187672        4   8187668   1% /dev/shm
tmpfs                         1637536     3212   1634324   1% /run
tmpfs                            5120        0      5120   0% /run/lock
tmpfs                         8187672        0   8187672   0% /sys/fs/cgroup
/dev/sdb15                     106858     6186    100673   6% /boot/efi
/dev/loop0                      65536    65536         0 100% /snap/core20/2182
/dev/loop1                      40064    40064         0 100% /snap/snapd/21184
/dev/loop2                      94080    94080         0 100% /snap/lxd/24061
/dev/sda1                    76829444 71714284   1166720  99% /mnt
tmpfs                         1637532        0   1637532   0% /run/user/1001
/dev/mapper/buildvg-buildlv  76661516   264724  76380408   1% /home/runner/work/kfp-operators/kfp-operators
/dev/loop5                     106496   106496         0 100% /snap/core/16928
/dev/loop6                      76032    76032         0 100% /snap/core22/1122
/dev/loop7                     152192   152192         0 100% /snap/lxd/27049
tmpfs                            1024        0      1024   0% /var/snap/lxd/common/ns
/dev/loop8                      93568    93568         0 100% /snap/juju/25751
/dev/loop9                        256      256         0 100% /snap/jq/6
/dev/loop10                     28032    28032         0 100% /snap/charm/712
/dev/loop11                     29312    29312         0 100% /snap/charmcraft/2453
/dev/loop12                      1536     1536         0 100% /snap/juju-bundle/25
/dev/loop13                     12544    12544         0 100% /snap/juju-crashdump/271
/dev/loop14                     57088    57088         0 100% /snap/core18/2812
/dev/loop15                    167552   167552         0 100% /snap/microk8s/6575
/dev/loop16                     12288    12288         0 100% /snap/kubectl/3206

This issue is similar to this one https://github.com/canonical/bundle-kubeflow/issues/813
To Reproduce

open pr from main against main to trigger CI
check the bundle v2 integration test

Environment
Github actions CI in main branch
Relevant Log Output
Added 'kubeflow' model on microk8s/localhost with credential 'microk8s' for user 'admin'
bundle-integration-v2: install_deps> python -I -m pip install 'kfp<3.0,>=2.4' -r requirements-integration.txt
bundle-integration-v2: freeze> python -m pip freeze --all
bundle-integration-v2: aiohttp==3.8.5,aiosignal==1.3.1,anyio==4.0.0,asttokens==2.4.0,async-timeout==4.0.3,attrs==23.1.0,backcall==0.2.0,bcrypt==4.0.1,cachetools==5.3.1,certifi==2023.7.22,cffi==1.15.1,charset-normalizer==3.2.0,click==8.1.7,cryptography==41.0.3,decorator==5.1.1,docstring_parser==0.16,exceptiongroup==1.1.3,executing==1.2.0,frozenlist==1.4.0,google-api-core==2.18.0,google-auth==2.22.0,google-cloud-core==2.4.1,google-cloud-storage==2.11.0,google-crc32c==1.5.0,google-resumable-media==2.7.0,googleapis-common-protos==1.63.0,h11==0.14.0,httpcore==0.17.3,httpx==0.24.1,hvac==1.2.0,idna==3.4,importlib-resources==6.0.1,iniconfig==2.0.0,ipdb==0.13.13,ipython==8.12.2,jedi==0.19.0,Jinja2==3.1.2,jsonschema==4.17.3,juju==3.2.2,kfp==2.5.0,kfp-pipeline-spec==0.2.2,kfp-server-api==2.0.5,kubernetes==25.3.0,lightkube==0.14.0,lightkube-models==<IP_ADDRESS>,macaroonbakery==1.3.1,MarkupSafe==2.1.3,matplotlib-inline==0.1.6,multidict==6.0.4,mypy-extensions==1.0.0,oauthlib==3.2.2,packaging==23.1,paramiko==2.12.0,parso==0.8.3,pexpect==4.8.0,pickleshare==0.7.5,pip==24.0,pkgutil_resolve_name==1.3.10,pluggy==1.3.0,prompt-toolkit==3.0.39,proto-plus==1.23.0,protobuf==3.20.3,ptyprocess==0.7.0,pure-eval==0.2.2,pyasn1==0.5.0,pyasn1-modules==0.3.0,pycparser==2.21,Pygments==2.16.1,pyhcl==0.4.5,pymacaroons==0.13.0,PyNaCl==1.5.0,pyRFC3339==1.1,pyrsistent==0.19.3,pytest==7.4.2,pytest-asyncio==0.21.1,pytest-operator==0.29.0,python-dateutil==2.8.2,pytz==2023.3.post1,PyYAML==6.0.1,requests==2.31.0,requests-oauthlib==1.3.1,requests-toolbelt==0.10.1,rsa==4.9,setuptools==69.1.0,six==1.16.0,sniffio==1.3.0,stack-data==0.6.2,tabulate==0.9.0,tenacity==8.2.3,tomli==2.0.1,toposort==1.10,traitlets==5.9.0,typing-inspect==0.9.0,typing_extensions==4.7.1,urllib3==1.26.16,wcwidth==0.2.6,websocket-client==1.6.2,websockets==8.1,wheel==0.42.0,yarl==1.9.2,zipp==3.16.2
bundle-integration-v2: commands[0]> pytest -vv --tb=native -s --model kubeflow --bundle=./tests/integration/bundles/kfp_latest_edge.yaml.j2 --destructive-mode /home/runner/work/kfp-operators/kfp-operators/tests/integration/test_kfp_functional_v2.py
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.4.2, pluggy-1.3.0 -- /home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/bin/python
cachedir: .tox/bundle-integration-v2/.pytest_cache
rootdir: /home/runner/work/kfp-operators/kfp-operators
configfile: pyproject.toml
plugins: operator-0.29.0, asyncio-0.21.1, anyio-4.0.0
asyncio: mode=strict
collecting ... collected 6 items

tests/integration/test_kfp_functional_v2.py::test_build_and_deploy PASSED
tests/integration/test_kfp_functional_v2.py::test_upload_pipeline Forwarding from <IP_ADDRESS>:8080 -> 3000
Forwarding from [::1]:8080 -> 3000
Handling connection for 8080
Handling connection for 8080
PASSED
tests/integration/test_kfp_functional_v2.py::test_create_and_monitor_run Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Experiment details: http://localhost:8080/#/experiments/details/0a41ffed-9690-49f3-ba6f-6e279fe24755
Experiment details: http://localhost:8080/#/experiments/details/0a41ffed-9690-49f3-ba6f-6e279fe24755
Run details: http://localhost:8080/#/runs/details/9e859b91-47fa-4fe9-a9f1-45d33207a1aa
FAILEDHandling connection for 8080

tests/integration/test_kfp_functional_v2.py::test_create_and_monitor_recurring_run Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Handling connection for 8080
Experiment details: http://localhost:8080/#/experiments/details/97d9298f-cdf4-42d0-a25b-d230c7b091fa
PASSEDHandling connection for 8080
Handling connection for 8080
Handling connection for 8080

tests/integration/test_kfp_functional_v2.py::test_apply_sample_viewer PASSED
tests/integration/test_kfp_functional_v2.py::test_viz_server_healthcheck PASSED

=================================== FAILURES ===================================
_________________________ test_create_and_monitor_run __________________________
Traceback (most recent call last):
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/_pytest/runner.py", line 341, in from_call
    result: Optional[TResult] = func()
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/_pytest/runner.py", line 262, in <lambda>
    lambda: ihook(item=item, **kwds), when=when, reraise=reraise
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_hooks.py", line 493, in __call__
    return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_manager.py", line 115, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_callers.py", line 152, in _multicall
    return outcome.get_result()
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_result.py", line 114, in get_result
    raise exc.with_traceback(exc.__traceback__)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_callers.py", line 77, in _multicall
    res = hook_impl.function(*args)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/_pytest/runner.py", line 177, in pytest_runtest_call
    raise e
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/_pytest/runner.py", line 169, in pytest_runtest_call
    item.runtest()
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/_pytest/python.py", line 1792, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_hooks.py", line 493, in __call__
    return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_manager.py", line 115, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_callers.py", line 152, in _multicall
    return outcome.get_result()
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_result.py", line 114, in get_result
    raise exc.with_traceback(exc.__traceback__)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pluggy/_callers.py", line 77, in _multicall
    res = hook_impl.function(*args)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/pytest_asyncio/plugin.py", line 532, in inner
    _loop.run_until_complete(task)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/home/runner/work/kfp-operators/kfp-operators/tests/integration/test_kfp_functional_v2.py", line 154, in test_create_and_monitor_run
    assert monitor_response.state == "SUCCEEDED"
AssertionError: assert 'FAILED' == 'SUCCEEDED'
  - SUCCEEDED
  + FAILED
------------------------------ Captured log setup ------------------------------
INFO     root:client.py:470 Creating experiment test-experiment.
------------------------------ Captured log call -------------------------------
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
INFO     root:client.py:1379 Waiting for the job to complete...
=============================== warnings summary ===============================
tests/integration/test_kfp_functional_v2.py::test_upload_pipeline
  /home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/kfp/client/client.py:159: FutureWarning: This client only works with Kubeflow Pipeline v2.0.0-beta.2 and later versions.
    warnings.warn(

tests/integration/test_kfp_functional_v2.py: 37 warnings
  /home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/kfp_server_api/rest.py:47: DeprecationWarning: HTTPResponse.getheader() is deprecated and will be removed in urllib3 v2.1.0. Instead use HTTPResponse.headers.get(name, default).
    return self.urllib3_response.getheader(name, default)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/integration/test_kfp_functional_v2.py::test_create_and_monitor_run
============ 1 failed, 5 passed, 38 warnings in 1395.30s (0:23:15) =============
Task was destroyed but it is pending!
task: <Task pending name='Task_Pinger' coro=<Connection._pinger() running at /home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/juju/client/connection.py:619> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7f173b6956a0>()]> cb=[gather.<locals>._done_callback() at /usr/lib/python3.8/asyncio/tasks.py:769, gather.<locals>._done_callback() at /usr/lib/python3.8/asyncio/tasks.py:769]>
Task was destroyed but it is pending!
task: <Task pending name='Task_Receiver' coro=<Connection._receiver() running at /home/runner/work/kfp-operators/kfp-operators/.tox/bundle-integration-v2/lib/python3.8/site-packages/juju/client/connection.py:570> wait_for=<Future finished result=None> cb=[gather.<locals>._done_callback() at /usr/lib/python3.8/asyncio/tasks.py:769, gather.<locals>._done_callback() at /usr/lib/python3.8/asyncio/tasks.py:769]>
Task was destroyed but it is pending!
task: <Task pending name='Task-12953' coro=<Event.wait() done, defined at /usr/lib/python3.8/asyncio/locks.py:296> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7f173c05a7c0>()]> cb=[gather.<locals>._done_callback() at /usr/lib/python3.8/asyncio/tasks.py:769]>
bundle-integration-v2: exit 1 (1396.61 seconds) /home/runner/work/kfp-operators/kfp-operators> pytest -vv --tb=native -s --model kubeflow --bundle=./tests/integration/bundles/kfp_latest_edge.yaml.j2 --destructive-mode /home/runner/work/kfp-operators/kfp-operators/tests/integration/test_kfp_functional_v2.py pid=16930
  bundle-integration-v2: FAIL code 1 (1417.28=setup[20.67]+cmd[1396.61] seconds)
  evaluation failed :( (1417.62 seconds)
Error: Process completed with exit code 1.

Additional Context
No response

I think this has occurred because of at least two things:

the images used by KFP have gotten larger over time (ex: gcr.io/ml-pipeline/visualization-server:2.0.3 ~=5.2GB and in past it was closer to 4.4GB)
the easimon/maximize-build-space action no longer frees up as much space as it used to (see this comment)

It appears that because of (2), the 2.0.3 track here just has enough space to run the tests, and combining (1)+(2) means that when we create a user profile, the runner runs out of space while deploying the visualization and artifact server pods in the user's namespace.

Nice quick way for unblocking us @ca-scribner!
For the long term solution I propose that we'll go with self-hosted runners https://github.com/canonical/kfp-operators/pull/428#issuecomment-2046961785
I had tried to play a bit around with those in https://github.com/canonical/kfp-operators/pull/415 and https://github.com/canonical/kfp-operators/pull/414. I'll do a cleanup and have also a dedicated PR and issue for this so we laser focus it on the changes we'll need to do holistically.
I'll have them ready by the sprint so that we can sit down with IS team and show them our blockers.
I'll add a comment here as well so that the lineage of the effort is tracked.


Use C++20 Standard Library Modules

Use modules since we're updating to C++20.

Upon further investigation, I learned modules are still very much a "dev" feature in CMake. Maybe add them in the future once they're more mature.


Issues with nested block IDs

When copying collections with several layers of nesting, the IDs of the children are getting copied as well, which results in the following error:
 ERROR: TypeError: Cannot read properties of undefined (reading 'pages_blocks_accordion_block_items_pkey')

In this case the structure looks like this:

Page (collection)

Block (array)

Accordion (array)

Item (object)

It seems like the IDs for everything are getting pulled in from the original doc, and payload adds unique constraints for the block and collection ids. For example, a block within one page can't share an ID with a block in another collection.

Just opened a PR that resolved this for my project.


[Draft] Feature/profiling

I have been circling around this idea of profiling the auto diff tree for a while and finally made an implementation that compiles and at least seems to return the correct results.
The idea is to profile the autodiff this way
// profiling info map
stan::math::profiles profiles;

// start profiling for ID = 0
start_profiling(0, profiles);
matrix_v L = cholesky_decompose(Y) + Y;
stop_profiling(0, profiles);

// start profiling for ID = 1
start_profiling(1, profiles);
matrix_v B = L * A + L * A;
matrix_v C = B * transpose(B);
stop_profiling(1, profiles);
C(0,0).grad();

stan::math::print_profiling(profiles);

Just throwing up a draft if anyone has time/energy to comment if it makes any sense or am I striking out :). This does waste var's even if what it is profiling is /prim functions, but not sure if

I would have expected that a call to grad is inside the profiling thing...no?

Mind posting a more complete example? I'm having trouble following what the different things are in the snippet.
It definitely solves a problem that I couldn't wrap my head around: how to time the forward and backward pass for the same expression (or group of expressions). But if I understand correctly, this will handle it? Now that I think about it, it makes sense... you should be able to tell where on the stack you are in the backwards sweep if you assume things get called in the same order.

I would have expected that a call to grad is inside the profiling thing...no?

If I am looking to profile in the log_prob evaluation in a model I think this might be easier to handle.

But if I understand correctly, this will handle it?

That is what I am targeting yes.

Mind posting a more complete example?

This is a complete example at the C++ level:
#include <stan/math/rev.hpp>
#include <boost/random/mersenne_twister.hpp>
#include <cstdlib>

int main(int argc, char** argv) {
    using stan::math::matrix_d;
    using stan::math::matrix_v;
    using stan::math::var;
    using stan::math::wishart_rng;
    using stan::math::cholesky_decompose;
    using stan::math::start_profiling;
    using stan::math::stop_profiling;

    int size = 300;
    if (argc > 1) {
        size = atoi(argv[1]);
    }

    // init input
    boost::random::mt19937 rng;
    matrix_d I(size, size);
    I.setZero();
    I.diagonal().setOnes();
    matrix_v Y = wishart_rng(5000, I, rng);
    matrix_v A = Eigen::VectorXd::Ones(size);

    // profiling info map
    stan::math::profiles profiles;

    // start profiling for ID = 0
    start_profiling(0, profiles);
    matrix_v L = cholesky_decompose(Y) + Y;
    stop_profiling(0, profiles);

    // start profiling for ID = 1
    start_profiling(1, profiles);
    matrix_v B = L * A + L * A;
    matrix_v C = B * transpose(B);
    stop_profiling(1, profiles);
    C(0,0).grad();

    stan::math::print_profiling(profiles);
}

As we discussed at the math meeting this could also profile other stuff like the amount of stack used etc.

This looks promising enough that I am going to make a post on how this could be used through to the Stan level. If that gets any traction then its real work time 🎉

See https://discourse.mc-stan.org/t/proposal-for-profiling-stan-models/15322/2

Will redo with suggestions on the forums and then reopen.


Clarify impact of CRUD operations to the base table when there is a materialized view

the documentation seems to imply:
require low maintenance on the views. All incremental data changes from the base tables are automatically added to the materialized views in a synchronous manner. This design allows querying materialized views to return the same data as directly querying the base tables.
does this imply there is an overhead to insert update and delete operations to the base table?
my take away after reading the article was that there was no impact to the base table however however the use of synchronous imply to me that the operations are impacted by the additional impact of maintaining the base table
is this correct?

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

ID: 98c96f9f-7e87-6341-db9c-3b68b5c3dd21
Version Independent ID: d92a3f90-0c5f-91e9-3a24-710565970420
Content: Performance tune with materialized views - Azure Synapse Analytics
Content Source: articles/synapse-analytics/sql-data-warehouse/performance-tuning-materialized-views.md
Service: synapse-analytics
Sub-service: sql-dw
GitHub Login: @XiaoyuMSFT
Microsoft Alias: xiaoyul

@jasonhorner, Thanks for the feedback! We are taking a look into this and will get back to you soon.

@jasonhorner  During DMLs on a materialized view's base tables, there's minimum impact caused by synchronizing the MV data.  The bigger maintenance impact is actually on the MV over time.  This is because all the data changes from base tables are accumulated on MV side and becomes an overhead in MV that requires manual maintenance by users.  Please check https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-pdw-showmaterializedviewoverhead-transact-sql?toc=/azure/synapse-analytics/sql-data-warehouse/toc.json&bc=/azure/synapse-analytics/sql-data-warehouse/breadcrumb/toc.json&view=azure-sqldw-latest for details.

@jasonhorner - We will add a note to this article to call it out.  Thanks.


Fixing some service account flow JWT issues.

Fixed default expiry time to be in seconds, also renamed skew variable for clarity.
Fixed documentation on service accounts creds class.
Removed obsolete 'prn' JWT claim and all references to it.
Updated CredentialsLoader::TOKEN_CREDENTIAL_URI to v4.

Fixes #94.

This CL should be ready now, PTAL.
FYI I also updated CredentialsLoader::TOKEN_CREDENTIAL_URI to v4.

merged in 965e6fb


Support for intl

As mentioned in the readme ember-form-for support i18n out of the box. But ember-i18n has been deprecated in favor of ember-intl.
So ember-form-for should also support ember-intl

@KamiKillertO , if i read the docs correct... i18n is the service name that implements the i18n addon.... as mentioned in docs:
Polyfilling i18n
The project does not have a hard dependency on ember-i18n, you can easily drop-in your own implementation. All you need is a service called i18n that has a function called t.


Fix/update eslint config prettier

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How can I set a timout when network is unreachable? (S3)

I am trying to set a timeout for downloading from s3 storage (with cognito credential).
When network is reachable, the CancellationToken works well, but when
network is unreachable, async function freezes, and the CancellationToken does not work.
Is there any way to solve this issue?
I use GetObjectAsync and WriteResponseStreamToFileAsync function, and GetObjectAsync freeze without network connection.
(Platform:Xamarin.iOS)

@nakky : Would you send code snippet please so I can try to reproduce? Using Unified API 64b(AWSSDK.iOS) or classic 32b (AWSSDK.iOS-Classic)?


Possible to support different grammars for the same language?

TLDR:
I would like to know whether it's technically feasible for multiple grammars for a single programming language (so the same major mode) to be integrated into emacs-tree-sitter, at least so that a user might choose which one to use.

The long version:
I made a grammar for the Janet programming language last year and discovered that at about the same time someone else had also made one.
It turns out we took somewhat different approaches in what we supported.
The approach I've taken is to try to recognize the bare minimum.  One advantage of this is that the parse results appear to be more accurate -- adding more constructs yielded more errors during testing and it was also more difficult to get tree-sitter to accept.  A drawback is that more work may need to be done for highligting (and possibly other features) because less is recognized.
The other grammar tries to recognize more constructs but at least from my testing I think it can misrecognize certain things (though that doesn't necessarily show up as an error) which the "simpler" grammar does not.  It also may not be as suited for structural editing purposes because it recognizes certain forms specifically (e.g. there is a def node) and such things are consequently not idenitfiable via the grammar as lists (actually in Janet called "tuples").
I suspect that depending on what one wants to achieve which one is preferable may differ.  It didn't occur to me until recently that it might be possible for both to be available in a single editor, but after talking with the nvim-treesitter folks, it seems it might be possible there.
This brings me to the TLDR point:

I would like to know whether it's technically feasible for multiple grammars for a single programming language (so the same major mode) to be integrated into emacs-tree-sitter, at least so that a user might choose which one to use.

Is it currently possible?
I looked at: https://github.com/ubolonton/emacs-tree-sitter/blob/master/langs/tree-sitter-langs.el#L81-L107 and started to wonder whether it's not going to work to put a couple of things in there that both start with janet-mode.
I've changed the name of the grammar I worked on to differ from the other one so at least adding to the following section seems like it could work out ok: https://github.com/ubolonton/emacs-tree-sitter/blob/master/langs/tree-sitter-langs-build.el#L81-L104
Thanks for your consideration.

I would like to know whether it's technically feasible for multiple grammars for a single programming language (so the same major mode) to be integrated into emacs-tree-sitter, at least so that a user might choose which one to use.

Is it currently possible?
I looked at: https://github.com/ubolonton/emacs-tree-sitter/blob/master/langs/tree-sitter-langs.el#L81-L107 and started to wonder whether it's not going to work to put a couple of things in there that both start with janet-mode.
I've changed the name of the grammar I worked on to differ from the other one so at least adding to the following section seems like it could work out ok: https://github.com/ubolonton/emacs-tree-sitter/blob/master/langs/tree-sitter-langs-build.el#L81-L104

If you can change the major mode, you don't actually need to put it in tree-sitter-major-mode-language-alist. That list is mainly intended for major modes that are not aware of tree-sitter.
You can simply set tree-sitter-language in the major mode's initialization code. Then it's up to the major mode to select the grammar. You should still have different names for the grammars though, to make it work with tree-sitter-require. (It's possible to use the same name, but you would have to use tsc--load-language directly, and it would be more confusing.) If you don't have control over the major mode, you can still put the grammar-selecting logic in the mode's hook.
If you want 2 parse trees in the same buffer instead, you would need to define an advice for tree-sitter--do-parse, as well as additional buffer-local variables for the secondary grammar.

I would like to know whether it's technically feasible for multiple grammars for a single programming language (so the same major mode) to be integrated into emacs-tree-sitter, at least so that a user might choose which one to use.

Is it currently possible?
I looked at: https://github.com/ubolonton/emacs-tree-sitter/blob/master/langs/tree-sitter-langs.el#L81-L107 and started to wonder whether it's not going to work to put a couple of things in there that both start with janet-mode.
I've changed the name of the grammar I worked on to differ from the other one so at least adding to the following section seems like it could work out ok: https://github.com/ubolonton/emacs-tree-sitter/blob/master/langs/tree-sitter-langs-build.el#L81-L104

If you can change the major mode, you don't actually need to put it in tree-sitter-major-mode-language-alist. That list is mainly intended for major modes that are not aware of tree-sitter.
You can simply set tree-sitter-language in the major mode's initialization code. Then it's up to the major mode to select the grammar. You should still have different names for the grammars though, to make it work with tree-sitter-require. (It's possible to use the same name, but you would have to use tsc--load-language directly, and it would be more confusing.) If you don't have control over the major mode, you can still put the grammar-selecting logic in the mode's hook.
If you want 2 parse trees in the same buffer instead, you would need to define an advice for tree-sitter--do-parse, as well as additional buffer-local variables for the secondary grammar.

Thanks again for your considered response!
I took the path of trying to use an existing mode janet-mode and utilized janet-mode-hook to set tree-sitter-language.  It seemed that setting tree-sitter-hl-default-patterns was helpful in gettings things to work as well.
For future reference, I ended up with something like:
;;; janet-mode
(straight-use-package
 '(janet-mode :host github
              :repo "ALSchwalm/janet-mode"
              :files ("*.el")))

(use-package janet-mode
  :straight t
  :config
  (add-hook 'janet-mode-hook
            (lambda ()
              (setq tree-sitter-language
                    (tree-sitter-require 'janet
                                         "janet_simple"
                                         "tree_sitter_janet_simple"))
              (setq tree-sitter-hl-default-patterns
                    (condition-case nil
                        (with-temp-buffer
                          (insert-file-contents
                           ;; XXX
                           (expand-file-name
                            (concat
                             "~/.emacs.d/straight/repos/emacs-tree-sitter"
                             "/langs/queries/janet-simple/highlights.scm")))
                          (goto-char (point-max))
                          (insert "\n")
                          (buffer-string))
                      (file-missing nil))))))

Thank you also for the hints on having 2 parse trees in the same buffer.  I haven't tried this yet, but am glad to hear it seems doable as I might give it a try at some point.

Thanks again for your considered response!
I took the path of trying to use an existing mode janet-mode and utilized janet-mode-hook to set tree-sitter-language.  It seemed that setting tree-sitter-hl-default-patterns was helpful in gettings things to work as well.
For future reference, I ended up with something like:
;;; janet-mode
(straight-use-package
 '(janet-mode :host github
              :repo "ALSchwalm/janet-mode"
              :files ("*.el")))

(use-package janet-mode
  :straight t
  :config
  (add-hook 'janet-mode-hook
            (lambda ()
              (setq tree-sitter-language
                    (tree-sitter-require 'janet
                                         "janet_simple"
                                         "tree_sitter_janet_simple"))
              (setq tree-sitter-hl-default-patterns
                    (condition-case nil
                        (with-temp-buffer
                          (insert-file-contents
                           ;; XXX
                           (expand-file-name
                            (concat
                             "~/.emacs.d/straight/repos/emacs-tree-sitter"
                             "/langs/queries/janet-simple/highlights.scm")))
                          (goto-char (point-max))
                          (insert "\n")
                          (buffer-string))
                      (file-missing nil))))))

Thank you also for the hints on having 2 parse trees in the same buffer.  I haven't tried this yet, but am glad to hear it seems doable as I might give it a try at some point.

Continuing along these lines, I experimented with making a major mode that works with tree-sitter to begin with.
I noticed there was a sketch of necessary bits for a major mode here: https://github.com/ubolonton/emacs-tree-sitter/issues/70#issuecomment-725390930
Are the details still up-to-date?
There is at least one thing that seemed different in that example from what was mentioned earlier in this issue.  I got the impression that it was not necessary to set tree-sitter-major-mode-language-alist if one is defining a major mode appropriately, but the other issue's sample code seems to be setting it.
I am asking because I did not have much luck with getting the highlighting to function.  It seems like an appropriate grammar is loaded and tree-sitter-hl-default-patterns is set.  I am also able to see the tree via the debug mode and see highlighted results via the query builder.
The major mode code does basically:
(require 'tree-sitter)
(require 'tree-sitter-hl)
;;; skipping lines
(define-derived-mode a-janet-mode prog-mode "a-janet"
  "Major mode for the Janet language"
  ;; skipping lines
  (setq tree-sitter-hl-default-patterns
        "(keyword) @type\n")
  (setq tree-sitter-language
        (tree-sitter-require 'janet-simple
                             "janet_simple"
                             "tree_sitter_janet_simple"))
  (tree-sitter-hl-mode))

Any hints?
May be I should start a new issue or append to the other one?

Continuing along these lines, I experimented with making a major mode that works with tree-sitter to begin with.
I noticed there was a sketch of necessary bits for a major mode here: https://github.com/ubolonton/emacs-tree-sitter/issues/70#issuecomment-725390930
Are the details still up-to-date?
There is at least one thing that seemed different in that example from what was mentioned earlier in this issue.  I got the impression that it was not necessary to set tree-sitter-major-mode-language-alist if one is defining a major mode appropriately, but the other issue's sample code seems to be setting it.
I am asking because I did not have much luck with getting the highlighting to function.  It seems like an appropriate grammar is loaded and tree-sitter-hl-default-patterns is set.  I am also able to see the tree via the debug mode and see highlighted results via the query builder.
The major mode code does basically:
(require 'tree-sitter)
(require 'tree-sitter-hl)
;;; skipping lines
(define-derived-mode a-janet-mode prog-mode "a-janet"
  "Major mode for the Janet language"
  ;; skipping lines
  (setq tree-sitter-hl-default-patterns
        "(keyword) @type\n")
  (setq tree-sitter-language
        (tree-sitter-require 'janet-simple
                             "janet_simple"
                             "tree_sitter_janet_simple"))
  (tree-sitter-hl-mode))

Any hints?
May be I should start a new issue or append to the other one?

I noticed there was a sketch of necessary bits for a major mode here: #70 (comment)
Are the details still up-to-date?

I think so, but you should probably look at  csharp-tree-sitter.el instead.

I am asking because I did not have much luck with getting the highlighting to function. It seems like an appropriate grammar is loaded and tree-sitter-hl-default-patterns is set. I am also able to see the tree via the debug mode and see highlighted results via the query builder.

Do you have the grammar and the full code for the major mode somewhere? You can also check #87 on how to debug highlighting issues.

I noticed there was a sketch of necessary bits for a major mode here: #70 (comment)
Are the details still up-to-date?

I think so, but you should probably look at  csharp-tree-sitter.el instead.

I am asking because I did not have much luck with getting the highlighting to function. It seems like an appropriate grammar is loaded and tree-sitter-hl-default-patterns is set. I am also able to see the tree via the debug mode and see highlighted results via the query builder.

Do you have the grammar and the full code for the major mode somewhere? You can also check #87 on how to debug highlighting issues.

@ubolonton
The csharp-tree-sitter.el code was very helpful.  With this bit from it, highlighting is now working here:
  ;; https://github.com/ubolonton/emacs-tree-sitter/issues/84
  (unless font-lock-defaults
    (setq font-lock-defaults '(nil)))

Thanks also for pointing out #87.  Having examined the mentioned symbols / values pointed out there, I noticed some were not as expected here.
Thanks again!

@ubolonton
The csharp-tree-sitter.el code was very helpful.  With this bit from it, highlighting is now working here:
  ;; https://github.com/ubolonton/emacs-tree-sitter/issues/84
  (unless font-lock-defaults
    (setq font-lock-defaults '(nil)))

Thanks also for pointing out #87.  Having examined the mentioned symbols / values pointed out there, I noticed some were not as expected here.
Thanks again!


Add support to choose ec2 instance type for data nodes and ml-nodes.

Is your feature request related to a problem? Please describe
The nightly benchmark runs are happening only against the default instance type r5.xlarge and r6g.xlarge`.
Describe the solution you'd like
Since https://github.com/opensearch-project/opensearch-cluster-cdk supports choosing ec2 instance types, the nightly benchmark should also be able to add that support to choose desired ec2 instance type.
Describe alternatives you've considered
No response
Additional context
No response

Closing via https://github.com/opensearch-project/opensearch-cluster-cdk/pull/30


Release/v1.0.3

This PR introduces the following changes

replace polymer by lit

use rollup js as module bundler

Syncmeta widgets are styled by bootstrap
Update to bootstrap 5
Updated README with list of bots
Overall design improvments

In the README.md is a typo in the bot list
Slack - Contacat us


Make Name the only required field

Why?

Pull Request Test Coverage Report for Build 109

11 of 13 (84.62%) changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.06%) to 92.647%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/seedu/recipe/logic/parser/ParserUtil.java
6
8
75.0%

Totals

Change from base Build 105:
-0.06%

Covered Lines:
1827

Relevant Lines:
1972

💛  - Coveralls


refactor: remove pointless regex from get_first_word

What type of pull request is this?

[x] Non-breaking code change
[ ] Breaking code change
[ ] Documentation change/addition
[ ] Tests change

Description
On today's episode of "Astrea messes around with message commands", we find a startling discovery! It seems as if someone loves regex too much... is that an unneeded regex I see? Oh, how expected!
(Jokes aside, get_first_word was using regex when str.split() does the same thing. This was done because it was thought str.split() only splits by spaces, but it splits by whitespace instead. Suggesting how .split() is faster than using a whole regex, it's probably for the best.)
Changes

Use str.split() over regex for input_utils.get_first_word.

Adjustments were done to make sure this wasn't a breaking change, even for that one function.
...though the initial_word regex variable was removed. It probably wasn't used anyways.
I also decided to use maxsplit=1 just so Python doesn't have to split 1000 times when we only need to get the first split.
Also, str.split() automatically does a little str.strip() (or something like it) on its own when using it, so that's nice.

Checklist

[x] I've formatted my code with Black
[x] I've ensured my code works on Python 3.10.x
[x] I've tested my code

It seems as if someone loves regex too much

/^[a-zA-Z0-9 \s\.\!\?\"\-]+$/


deploy:fetch throwing error : TypeError: Cannot read property 'run' of undefined

Hi,
I am getting  TypeError: Cannot read property 'run' of undefined error when i'm trying to deploy. please help me get a fix it. deployment was working fine suddenly i started getting this error.
cmd used: npx shipit staging deploy
Running 'deploy:init' task...
Finished 'deploy:init' after 453 μs
Running 'deploy:fetch' task...
Setup workspace...
/app/node_modules/shipit-cli/lib/Shipit.js:209
      return _this.pool.run(command, options);
                        ^

TypeError: Cannot read property 'run' of undefined
    at /app/node_modules/shipit-cli/lib/Shipit.js:209:25
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/app/node_modules/shipit-cli/lib/Shipit.js:18:103)
    at _next (/app/node_modules/shipit-cli/lib/Shipit.js:20:194)
    at /app/node_modules/shipit-cli/lib/Shipit.js:20:364
    at new Promise (<anonymous>)
    at /app/node_modules/shipit-cli/lib/Shipit.js:20:97
    at Shipit.remote (/app/node_modules/shipit-cli/lib/Shipit.js:210:7)
    at Shipit.<anonymous> (/app/shipitfile.js:34:14)
    at Shipit.emit (node:events:381:22)
    at Shipit.initialize (/app/node_modules/shipit-cli/lib/Shipit.js:100:10)
    at /app/node_modules/shipit-cli/lib/cli.js:89:14
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/app/node_modules/shipit-cli/lib/cli.js:19:103)
    at _next (/app/node_modules/shipit-cli/lib/cli.js:21:194)

below is my configuration:
shipitfile.js
module.exports = shipit => {
    require('shipit-deploy')(shipit);
    require('shipit-shared')(shipit);
    shipit.initConfig({
      default: {
        deployTo: '/var/www/example.com',
        keepReleases: 5,
        shared: {
          overwrite: true,
          dirs: ['node_modules'],
          files: ['.env']
        }
      },
      staging: {
        servers<EMAIL_ADDRESS>        branch: 'staging'
      },
    });

        // Callbacks

    shipit.on('init', () => {
      shipit.remote(`set NODE_ENV=${shipit.environment}`);
    })
    shipit.on('updated', () => {
      shipit.start('npm-install');
    });

    shipit.on('published', () => {

      shipit.start('db:migrate');
      shipit.start('pm2-server');
    });

    // Tasks
    shipit.blTask('npm-install', async () => {
      shipit.remote(`cd ${shipit.releasePath} && npm install --${shipit.environment}`);
    });

    shipit.blTask('pm2-server', async () => {
      await shipit.remote(`pm2 delete -s ${appName} || :`);
      await shipit.remote(
        `pm2 start ${shipit.releasePath}/app.js --env ${shipit.environment} --watch true --name ${appName}`
      );
    });

    shipit.blTask('db:migrate', async () => {
      shipit.remote(`cd ${shipit.releasePath} && npx sequelize db:migrate --env ${shipit.environment}`);
    });

 }

Please help me to sort this out thanks in advance.

Hi @VishalTaj,
I am facing the same problem. Did you get the solution to this?

Hi @agnipanda , for me it was the issue with node , npm version. when i changed to correct version issue got fixed.


This policy is too long.... AWS won't accept it.

File: docker-for-aws/iam-permissions.md, CC @johndmulhausen
Is there a way to shorten this policy? I'm getting the following error:
Limit exceeded
Your request exceeds one of the limits for this account. Remove one or more existing items and try again. To request a limit increase, contact AWS Customer Support. Learn more
Cannot exceed quota for PolicySize: 6144

Closing this ticket due to its age, and the impending refactor. If you think this is in error, feel free to reopen. Thanks!


Cursor being moved to start of line when entering Visual Mode

Hello! Hope you are well :)
Whenever I enter Visual Mode, the cursor is automatically moved to the start of the line, which is really not a problem for line-wise visual mode, but is quite frustrating when using character or block-wise visual mode.
Is there any way to make it stay in place (as it happens on terminal Neovim)? I tried searching for a solution before posting, but found none - maybe I'm not searching the right terms, idk. Anyway, thanks for the help!
In VSCode:

In Neovim (terminal):

Try with empty init.vim

Try with empty init.vim

Then it works, sorry about that... Do you have any idea what could be causing it - I mean, is there any usual setting that does this?

Found it is an issue with the NeoVim Ui Modifier extension's configuration. Thanks for the help!

Any fix?

Any fix? The plugin is really nice

I've opened an issue on the extension's repo, but got no response.


Vulnerability roundup 106: libssh-0.8.9: 1 advisory [6.5]

search, files

[ ] CVE-2021-3634 CVSSv3=6.5 (nixos-21.05, nixos-unstable)

CVE details
CVE-2021-3634
A flaw has been found in libssh in versions prior to 0.9.6. The SSH protocol keeps track of two shared secrets during the lifetime of the session. One of them is called secret_hash and the other session_id. Initially, both of them are the same, but after key re-exchange, previous session_id is kept and used as an input to new secret_hash. Historically, both of these buffers had shared length variable, which worked as long as these buffers were same. But the key re-exchange operation can also change the key exchange method, which can be based on hash of different size, eventually creating "secret_hash" of different size than the session_id has. This becomes an issue when the session_id memory is zeroed or when it is used again during second key re-exchange.

Scanned versions: nixos-21.05: 6120ac5cd20; nixos-unstable: bc9b956714e.
Cc @svanderburg

CVE was introduced in 0.9.1


Remove Automatic Creation of FireFox Browser When No WebDriver Bound

The problem
Could you please add a check to the property "selenide.reopenBrowserOnFail" in WebDriverThreadLocalContainer.getWebDriver()? Line 95 has a log message that "No webdriver is bound to the current thread", followed by line 96 which creates a new driver.
Details
We happen to manage our own browser lifecycles (using WebDriverRunner.setWebDriver()) and run all of our tests on an internal hub/nodes, and would prefer no browser to be created if no webdriver is bound to the current thread. Currently, if we declare and initialize Selenide Page Objects outside of our test methods we are experiencing FireFox browsers being opened locally, even when running remotely. These browsers are never utilized as our tests use TestNG annotations (@BeforeClass) to set the WebDriver to a new instance of whatever type we've specified in our configuration files.
With the existing code, there seems to be no way to prevent the creation of a new FireFox browser, even if our tests handle the creation internally.
Code To Reproduce Issue
public class SomeClass {
//this will spawn a FF browser - it should not if reopenBrowserOnFail is 'false'
private static SomePageObject somePageObject = page(SomePageObject.class);
@Test
public void someTest() {
//this will also spawn a FF browser - it should not if reopenBrowserOnFail is 'false'
$("").click();
}

Hi, @cmkatarn, thank you for feedback.
I don't undestand what we should do in your example

@test
public void someTest() {
//this will also spawn a FF browser - it should not if reopenBrowserOnFail is 'false' reopenbrowser
$("").click();
}

What will happen when I call click() and there is no driver? throw exception? It is ridiculous..

Can you explain what is expected behavior for you? What should Selenide do
if you try to create a page object, but haven't initialized browser yet?
On Feb 15, 2018 18:56, "cmkatarn"<EMAIL_ADDRESS>wrote:

The problem
Could you please add a check to the property
"selenide.reopenBrowserOnFail" in WebDriverThreadLocalContainer.getWebDriver()?
Line 95 has a log message that "No webdriver is bound to the current
thread", followed by line 96 which creates a new driver.
Details
We happen to manage our own browser lifecycles (using
WebDriverRunner.setWebDriver()) and run all of our tests on an internal
hub/nodes, and would prefer no browser to be created if no webdriver is
bound to the current thread. Currently, if we declare and initialize
Selenide Page Objects outside of our test methods we are experiencing
FireFox browsers being opened locally, even when running remotely. These
browsers are never utilized as our tests use TestNG annotations
(@beforeclass) to set the WebDriver to a new instance of whatever type
we've specified in our configuration files.
With the existing code, there seems to be no way to prevent the creation
of a new FireFox browser, even if our tests handle the creation internally.
Code To Reproduce Issue
public class SomeClass {
//this will spawn a FF browser - it should not if reopenBrowserOnFail is
'false'
private static SomePageObject somePageObject = page(SomePageObject.class);
@test https://github.com/test
public void someTest() {
//this will also spawn a FF browser - it should not if reopenBrowserOnFail
is 'false'
reopenbrowser$("").click();
}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/codeborne/selenide/issues/695, or mute the thread
https://github.com/notifications/unsubscribe-auth/AARE3aTQxvLDKXJ4_VrQs0tdSNjx8cjxks5tVGHVgaJpZM4SHKxx
.

@BorisOsipov The creation of a WebDriver should be the responsibility of the user/author. If they would like to disable the automatic creation of a WebDriver due to their own handling of that creation, then they should be able to do that. We currently handle webdriver creation in a @BeforeClass extended by all of our test Classes, and so in the instance that a test class gets merged with initialization of a Page Object BEFORE the @BeforeClass, we end up with an extra local FireFox browser, even when we've specified we want to use Chrome, and even if we're running remotely. By leveraging a System property to determine whether or not to create a new webdriver and default it to FireFox, the responsibility falls on the engineer.
@asolntsev If we are creating a Page Object but have not yet created a webdriver, we should make a check against a System Property to determine our behavior. Ideally, that System Property would default to 'true' so that we do not impact existing tests, but that way the engineer can decide what happens in this instance, rather than having a local FireFox browser forced onto them.

@asolntsev Requiring the engineer to fix the test is preferable to having the desktop of whoever is running the suite of tests hijacked by occasional local instances of FireFox.
Assuming the use of a System Property variable, either solution I had in mind (either return 'null' or throw an exception) would result in the test failing, but the Agent running the suite could continue with whatever they're doing unimpeded.

Looks like I have the same problem and it's related to TestNG with DataProvider run in parallel:

when you create driver in @BeforeTest/@BeforeClass method it's created in one thread
test that suppose to use this driver is run in another thread
Selenide cannot get already instantiated driver from different thread because thread id seams different

Cannot be reproduced:

without parallel execution
if you create driver specifically in test

Is this really possible to fix?
Code to reproduce
@BeforeTest
public void setUp() {
    WebDriver driver = new ChromeDriver();
    WebDriverRunner.setWebDriver(driver);
}

@DataProvider(name = "bar", parallel = true)
public Object[][] bar() {
    return new Object[][]{
            {
                    "http://www.google.com",
            },
    };
}

@Test(dataProvider = "bar")
public void foo(String url){
    Selenide.open(url);
}

selenide: 4.10.01 testng: 6.14.2 guava: 23.0
Check screenshoot
There is driver already created but getAndCheckWebDriver() method decide to create another one and that is why you will see another browser instance (FF is default one)

Hello - this was already partially implemented in issues 244 and 433. I like cmkatarn's suggestion and it would be very helpful for us. Perhaps throw an unsupported operation exception? The logic being, Selenide was asked to do something with the browser, a webdriver is not bound to the current thread, and also Selenide was told to not spawn a browser (via the selenide.reopenBrowserOnFail property).

@ken-p Yes, definitely, we should implement @cmkatarn suggestion. I will do it.
But it will NOT solve the issue described by @pashidlos.
@pashidlos I recommend you to implement WebDriverProvider instead of calling method WebDriverRunner.setWebDriver(). Then Selenide will open the browser at the right moment in the right thread. See https://github.com/codeborne/selenide/blob/master/src/test/java/integration/CustomWebDriverProviderTest.java for example.

Fixed by https://github.com/codeborne/selenide/pull/754


Question: Is it possible to mount soulmate in a rails 3 app?

If so, how would one do it? I'd like to get the soulmate search at a url like /sm/search...
I've tried:
mount Soulmate::Server, :at => "/sm"
In my routes file with no luck. I also have this in an initializer:
require 'soulmate/server'
Thanks!

Sorry, mounting it there works. I had a silly unrelated error.

Cool, I'm glad to hear you got it working. I hadn't event known that was possible.

Yup, that's all that is needed. Now queries at rails-app-url/sm/search? work. No need to start the web frontend (rails will take care of it), and no need for JSONP. Works like a charm.

Nice, this is a much cleaner way to add soulmate to a rails app.
I had some trouble with chrome and jsonp (unexpected token :) that I couldn't resolve. Keeping it all in the same app makes it much easier.
For those who want to know how to do this:
Add this to your routes.rb:
mount Soulmate::Server, :at => "/sm"
Add this to gemfile:
gem 'rack-contrib'
gem 'soulmate', :require => 'soulmate/server'
Then make your ajax url:
var url = "/sm/search?types[]=venues&limit=6&term=" + query;

Is there a similar way to mount on a rails 2.3 app?


[gpio] GPIO to D3 for v1.1

This commit moves GPIO HWIP to D3 for version 1.1

@alphan could you take a look as well? See also the associated review doc.


ERROR ~ Error executing process > 'NFCORE_VIRALRECON:NANOPORE:ARTIC_MINION'

Description of the bug
When running nf-core/viralrecon, the medaka minion throws an error. Seems the model cannot be downloaded via the medaka minion script. scm file with github credentials is present, internet connection is available.
Command used and terminal output
nextflow run nf-core/viralrecon -qs 4 -revision 2.6.0 -profile docker
--input results/benchmarking/nf-core-viralrecon/nanopore/sample-sheets/2_ont/sample_sheet.csv --sequencing_summary data/RAW/ONT_batch2/sequencing_summary.txt
--fastq_dir resources/benchmarking/data/nf-core-viralrecon/2_ont/fastq_pass
--fast5_dir resources/benchmarking/data/nf-core-viralrecon/2_ont/fast5_pass
--platform nanopore
--genome 'MN908947.3'
--primer_set_version 3
--artic_minion_caller medaka
--artic_minion_medaka_model r941_min_fast_g303
--outdir results/benchmarking/nf-core-viralrecon/nanopore/medaka/2_ont

Command error:
  [M::mm_idx_stat::0.007*3.40] distinct minimizers: 5587 (99.93% are singletons); average occurrences: 1.004; average spacing: 5.332; total length: 29903
  [M::worker_pipeline::17.215*4.14] mapped 365148 sequences
  [M::main] Version: 2.24-r1122
  [M::main] CMD: minimap2 -a -x map-ont -t 12 ./primer-schemes/nCoV-2019/V3/nCoV-2019.reference.fasta 2_ont.fastq.gz
  [M::main] Real time: 17.218 sec; CPU: 71.326 sec; Peak RSS: 0.489 GB
  Traceback (most recent call last):
    File "/usr/local/lib/python3.8/site-packages/medaka/medaka.py", line 35, in __call__
      model_fp = medaka.models.resolve_model(val)
    File "/usr/local/lib/python3.8/site-packages/medaka/models.py", line 66, in resolve_model
      raise DownloadError(
  medaka.models.DownloadError: The model file for r941_min_fast_g303 is not already installed and could not be downloaded. Check you are connected to the internet and try again.

Relevant files
nextflow.log
System information
nextflow version <IP_ADDRESS>66
Linux server
locally executed in docker container
nf-core/viralrecon 2.6.0

Sorry for the late reply @alethomas ! We will have a closer look to this to see what happens, but a workaround we do for the CI tests is downloading the model before running the pipeline trough: wget https://github.com/nanoporetech/medaka/raw/master/medaka/data/r941_min_high_g360_model.hdf5
This might temporarily solve the problem.


Bug in release action

          hm, one more problem while creating a shanpshot @petertrr

Originally posted by @kgevorkyan in https://github.com/saveourtool/save-cli/issues/501#issuecomment-1439705340

https://github.com/saveourtool/save-cli/pull/501#issuecomment-1439745605


epaint::text::Glyph should own a grapheme cluster, not a char

Related to #56, #2517.
epaint should probably use unicode-segmentation to split strings with Unicode awareness. And ultimately the Glyph type needs to own a grapheme cluster instead of a char. I.e., the chr field might be changed to a String, Range, or even &'a str.
This should help improve written language integration, and will also fix bugs with text rendering. For example, if you insert an emoji with skin tone (which is composed of two Unicode code points) egui will render two Glyphs:

use eframe::egui;

fn main() {
    let options = eframe::NativeOptions {
        initial_window_size: Some(egui::vec2(320.0, 240.0)),
        ..Default::default()
    };
    eframe::run_native(
        "Thumbs Up",
        options,
        Box::new(|_cc| Box::<MyApp>::default()),
    );
}

#[derive(Default)]
struct MyApp {}

impl eframe::App for MyApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        egui::CentralPanel::default().show(ctx, |ui| {
            ui.label("👍🏾");
        });
    }
}

You can see the specific code points with the escape_unicode() method:
fn main() {
    println!("👍🏾: {}", "👍🏾".escape_unicode());
}

Prints:
👍🏾: \u{1f44d}\u{1f3fe}

Additional context:
I discovered this issue as I was making a terminal-emulator-like project. I am rendering strings directly with Galleys and I have a need to count the number of fixed-width columns in each Galley row. char does not accurately map to a single cell in my "terminal" (as demonstrated above). But the Glyph type and its Row counterpart are the closest thing that egui exposes for getting the length of a row after it is broken into paragraphs by text layout.

Related: https://github.com/emilk/egui/issues/62


text-wrap: balance is css(unknownProperties)

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.81.1
OS Version: Ventura 13.5

Steps to Reproduce:

write text-wrap: balance
observer error

Support for text-wrap just got added and is in the next build.


change -bare to -q/--quiet option: only print the number, for piping into other programs.

Dropping this, doesn't really make it more clear and will introduce backwards incompatibility


Create Discourse

https://github.com/Rodri-R/akash-discourse

There's no deplo.yaml file here?

Hi Adam, I will add all the info here ASAP


#36 Introduced series with max and min

Closes: #36

@Graur could you please take a look? max and min objects and their tests are almost identical but some of them work, some don't.

@Graur please, take a look

@Graur I think it's good to merge

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@maxonfjvipon @yegor256 Oops, I failed. You can see the full log here (spent 5min)
+ head=git@github.com:objectionary/eo-math.git
+ export pull_id=40
+ pull_id=40
+ export fork=git@github.com:maxonfjvipon/eo-math.git
+ fork=git@github.com:maxonfjvipon/eo-math.git
+ export fork_branch=#36_series
+ fork_branch='#36_series'
+ export head_branch=master
+ head_branch=master
+ export 'pull_title=#36 Introduced `series` with `max` and `min`'
+ pull_title='#36 Introduced `series` with `max` and `min`'
+ export author=yegor256
+ author=yegor256
+ pdd --file=/dev/null
Found 6 lines in /home/r/repo/.pdd
My version is 0.20.8
Ruby version is 2.7.0 at x86_64-linux
Reading from root dir .
\u001b[38;5;214mExcluding\u001b[0m target/**
Reading .gitattributes ...
Reading LICENSE.txt ...
Reading .github/workflows/pdd.yml ...
Reading .github/workflows/codecov.yml ...
Reading .github/workflows/xcop.yml ...
Reading .github/workflows/mvn.yml ...
Reading README.md ...
Reading .0pdd.yml ...
Reading pom.xml ...
Reading .gitignore ...
Reading .rultor.yml ...
Reading .pdd ...
Reading src/test/java/EOorg/EOeolang/EOmath/EOangleEOcosTest.java ...
Reading src/test/java/EOorg/EOeolang/EOmath/EOangleEOsinTest.java ...
Reading src/test/java/EOorg/EOeolang/EOmath/package-info.java ...
Reading src/test/eo/org/eolang/math/pi-tests.eo ...
Reading src/test/eo/org/eolang/math/number-tests.eo ...
Reading src/test/eo/org/eolang/math/e-tests.eo ...
Reading src/test/eo/org/eolang/math/nan-tests.eo ...
Reading src/test/eo/org/eolang/math/series-tests.eo ...
Reading src/test/eo/org/eolang/math/angle-tests.eo ...
Reading src/test/eo/org/eolang/math/random-tests.eo ...
Reading src/main/java/EOorg/EOeolang/EOmath/EOnumber$EOas_string.java ...
Reading src/main/java/EOorg/EOeolang/EOmath/EOnumber$EOas_float.java ...
Reading src/main/java/EOorg/EOeolang/EOmath/EOrandom$EOpseudo.java ...
Reading src/main/java/EOorg/EOeolang/EOmath/EOnumber$EOas_int.java ...
Reading src/main/java/EOorg/EOeolang/EOmath/EOangle$EOcos.java ...
Reading src/main/java/EOorg/EOeolang/EOmath/EOnumber$EOpow.java ...
Reading src/main/java/EOorg/EOeolang/EOmath/EOangle$EOsin.java ...
Reading src/main/java/EOorg/EOeolang/EOmath/package-info.java ...
Reading src/main/eo/org/eolang/math/pi.eo ...
Reading src/main/eo/org/eolang/math/angle.eo ...
Reading src/main/eo/org/eolang/math/number.eo ...
Puzzle 21-dd9dd514 30/DEV at src/main/eo/org/eolang/math/number.eo
Puzzle 21-9a1034f5 30/DEV at src/main/eo/org/eolang/math/number.eo
Reading src/main/eo/org/eolang/math/series.eo ...
\u001b[31mERROR\u001b[0m: src/main/eo/org/eolang/math/series.eo; src/main/eo/org/eolang/math/series.eo:33 Space expected at 35:4; make sure all lines in the puzzle body have a single leading space.
If you can't understand the cause of this issue or you don't know how to fix it, please submit a GitHub issue, we will try to help you: https://github.com/cqfn/pdd/issues. This tool is still in its beta version and we will appreciate your feedback. Here is where you can find more documentation: https://github.com/cqfn/pdd/blob/master/README.md.
Exit code is 1
container 363b492111a3b200f3a8eb8501e5cbf5585df75972ca52b8e94003b9853c0490 is dead
Mon 19 Sep 2022 02:26:37 PM CEST

@yegor256 please, try to merge one more time

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 6min)

@Graur is there a syntax mistake in @todo? PDD issue was not created for some reason

@maxonfjvipon Looks good. Maybe next merge published them


Add the dictionary inside the code

So the user just need to select the PDF file
edit : keep the dictionnary selection but add a small version of basics password inside

Done on commit eafb911


ref="noreferrer"

ref="noreferrer": http://www.w3.org/html/wg/drafts/html/master/links.html#link-type-noreferrer

This issue was imported from Google Moderator
Moderator votes: +7
Issue added by Ralph C on 2014-02-13
To vote this issue up or down, simply include +1 or -1 in your comment.

This is separate from https://github.com/Fyrd/caniuse/blob/master/features-json/referrer-policy.json

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1, but I think #1254 is the better issue for this, as rel="noreferrer" is correct, not ref="noreferrer".

+1

Renamed to correct attribute name.

+1

+1

+1

Now available at http://caniuse.com/#feat=rel-noreferrer

Are you sure IE11 doesn't support this? To me it looks like it's perfectly not sending the referrer on such links.

Tested with IE11 version 11.953.14393.0, can confirm that it looks like it's working fine

Interesting, so it doesn't work in my test in Win 8.1 or an older version of Win 10, but it does the latest. Have updated the support with a note to reflect this. Thanks!

I still have the Anniversary Update (Windows 10.1607) and it works there. I don't have any older versions to test.


fix(ScrollWrapper): update ScrollWrapper and ScrollSlider TS declarations

Description
This PR updates the ScrollWrapper d.ts file to match our latest conventions. It also adds ScrollSlider.d.ts.
References
LUI-965
Testing

Automation

Checklist

[ ] all commented code has been removed
[ ] any new console issues have been resolved
[ ] code linter and formatter has been run
[ ] test coverage meets repo requirements
[ ] PR name matches the expected semantic-commit syntax

Test Execution Passed.

Test Execution Passed.

I think _scrollContainerLoaded signal is currently not included since it is private?

_scrollContainerLoaded isn't a signal, it's a method called by the textBoxChanged signal fired by ScrollableText subcomponent

Test Execution Passed.

Test Execution Passed.

:tada: This PR is included in version @lightningjs/ui-components-v2.12.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


September 2017 Election for Community Commitee Chair

We are electing a new Chairperson of Community Committee.

The CC will elect from amongst voting CC members a CC Chairperson to work on building an agenda for CC meetings and collaborate with the Individual Membership Directors the wishes of the CC to the Board for a term of one year according to the Node.js Foundation’s By-laws. The CC shall hold annual elections to select a CC Chairperson; there are no limits on the number of terms a CC Chairperson may serve.

Nominated candidates:

@bnb Tierney Cyren
@rachelnicole Rachel White

As stated in the previous election, expected responsibilities include but are not limited to:

Create each meeting's agenda.
Create the event and make sure it is live-streamed in YouTube.
Chair and facilitate each meeting. It is the chairperson's responsibility to ensure that the meeting stays on track, sticks to the agenda, and finishes within the allotted time.
Collaborate with the Individual Membership Directors(currently @williamkapke and @ashleygwilliams) on presenting requests to the Board from CommComm that need attention.
Collaborate with the TSC Chair and Director
Coordinate efforts in shared repos, as listed in Admin

All Community Committee active members are eligible to vote, and have been sent a private, secret ballot via email. If you are having trouble with voting, please email<EMAIL_ADDRESS>The election opened at 3:17pm ET on September 15, 2017. The election will close at 3:17pm September 19, 2017 unless all eligible members have finished voting sooner than the window allotted.
The results of the election will be published to this issue.

The result of the election has finished early due to all members completing their votes prior to the deadline.
The result is a tie with equal votes going to both Tierney and Rachel. After consulting with both of the candidates along with the Individual Directors, it was determined that a healthy solution to this tie would be co-chairs of the role.
If no one objects, Tierney and Rachel will be our new co-chairs!
We will then move forward with onboarding and refining what the shared role and communication would need to look like in implementation to ensure a smooth execution of duties.

Congrats to the both of yous!

Great. I'd love to see this evolve to be 2 discrete roles with a chair and a board representative. Mirroring the TSC's structure.
I also encourage the CommComm to plan for this in the future and structure a standard tie-breaking process. The coin flip process we used for Gold Directors feels a bit too arbitrary. (This is coming from the winner of the last one.) Strong consensus is hard. We should be encouraging those amongst us who wish to lead to build the robust coalition necessary to serve as an effective representative.

@hackygolucky Can this issue be closed?

I'm going to close since the election is over, please re-open if that's not the right thing to do.


Refactor stat collector

Is your feature request related to a problem? Please provide an existing Issue # , or describe.
StatsCollector is used by RCA-Agent and PerformanceAnalyzer Plugin to publish service metrics. We run this collector through ScheduledMetricCollectorsExecutor and the executor can mark the collector as SLOW and subsequently MUTED if the collector is slow. A muted collector doesn't emit any metrics and thus we can end up missing the helpful service metrics.
This PR contains changes to skip muting for  StatsCollector and re-factoring to move away from StatExceptionCode to Metric Aggregators.
Adding more granular code change details:

PerformanceAnalyzerApp.java : Removing Default Exception code. (Moving to Aggregator metric framework, does not require default codes)
PerformanceAnalyzerThreads.java : Moved Thread failure exception codes to ReaderMetrics. Each time a thread dies, the respective metric will be emitted via the catch block in ThreadProvider#createThreadForRunnable()
ScheduledMetricCollectorsExecutor.java : StatsCollector is now non-mutable. This is required to ensure that we always have service metrics available to debug issues.
StatExceptionCode.java : Moved exception codes to relevant Aggregators.
StatsCollector.java :  Removed logMetric(final String metricName) and logException().
FlowUnitRxTask.java : Removing duplicate metric VERTEX_BUFFER_FULL_METRIC. We emit RCA_VERTEX_RX_BUFFER_FULL_ERROR in ReceivedFlowUnitStore.
ReaderMetricsProcessor.java : Emitting READER_METRICS_EMIT_TIME instead of using older TIMING_STATS and STATS_DATA data structure.

Describe the solution you are proposing
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Branch conflicts needs to be resolved.

Closing this PR and opening a new one from forked repo https://github.com/opensearch-project/performance-analyzer-rca/pull/37


Custom Code Evaluations

UI Enhancements
Bug Fixes
Minor Refactoring
Performance issues fixed
New endpoint to get python code in evaluation

Resolves #569

@aakrem x @mmabrouk we're good to go!


Fix race condition

Description
Fix race condition in downloading datasets causing CI failures.

Job PR-1187/1 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1187/1/index.html

Job PR-1187/2 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1187/2/index.html

Thanks a lot for your fixing!


Add more unit tests

Codecov Report

Merging #26 (66e543d) into master (33484d0) will increase coverage by 32.96%.
The diff coverage is 81.63%.

@@             Coverage Diff             @@
##           master      #26       +/-   ##
===========================================
+ Coverage   56.82%   89.79%   +32.96%
===========================================
  Files           2        2
  Lines         227      245       +18
===========================================
+ Hits          129      220       +91
+ Misses         95       17       -78
- Partials        3        8        +5

Flag
Coverage Δ

unittests
89.79% <81.63%> (+32.96%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

main.go
86.18% <81.63%> (+46.31%)
:arrow_up:

Continue to review full report at Codecov.

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


Service Group endpoints

CREATE
READ

Just return information
servicepath tree?
maybe device count

LIST

returns accordion
body just like READ response

UPDATE
DELETE

Mostly done in Service group endpoints UI #20 except UPDATE


Dark theme context menu and tab navigation is not black

Bug report
Expected Behavior - What were you expecting to happen?
The context menu and the tab-navigation on the tab-folder for progress dialog should be shown in black for the dark theme.
Current Behavior - What happens?
Currently they are white-themed and that also means that the icons are not themed either in the cases where that is relevant.
Possible Solution
Fix the dark theme and implement icon-relevant switch for those use cases.
What are the steps to reproduce this issue? (for bugs)

Use dark theme on GEM
Open context menu and/or tab-navigation on progress dialog with many tasks
The dark theme is not applied to that part of the view

Context
Only affects dark theme.
Your Environment

Version used: latest
Operating System and version (desktop or mobile): Windows

Works for Eclipse 4.16.
See https://www.eclipse.org/eclipse/news/4.16/platform_isv.php


Codebook and other minor changes

Hi Vincent,
I've been working in the codebook report for part5, maybe we can improve some of the definitions, but I think this is a good start, have a look on it when you find the time. This is reporting a codebook for each database exported.
Also, while working on the codebook, I've seen some minor things to change in g.report.part5, here a summary:
includewindowcrit argument: I've included this argument in g.report.part5 and g.shell. Its function is to give the user the chance to select how many hours should have a window to be considered in the analyses. In the previous version it was hard-coded in 2 hours, so I have maintained this as default parameter. This is specially important if the user is interested in 24-hours days. For example, if the accelerometer is initialized at 8pm, then the first day would have 4 hours, if the user select an includewindowcrit of 24 hours, then this day would be excluded from analyses, otherwise it would be included in the daily means.
Number of valid days: I was getting inconsistent results in these variables (for example: Nvaliddays = 8, Nvaliddays_WE = 2, Nvaliddays_WD = 5). I've also summarized the code, now it is working correctly and considering only the days included in the daily mean calculation.
Numeric variables identification: Some the numeric variables were being considered as character, and then they were not averaged. I found the problem in this line of code 'if(nr > 30) nr = 30)'. Removing this part, it analyses the whole variable and it works correctly.
I think this is all so far, let me know if you need any extra detail about these changes.
Best,
Jairo

Thanks Jairo,
Includewindowcrit: Would it not be easier to re-use the same windowcriteria arguments as use in part2, 4 or 5? I think that would help to keep the number of input arguments to a minimum.
Number of days: Thanks, can you clarify what part of the code you had to change for this?
Numeric variables identification: I believe I inserted this at some point to address problems in specific datasets, but I cannot remember why. It is good that you commented it out such that we can find it back if this causes problems again, and then look for an alternative solution.
Cokebook: As I mentioned before I am concerned that a codebook could be a nightmare for us to maintain, because we will have three separate variable descriptions all of which need to be consistent and up to date: The vignette, the standard function documentation and now this codebook. I thought we agreed to optimize the vignette and the standard function documentation before building something new? It would have been helpful if you had first created an issue to clarify and discuss the topic before doing all the work. In that way we would not have worked past each other....  Another problem I see with the codebook solution is that you included the functionality inside existing functions g.part5 and g.report.part5. Having long functions is a bad habit because it makes the code harder to navigate, especially when documentation and code are mixed in the same file. Therefore, I have been trying the last couple of years to split up long functions as much as possible. If you insist on making a codebook then I think it is better to build this as a separate function that reads the variable names produced by part5, and then generates a csv file with the variable documentation. Advantages of such an approach are:

Makes it easier to add more elaborate documentation, which is stored separate from the code to ease updating.
It would allow GGIR users to generate a codebook for analysis they did in the past (your current solution requires full re-analysis).
It would create a framework for doing the same for part2 and 4.

All checks have failed: The checks (tests) fail as indicated by the red markers. It would safe me a lot of time if you could fix this. It is probably best if you learn how to use R CMD CHECK to check the code before making a pull request. Merging a branch with failing tests will break GGIR, so the checks always need to pass.
General comments:
As we discussed it would help a lot if you could try to learn how to use git, it is one of the most important skills if you want to become more proficient in software development. This is a good course on how git works I would recommend. You can do it on your own or try to attend one of the Software Carpentry courses in Spain, which are typically organised by volunteers. In that way you could work on one repository branch per issue and make a pull request per issue. Pull requests will then be more oversee-able, and it would be easier to stepwise improve GGIR.
Cheers, Vincent

Hi Vincent!
Sorry for the delay, I've been some days off before start planning my
travel to US.
*Includewindowcrit: *I thought this in a separate way, because it is not
related to wearing time, but total window time, but maybe we can think this
better for the next time and re-use the other arguments.
Number of days: g.report.part5 function. Lines 308-329 in my pull request
Numeric variables identification: Ok, should I create an issue with this?
Currently, the code is looking at the first 30 rows of data, in case there
is no values in these 30 days, then the variable is considered as character
and excluded from the mean calculations.
Cokebook: No problem, I though that you agreed on woring in a codebook
for the part5 to start with something. But it was just a misunderstanding,
it didn't take too much time for me, so don't worry, we can leave this out.
*Checks: *yes, I have to work on this. I'm sorry for this, now during my
stay is going to be difficult to find the time to do this, but as soon I'm
back in Spain I will enroll one of these courses to learn how to use git
and R CMD CHECK.
So... should I prepare a pull request including only the changes about the
number of days and report an issue about the numeric variables
identification?
Thanks,
Jairo
2018-07-22 15:17 GMT+02:00 Vincent van Hees<EMAIL_ADDRESS>
Thanks Jairo,
Includewindowcrit: Would it not be easier to re-use the same
windowcriteria arguments as use in part2, 4 or 5? I think that would help
to keep the number of input arguments to a minimum.
Number of days: Thanks, can you clarify what part of the code you had
to change for this?
Numeric variables identification: I believe I inserted this at some
point to address problems in specific datasets, but I cannot remember why.
It is good that you commented it out such that we can find it back if this
causes problems again, and then look for an alternative solution.
Cokebook: As I mentioned before I am concerned that a codebook could be
a nightmare for us to maintain, because we will have three separate
variable descriptions all of which need to be consistent and up to date:
The vignette, the standard function documentation and now this codebook. I
thought we agreed to optimize the vignette and the standard function
documentation before building something new? It would have been helpful if
you had first created an issue https://github.com/wadpac/GGIR/issues to
clarify and discuss the topic before doing all the work. In that way we
would not have worked past each other.... Another problem I see with the
codebook solution is that you included the functionality inside existing
functions g.part5 and g.report.part5. Having long functions is a bad habit
because it makes the code harder to navigate, especially when documentation
and code are mixed in the same file. Therefore, I have been trying the last
couple of years to split up long functions as much as possible. If you
insist on making a codebook then I think it is better to build this as a
separate function that reads the variable names produced by part5, and then
generates a csv file with the variable documentation. Advantages of such an
approach are:

Makes it easier to add more elaborate documentation, which is stored
separate from the code to ease updating.
It would allow GGIR users to generate a codebook for analysis they
did in the past (your current solution requires full re-analysis).
It would create a framework for doing the same for part2 and 4.

All checks have failed: The checks (tests) fail as indicated by the red
markers. It would safe me a lot of time if you could fix this. It is
probably best if you learn how to use R CMD CHECK to check the code before
making a pull request. Merging a branch with failing tests will break GGIR,
so the checks always need to pass.
General comments:
As we discussed it would help a lot if you could try to learn how to use
git, it is one of the most important skills if you want to become more
proficient in software development. This
http://swcarpentry.github.io/git-novice/ is a good course on how git
works I would recommend. You can do it on your own or try to attend one of
the Software Carpentry courses in Spain, which are typically organised by
volunteers. In that way you could work on one repository branch per issue
and make a pull request per issue. Pull requests will then be more
oversee-able, and it would be easier to stepwise improve GGIR.
Cheers, Vincent
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/wadpac/GGIR/pull/103#issuecomment-406865995, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AbZzgJqFlR3NgnOHMN19mKUm9zd-9_zFks5uJHuGgaJpZM4VZqbd
.


fix little type error

Description

Tested scenarios

Fixed issue:

Hi @NicolasMugnier,
Thanks for the PR! We will merge it.
Regards,
Rik
Adyen


getTypeOfField not working

I have my code like this:
$documentMetaData = new ClassMetadata('MyNamespace\To\MyDocument');
and then I do
$typeOfField = $documentMetaData->getTypeOfField('name');
But it is not returning what I expected.
Am I doing it wrong? I've also tried to pass a document instance to the constructor of ClassMetaData but it didn't work neither.

You have to fetch a valid ClassMetadata instance from the document manager:
$documentMetaData = $dm->getClassMetadata('MyNamespace\To\MyDocument');
$typeOfField = $documentMetaData->getTypeOfField('name');

Thanks!


allowedContentTypes with doc extensions don't work

this.options = { allowedContentTypes : ["application/pdf", " application/vnd.ms-excel", " .doc", ".docx", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", " application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"] };
Only ".pdf" extensions can be selected with above config. If allowedContentTypes is removed and only accept="..." is used then correct file types could be selected.

Hello @uzumakinaruto123
see if this works for you

MIME-Typ
Extension

"application/vnd.ms-excel",
.xls

"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
.xlsx

"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
.docx

"application/pdf"
.pdf

image/png',
.png

image/jpeg',
.jpeg

image/gif',
.gif

image/jpg',
.jpg

I found it here I found it in this issue #399, here you can find more information, here!!


MM-23251 Always show current channel in experimental sidebar

Just updating redux to get the changes that will actually fix this.
Ticket Link
https://mattermost.atlassian.net/browse/MM-23251
Related Pull Requests
https://github.com/mattermost/mattermost-redux/pull/1115

@hmhealey approved, but there are conflicts.

And the release-5.23 version was cherry-picked from the same PR


[dotenv] Move the samples' sample.env to use the parent sample.env

Hi! Should we only have a sample.env at the root level of each project? Right now we have three, one at that level, another one at the JavaScript samples level, and another one at the TypeScript samples level.

From my understanding:

We should need separate env files for JS samples vs TS samples
The one at the root is used for tests. Unless the samples use different env variables than the tests, we shouldnt need separate env files for tests vs samples

@willmtemple might know more

The sample.env files in samples/javascript and samples/typescript are shipped with the sample bundles. We can't remove them, as they have to be there for publication.

That sounds reasonable. I will close this.


Nothing happens

No matter what I do, I select the text, choose anything in the plugin, such as decision, and the Sketch file does nothing in response. Do we need to have only a single Sketch file open? I am on Yosemite, Mac, Sketch 3.4.2, AE Flowchart 2.0.1

Working for me on Sketch 3.4.2 with AE 2.0.1 (with single or multiple Sketch files open)
Maybe try uninstalling and reinstalling the plugin?

Working for me also, did you solve this?

Working for me also, did you solve this?

Working for me also, did you solve this @ChrisARaymond?

Working for me also, did you solve this @ChrisARaymond?

New version just had fix for Sketch 3.5 so maybe try that.