ModuleNotFoundError: No module named 'setuptools._distutils'

pip install . suddenly started failing for many packages. Since setuptools just got a new version and pip didn't, and setuptools appears in the error, I'm guessing it's related to setuptools 50. Apologies if this turns out to be wrong.
This can be seen in any number of repositories, such as https://github.com/dHannasch/tox-sitepackages-example.
This doesn't appear to be quite the same as https://github.com/pypa/setuptools/issues/2352.
I don't fully understand all the implications of https://github.com/pypa/setuptools/issues/2350, but SETUPTOOLS_USE_DISTUTILS=stdlib has no effect on this (ditto SETUPTOOLS_USE_DISTUTILS=1), so I think this is a separate issue.
Travis log:
$ python -m pip install .

Processing /home/travis/build/dHannasch/tox-sitepackages-example

  Installing build dependencies ... \/done

  Getting requirements to build wheel ... done

ERROR: Exception:

Traceback (most recent call last):

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 216, in _main

    status = self.run(options, args)

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper

    return func(self, options, args)

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 325, in run

    reqs, check_supported_wheels=not options.target_dir

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve

    discovered_reqs.extend(self._resolve_one(requirement_set, req))

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one

    abstract_dist = self._get_abstract_dist_for(req_to_install)

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 340, in _get_abstract_dist_for

    abstract_dist = self.preparer.prepare_linked_requirement(req)

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 483, in prepare_linked_requirement

    req, self.req_tracker, self.finder, self.build_isolation,

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 91, in _get_prepared_distribution

    abstract_dist.prepare_distribution_metadata(finder, build_isolation)

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/distributions/sdist.py", line 38, in prepare_distribution_metadata

    self._setup_isolation(finder)

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_internal/distributions/sdist.py", line 96, in _setup_isolation

    reqs = backend.get_requires_for_build_wheel()

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_vendor/pep517/wrappers.py", line 161, in get_requires_for_build_wheel

    'config_settings': config_settings

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_vendor/pep517/wrappers.py", line 265, in _call_hook

    raise BackendUnavailable(data.get('traceback', ''))

pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):

  File "/home/travis/build/dHannasch/tox-sitepackages-example/py38/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 86, in _build_backend

    obj = import_module(mod_path)

  File "/opt/python/3.7.1/lib/python3.7/importlib/__init__.py", line 127, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import

  File "<frozen importlib._bootstrap>", line 983, in _find_and_load

  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import

  File "<frozen importlib._bootstrap>", line 983, in _find_and_load

  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 728, in exec_module

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

  File "/opt/python/3.7.1/lib/python3.7/site-packages/setuptools/__init__.py", line 5, in <module>

    import distutils.core

  File "/tmp/pip-build-env-co0toouh/overlay/lib/python3.7/site-packages/_distutils_hack/__init__.py", line 82, in create_module

    return importlib.import_module('._distutils', 'setuptools')

  File "/opt/python/3.7.1/lib/python3.7/importlib/__init__.py", line 127, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

ModuleNotFoundError: No module named 'setuptools._distutils'

This one doesn't happen for every package, I haven't quite narrowed it down but I think it's related to having a pyproject.toml or setup_requires, but that might only be because having a build environment is what causes setuptools 50 to be installed in the first place.

I had same issue. Removing pyproject.toml from the library which failed to install pass through it

That's true, and a useful workaround, but I think that's just because with no pyproject.toml, setuptools 50 doesn't get installed in the first place.
So anyone can avoid this problem for now by specifying setuptools<50 in their pyproject.toml, but the fact that that works probably isn't relevant for debugging setuptools, sadly.

So, setuptools 50.0 is fundamentally broken and breaks the entire Python ecosystem – both open-source and not. Well, isn't that special. Heads need rolling (especially those currently attached to the still-functioning torsos of managerial project leads). Until the community tastes sweet, sweet vengeance, however, the following is probably a slightly saner solution than @dHannasch's useful starting point:
[build-system]
requires = [
    "setuptools!=50.0",
    "wheel",
]

That is to say, downstream projects should probably only blacklist the specific version of setuptools known to catastrophically fail (under the fairly safe assumption that the next stable release will either hopefully revert or perhaps even correctly fix the breakage).
I can confirm the above circumvention behaves as expected in a project just maliciously blind-sided by this.
Die, setuptools 50.0! Die! :drop_of_blood:

How to resolve this issue? please give us at least a temporary solution.

@shakthifuture Setting environment variable SETUPTOOLS_USE_DISTUTILS=stdlib is a workaround, e.g.:
$ export SETUPTOOLS_USE_DISTUTILS=stdlib
$ pip3 install […]

I'm unable to replicate the reported issue. When I attempt to install the reported package, it fails to install on another dependency:
~ $ pip-run git+https://github.com/dHannasch/tox-sitepackages-example
Collecting git+https://github.com/dHannasch/tox-sitepackages-example
  Cloning https://github.com/dHannasch/tox-sitepackages-example to /private/var/folders/qs/5jptvz2x7_gblx4kc3qj005800n8zm/T/pip-req-build-zqwijlld
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting click
  Using cached click-7.1.2-py2.py3-none-any.whl (82 kB)
ERROR: Could not find a version that satisfies the requirement detectron2 (from tox-sitepackages-example==0.0.1.dev15) (from versions: none)
ERROR: No matching distribution found for detectron2 (from tox-sitepackages-example==0.0.1.dev15)
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/bin/pip-run", line 10, in <module>
    sys.exit(run())
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip_run/__init__.py", line 18, in run
    with deps.load(*deps.not_installed(pip_args)) as home:
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip_run/deps.py", line 52, in load
    _installable(args) and subprocess.check_call(cmd)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '('/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8', '-m', 'pip', 'install', '-t', '/var/folders/qs/5jptvz2x7_gblx4kc3qj005800n8zm/T/pip-run-1ued9qw2', 'git+https://github.com/dHannasch/tox-sitepackages-example')' returned non-zero exit status 1.

Is there an example I could follow to replicate the failure?

I've confirmed that setuptools 50 isn't strictly implicated. The tempora project uses a similar pyproject.toml and building it from source on Setuptools 50 works fine:
draft $ pip-run -q setuptools==50 -- -m pip-run --no-binary :all: tempora
Collecting tempora
  Using cached tempora-4.0.0.tar.gz (47 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting jaraco.functools>=1.20
  Using cached jaraco.functools-3.0.1.tar.gz (16 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting pytz
  Using cached pytz-2020.1.tar.gz (311 kB)
Collecting more-itertools
  Using cached more-itertools-8.5.0.tar.gz (86 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Skipping wheel build for pytz, due to binaries being disabled for it.
Building wheels for collected packages: tempora, jaraco.functools, more-itertools
  Building wheel for tempora (PEP 517) ... done
  Created wheel for tempora: filename=tempora-4.0.0-py3-none-any.whl size=14543 sha256=fd76c8109f80e78da6acd5120ffb4ef2205383ce00566f183fcca6108c1737be
  Stored in directory: /Users/jaraco/Library/Caches/pip/wheels/de/73/95/5e7770fb0490fd6999ae7c4d1479fff7c179a3a9ee4389dec9
  Building wheel for jaraco.functools (PEP 517) ... done
  Created wheel for jaraco.functools: filename=jaraco.functools-3.0.1-py3-none-any.whl size=6716 sha256=5823cc422ea45a8d33396d23de223b7a5420ad965935770c3f2daa6a1da22264
  Stored in directory: /Users/jaraco/Library/Caches/pip/wheels/1f/c1/05/44ca6985d8e7c479c8074846f609769a77ccd275193bddc3b2
  Building wheel for more-itertools (PEP 517) ... done
  Created wheel for more-itertools: filename=more_itertools-8.5.0-py3-none-any.whl size=40626 sha256=b02870ffc1ec4b5a462c576f1c0b79683c65d774ec8013264184f96d03531d19
  Stored in directory: /Users/jaraco/Library/Caches/pip/wheels/89/6c/f0/c53ee96fbb1ef463ac154481e99ce2146921078d30845a89b3
Successfully built tempora jaraco.functools more-itertools
Installing collected packages: more-itertools, jaraco.functools, pytz, tempora
    Running setup.py install for pytz ... done
Successfully installed jaraco.functools-3.0.1 more-itertools-8.5.0 pytz-2020.1 tempora-4.0.0
>>> Python 3.8.1 (v3.8.1:1b293b6006, Dec 18 2019, 14:08:53)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
^D

The error message ModuleNotFoundError: No module named 'setuptools._distutils' suggests to me that there's some condition under which an older version of setuptools (earlier than 48) is present, but somehow the distutils hack is also present.
Please let me know what steps might be needed to create the environment in which your builds fail. If possible, put them together in a Dockerfile (preferred) or script that reproduces the issue. Thanks.

This Dockerfile is somewhat convoluted, but this is the simplest way I've found to reproduce this problem so far:
FROM ubuntu:20.04
WORKDIR /root
RUN apt-get update && \
    apt-get install python3-dev python3-setuptools python3-venv python3-wheel gcc \
                    libssl-dev libffi-dev -y && \
    python3 -m venv --system-site-packages venv
ENV PATH /root/venv/bin:$PATH
RUN pip install --no-binary=:all: cryptography

I've been able to consistently reproduce this with a virtualenv created with --system-site-packages where setuptools < 50 is installed in the system site packages directory. I filed https://github.com/pypa/virtualenv/issues/1934 for it because the behavior differs between virtualenv and venv.
Clearly there is some case where an isolated build isn't being properly isolated, and it's managing to pick up a different setuptools than the one that was installed for the isolated build.

OK - I'm in no way an expert on PEP-517, but I think the bug here is in pip, not setuptools - or maybe there's one bug in each.
If a pyproject.toml contains something like:
[build-system]
requires = ["setuptools"]

then pip installs the latest version of setuptools into a temp directory with a name like (for instance):
/tmp/pip-build-env-5v90m1w9/overlay/lib/python3.8/site-packages
After it does that, it eventually calls the get_requires_for_build_wheel hook, in a new subprocess. In that subprocess, if pip was run inside a virtualenv created with --system-site-packages, then sys.path is something like:
['/home/matt/some_venv/lib/python3.8/site-packages/pip/_vendor/pep517',
 '/tmp/pip-build-env-5v90m1w9/site',
 '/usr/lib/python38.zip',
 '/usr/lib/python3.8',
 '/usr/lib/python3.8/lib-dynload',
 '/usr/local/lib/python3.8/dist-packages',
 '/usr/lib/python3/dist-packages',
 '/tmp/pip-build-env-5v90m1w9/overlay/lib/python3.8/site-packages',
 '/tmp/pip-build-env-5v90m1w9/normal/lib/python3.8/site-packages']

The overlay directory is after the system site packages directory, which means that any build dependencies that were required by the pyproject.toml are later in the search path than the ones that were already installed in the site-packages directory.
I think there's one bug in each here: the _distutils_hack probably shouldn't do anything if there's a different setuptools ahead of it in sys.path - whichever setuptools is earliest in the module search path should be completely responsible for everything; a .pth file from later in the search path shouldn't be screwing it up. And, pip probably shouldn't be calling the hook in an environment where already-installed modules are taking precedence over modules specifically required by the pyproject.toml - the whole point of an isolated build is to isolate you from what's installed system-wide.

There is, in fact, an old pip issue for exactly this bug. https://github.com/pypa/pip/issues/6264#issuecomment-685230919.

Yeah, we've had a suspicion about the pip as well. We then tried downgrading to v18.1 and it worked here!

FYI, the AWS lambdas running Python were also broken.
https://stackoverflow.com/questions/63688774/some-aws-lambda-functions-stopped-working-with-no-module-named-setuptools-dist

Follow this temporary workaround https://stackoverflow.com/questions/63683262/modulenotfounderror-no-module-named-setuptools-distutils/63683921#63683921

I was able to replicate the error without venv and with a simple python-only package:
FROM jaraco/multipy-tox
RUN pip install 'setuptools<40'
ENV SETUPTOOLS_USE_DISTUTILS local
RUN pip install --no-binary=:all: tempora

It replicates very similar conditions as those reported in this comment.

The issue doesn't require venv. The issue can be replicated with this Dockerfile:
FROM ubuntu:focal

RUN apt update
RUN apt upgrade -y
RUN apt install -y python3.8 python3.8-distutils wget
RUN ln -s $(which python3.8) /usr/local/bin/python
RUN wget -q https://bootstrap.pypa.io/get-pip.py
RUN python3.8 get-pip.py
RUN pip install -U pip
RUN pip install 'setuptools<40'
ENV SETUPTOOLS_USE_DISTUTILS local
RUN pip install --no-binary=:all: tempora

Thanks for finding the issue in pip. The issue seems to be entirely a manifestation of incomplete isolation and conflicting setuptools versions. I'll close this issue in favor of addressing the root cause in pip.

For me this issue is fixed in setuptools 50.1, see PR #2376.

I had same issue. Removing pyproject.toml from the library which failed to install pass through it

man you've just saved my life :smile:

I had same issue. Removing pyproject.toml from the library which failed to install pass through it

man you've just saved my life :smile:


Improve process openalex performance

Speed up processing of new OpenAlex works.
We currently can't process all new papers because of how slow this code is.
This code cuts processing time by about 50%.

Next steps will be to make authors more easily searchable by openalex id.

@koutst this looks good feel free to merge whenever you test the following:

Verifying identity works
Importing papers to author profile works successfully
Uploading a paper to ResearchHub via the "+New" menu
Verify coauthors and institutions are created successfully


Connecting to Telos Mainnet with Scatter

I seem to running into some issues with connecting to the Telos mainnet via ual-scatter, I have configured my .env file to point to the telos mainnet and was able to connect via Anchor. However, Desktop Scatter doesn't seem to detect the request. I have confirmed that my scatter wallet is working correctly as it receives connection requests through other Telos based dapps with no issues.
Just in case here is my .env file and the error I'm getting from running the example code without making any changes

I've noticed that it wasn't connecting to regular EOS mainnet either when I tried it through the example folder


[Validation] specify the validation rules

Three probable modes to valid the result,

ACID, validation, throughput test in separate
run result validation along with ACID
run benchmarking (throughtput measurement) along with ACID and result validation at the same time.

About how to valid the result, two probable ways to do,

self-validation by the driver
cross-validation

Here are my general comments on graph query results validation, and I hope this will help explain why results validations are necessary and what can be done to identify those skewed/invalid results.
There are 2 types of operations against any graph database: TP vs. AP.

For TP type of operations, they are characterized by ACID against meta-data, and the validation isn't much different from traditional SQL/ RDBMS. Our focus shall be on AP type of operations.
For AP operations, there are in general 3 subtypes: K-Hop, Path and Algorithm (or compound/sophisticated queries).

The results validation of these AP operations have long been ignored/skipped, but there are ways to help us quickly zoom into the source data and identify if any results are skewed:

K-Hop:  Regular K-hop should be implemented using BFS instead of DFS, but you won't tell it unless you validate the results, and results should always be de-duplicated, clearly, there are vendor systems don't do de-dup by default (including Neo4j, if you are curious why this problem is so prevalent). Another possible problem is that the system's data modeling is outright wrong, for instance, some system only store the end in between a pair of vertices once, meaning the invert edge is NOT stored, which causes the K-hop results to be wrong.
Path: Taking shortest-path as an example, to find shortest-paths between a pair of vertices, ALL paths are to be found, not just 1 when there are more shortestpaths available.  ArangoDB has a boosted way for finding shortest path quickly, but only returning 1 path, which clearly is  wrong.
Algorithm: Taking the popular PageRank as an example, there are two key points to watch out for, firstly, the entire graph has to be traversed reiteratively, not just a handful of vertices and edges. Remember Neo4j allows you to run PageRank against only selective # of vertices, say, limit 1000? secondly, the results should be ranked such as Order by DESC, and the top-10, for instance, results should be exact across all systems participating the benchmark. If a system doesn't support Top-10 or the results are skewed, you know something is wrong there.

On the other hand, similar to SNB, I'm sure there are vendors who will encapsulate everything under the hood and expose things only via interfaces/APIs, but can they provide equivalent GQL (dialects) showing how a query is implemented? I know I maybe asking too much, but I'm only throwing my thoughts out here so that we can strengthen/improve the validation rules.
Best
Ricky

Thanks for the helpful suggestions. Sure we should improve the validation rules. We will return to this topic when we dive into the validation rules detail design.


SARAALERT-803: Update Close Job

Description
Jira Ticket: SARAALERT-803
This PR updates the Close Job so that it is more accurate based on given monitoree's timezone. Along with this update in 1.13, we are planning on running the Close Job every hour on the half-hour to make sure it gets everyone it needs to on a given day despite timezone. This means that if a monitoree is in exposure, asymptomatic, has reported that day (or has been created in the last 24 hours), and is on (or past) their last day of monitoring based on their timezone and last date of exposure or creation date, they will get closed out.
It also introduces new reasons for closure based on a few cases:

Naturally completed monitoring period and closed by system
Enrolled already past monitoring period and closed by system
Enrolled on the last day of monitoring period and closed by system

Finally, it adds tests for the new Patient class method and for the job itself.
Important Changes
app/jobs/close_patients_job.rb

Renamed from close_subjects_job.rb (despite a git mv the GitHub diff does not want to show the rename unfortunately)
Added logic for different monitoring reasons based on the cases mentioned above
Using new class method for retrieving eligible patients for closure
Getting the total number eligible with an eligible.size after the loop rather than an eligible.count before the loop since size will check if the data is loaded to avoid a second query whereas count will not.

app/models/patient.rb

Added new close_eligible class method that grabs all patients that are eligible to be closed at that time based on their timezones.
Added new end_of_monitoring_period? boolean instance method for a patient.
Added new curr_date_in_timezone instance method. Not really special - could remove if we feel it's unnecessary.
Added new monitoring reasons to validation list.

test/jobs/close_patients_job_test.rb

New job test file.

test/models/patient_test.rb

Added tests for new close_eligible class method.

 I may add more to specifically test any edge cases I can think of for timezones.
Notes
The close_eligible class method does run a select to get all patients who will be closed. The close job also iterates through all of the patients returned by the close_eligible method. So basically, we could move the end_of_monitoring_period? check back into the close job itself to avoid an additional linear loop. However, this additional loop does not have to query the database or load the record objects again since that will have already been done  - it's just an additional loop. Doing so would be a performance increase from what is here now, but unless that's an actual issue, I feel it's really valuable to have all of the logic in a contained method we can use for debugging and email counts. Can easily update depending on people's thoughts.

One note: We've exceeded the Rubocop allowed class line length in the patient_test.rb. I'm disabling it for that test file but it is getting a bit unwieldy. I wish we could logically group these tests even within a test file better.

Current failures are due to some of our Patient fixtures not specifying created_at dates.

Current failures are due to some of our Patient fixtures not specifying created_at dates.

Yep, need to do some stuff for my other project but will get to them before COB.


Githubdam h39 updates test iOS VoiceOver

Hi Marc, Please review the branch if you find any incorrect please advise.

Return to reopen

Complete - can be deleted


Make Skyboxes

This should be a pretty straight-forward task for someone wanting to get their feet wet doing some graphics programming.  I can explain how to do this, and maybe search out some good resources to follow along with during implementation.

I'd be interested in doing this, but I'm not sure my computer has the horsepower necessary (NVIDIA card, etc) to do it.

Honestly @PaulSteele34, with the fancier graphics features turned off it runs on pretty minimal hardware.  I used to develop on a 10 year old Thinkpad with a real weak-sauce GPU.
If you still want to give this a crack feel free to email me and I can write a more detailed explanation of what to do<EMAIL_ADDRESS>


Fixed problem with path functions not keeping prefix (MLDB-1781)

Test failures are unrelated to this change.

+1 based on the test


Deploy of kubernetes can take a long time to achieve active

Today we started to notice a wide variance on deploy times to achieve a complete Kubernetes deployment with Canal.
It normally takes 10-15 minutes, but today we noticed times upward of 35 minutes.
Here is an example of what I am seeing:
kubernetes-master/0*  waiting   executing   4        <IP_ADDRESS>  6443/tcp  Waiting for kube-system pods to start
  canal/0*            active    idle                 <IP_ADDRESS>            Flannel subnet <IP_ADDRESS>/24
kubernetes-worker/0*  waiting   executing   5        <IP_ADDRESS>            Waiting for cluster DNS.
  canal/1             waiting   allocating           <IP_ADDRESS>            agent initializing
kubernetes-worker/1   waiting   executing   6        <IP_ADDRESS>            Waiting for kube-proxy to start.
  canal/2             waiting   allocating           <IP_ADDRESS>            agent initializing
kubernetes-worker/2   waiting   executing   7        <IP_ADDRESS>            Waiting for kube-proxy to start.
  canal/3             waiting   allocating           <IP_ADDRESS>            agent initializing

then it goes to
kubernetes-master/0*  waiting   executing   4        <IP_ADDRESS>  6443/tcp  Waiting for kube-system pods to start
  canal/0*            active    idle                 <IP_ADDRESS>            Flannel subnet <IP_ADDRESS>/24
kubernetes-worker/0*  waiting   executing   5        <IP_ADDRESS>            Waiting for cluster DNS.
  canal/1             waiting   allocating           <IP_ADDRESS>            agent initializing
kubernetes-worker/1   blocked   executing   6        <IP_ADDRESS>            Missing cni resource.
  canal/2             waiting   allocating           <IP_ADDRESS>            agent initializing
kubernetes-worker/2   waiting   executing   7        <IP_ADDRESS>            Waiting for kube-proxy to start.
  canal/3             waiting   allocating           <IP_ADDRESS>            agent initializing

It will cycle around until it starts to work which can take a very "long" time.

Regarding this: Missing cni resource.
Not entirely sure how it happened, but kubernetes-worker-54 no longer has a cni resource associated with it on the charm store. We will be fixing this in a day or so with a new release of canonical-kubernetes-canal.
We don't expect the cni resource to disappear again in future releases; best guess is that this happened because kubernetes-worker-54 never made it to the stable channel of kubernetes-worker. That's an artifact from our release process that won't occur again.
If you need a short-term workaround, I'd suggest the following:

download the canonical-kubernetes-canal bundle.yaml
change kubernetes-worker charm from cs:~containers/kubernetes-worker-54 to cs:~containers/kubernetes-worker-52 (latest in stable channel)
juju deploy ./bundle.yaml

Again, we should have a proper fix for this out in a day or so.

It will cycle around until it starts to work which can take a very "long" time.

Given the missing cni resource, I wouldn't expect the cluster to settle in a working state. Maybe far enough to create pods, but I'd expect them to have network problems at this point.

Switching to 52 fixed the problem.


cannot start in development mode

I am this error on starting in dev mode on running rackup command . I am using Rails 4.2 and ruby 2.1.5
rackup sync.ru
Thin web server (v1.6.3 codename Protein Powder)
Maximum connections set to 1024
Listening on localhost:9292, CTRL+C to stop
Rack::Lint::LintError: Status must be >=100 seen as integer
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/lint.rb:20:in assert' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/lint.rb:620:in check_status'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/lint.rb:51:in _call' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/lint.rb:37:in call'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/showexceptions.rb:24:in call' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/commonlogger.rb:33:in call'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/chunked.rb:54:in call' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/content_length.rb:15:in call'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/thin-1.6.3/lib/thin/connection.rb:86:in block in pre_process' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/thin-1.6.3/lib/thin/connection.rb:84:in catch'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/thin-1.6.3/lib/thin/connection.rb:84:in pre_process' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/thin-1.6.3/lib/thin/connection.rb:53:in process'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/faye-websocket-0.9.2/lib/faye/adapters/thin.rb:40:in process' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/thin-1.6.3/lib/thin/connection.rb:39:in receive_data'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/faye-websocket-0.9.2/lib/faye/adapters/thin.rb:44:in receive_data' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in run_machine'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in run' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/thin-1.6.3/lib/thin/backends/base.rb:73:in start'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/thin-1.6.3/lib/thin/server.rb:162:in start' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/handler/thin.rb:19:in run'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/server.rb:286:in start' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/lib/rack/server.rb:147:in start'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/gems/rack-1.6.1/bin/rackup:4:in <top (required)>' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/bin/rackup:23:in load'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/bin/rackup:23:in ' 	/Users/navjeetc/.rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in eval'
/Users/navjeetc/.rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `'
<IP_ADDRESS> - - [06/Jun/2015:14:16:17 -0400] "GET /faye?message=%5B%7B%22channel%22%3A%22%2Fmeta%2Fhandshake%22%2C%22version%22%3A%221.0%22%2C%22supportedConnectionTypes%22%3A%5B%22websocket%22%2C%22eventsource%22%2C%22long-polling%22%2C%22cross-origin-long-polling%22%2C%22callback-polling%22%5D%2C%22id%22%3A%221%22%7D%5D&jsonp=jsonp364 HTTP/1.1" 500 82333 0.0314

Hi!
Faye dont work in development mode, run it on production mode.
Font: https://github.com/faye/faye/issues/25

I tried starting faye in production mode. Now I do see in the log a call being made to the partial but it is followed by an error call as shown below and it does not update my page which is open in another tab.
Rendered sync/projects/_project_row.html.erb (3.7ms)
undefined method `env' for nil:NilClass

Looks like everything works fine when I use pusher but not when I use faye. When I start faye in production mode, do I have to start Rails app in production mode also? I have tried Rails app in both dev and production mode but neither seems to update data although I do see a call being made to render the partial. Does that mean the updated state of model is not being passed to partial. I am trying to test update action.

I did some more digging and looks like my partial has a call to current user which causes undefined method `env' for nil:NilClass error on line 135 in
https://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.eb
The line is
request.env['warden']
and request object is nil
Should the request object be nil?

Hey @navjeetc, sorry for the delay in response.
If you need to call current_user in your view, you should use "refetch partials" so that the view gets rendered in the context of the correct user.

So adding refetch: true to partial call, did render the partial with updated value but the partial was rendered twice hence listing two identical rows. Not sure why.

And faye still does not work even when rails and rack are started in production mode.

@navjeetc  How did you resolve it finally ? I am having an identical issue.

No I did not

Moving to https://github.com/chrismccord/sync/issues/214

Was anyone able to resolve this issue? Ran with pusher and faye and I am still receiving the following error:
method=POST path=/messages format=js controller=MessagesController action=create status=500 error='ActionView::Template::Error: undefined method `env' for nil:NilClass' duration=70.15 view=0.00 db=12.97
15:48:48 server.1 |
15:48:48 server.1 | NoMethodError - undefined method `env' for nil:NilClass:
15:48:48 server.1 |   devise (4.2.0) lib/devise/controllers/helpers.rb:141:in `warden'
15:48:48 server.1 |   devise (4.2.0) lib/devise/controllers/helpers.rb:124:in `current_user'
15:48:48 server.1 |   actionpack (<IP_ADDRESS>) lib/abstract_controller/helpers.rb:67:in `current_user'
15:48:48 server.1 |   app/views/sync/messages/_message_row.html.erb:11:in `_app_views_sync_messages__message_row_html_erb___4026068312585040076_70129917733380'

The message object is being created, so when page refreshes the new message is there.
Here is a look at the controller:
def create
    @message = Message.new(message_params)
    respond_to do |format|
      if @message.save
        sync_new @message, scope: @conversation
        format.html { render :nothing => true, :status => 200 }
        # format.json { render :show, status: :created, location: @message }
        format.js { render :nothing => true, :status => 200 }
      else
        format.html { redirect_to influencer_path(id: current_user.influencer.id) }
        format.json { render json: @message.errors, status: :unprocessable_entity }
      end
    end
  end

calling the partials:

  <% @messages.each do |message| %>
  <%= sync partial: 'message_row', resource: message, refetch: true %>
  <% end %>
  <%= sync_new partial: 'message_row', resource: Message.new, scope: @conversation, refetch: true %>

partial:

    <%= link_to image_tag(message.sender.determine_avatar, {class: 'img-responsive img-circle influencer-circular-image'}), message.sender.profession %>

      <%= simple_format(message.body, {class: 'small-text msb-grey-color remove-margin', style: 'font-size:14px'}) %>

        <%= message.created_at.in_time_zone(current_user.influencer.time_zone).strftime("%b %d, %Y") %>
        <%= message.created_at.strftime("%b %d, %Y") %>


chore: use REACT_APP_KEEPKEY_VERSIONS_URL in headers.js

Description
Ensure our headers are in sync with the KeepKey versions URL.
Notice

[x] Have you followed the guidelines in our Contributing guide?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[x] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)
N/A
Risk
REACT_APP_KEEPKEY_VERSIONS_URL needs to be added and set to https://bafybeied24gc2ipvlxdbs4v676dwho2l5aafmngrleic3do2czdvgb546u.ipfs.dweb.link/keepKey.json before this is deployed, else the KeepKey version in the settings menu won't load.
Testing
KeepKey settings should load correctly when the REACT_APP_KEEPKEY_VERSIONS_URL environment variable is set.
Screenshots (if applicable)

@0xdef1cafe please add and set REACT_APP_KEEPKEY_VERSIONS_URL to https://bafybeied24gc2ipvlxdbs4v676dwho2l5aafmngrleic3do2czdvgb546u.ipfs.dweb.link/keepKey.json in our cloud environments.

@0xApotheosis con5cience fixed CORS on https://static.shapeshift.com/firmware/releases.json this morning; should we just use that?

@0xApotheosis con5cience fixed CORS on https://static.shapeshift.com/firmware/releases.json this morning; should we just use that?

Responses from the URL still seem to be lacking a access-control-allow-origin header, which is causing the requests to fail.

▶ curl -H "Access-Control-Request-Method: GET" -H "Origin: http://app.shapeshift.com" --head https://static.shapeshift.com/firmware/releases.json
HTTP/2 200
date: Fri, 15 Apr 2022 22:33:09 GMT
content-type: application/json
content-length: 3471
access-control-allow-origin: *
access-control-allow-methods: GET, HEAD
<snip>```

Confirming it's now working with the static URL - I suspect there was a caching issue.
Thanks @con5cience & @mrnerdhair 👍

thanks @mrnerdhair @con5cience and @0xApotheosis - env vars added, approved, rerunning failed CI and merging


Material tab bar should not have horizontal padding

Using material app and adding a tab bar to AppBar results in this:

Note the padding on the left
Looking at material design specs: https://material.google.com/components/tabs.html, there's no such padding.

This is a big deal for teams who want to add custom widgets to appbar bottom. The background color of the app bar bleeds because of padding and results in this:

@HansMuller

The appBar is adding the padding:
https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/app_bar.dart#L333
It definitely shouldn't be padding the bottom widget; will fix.

Is there anyway to remove horizontal padding in tabbar?

Is there anyway to remove horizontal padding in TabBar?
I think removing label padding would work , it fixed my issue try it -
labelPadding: EdgeInsets.all(0),

Is it possible to having Tab bar label without any padding?
It's not working:
 labelPadding: EdgeInsets.all(0),


Marker not rendering in a onPress on MapView

I'm trying to render a marker by setting the coordinate property in a Marker to the coordinate information I get from an onPress event on the MapView. The Marker is not rendering. Here is the code:
<MapView
style={styles.map}
initialRegion={{
latitude: 40.759025,
longitude: -73.985185,
latitudeDelta: 0.04,
longitudeDelta: 0.04
}}
onPress={(event) => { this.state.marker.coordinate=event.nativeEvent.coordinate
{console.log(this.state.marker.coordinate)}
return (
<MapView.Marker
key={1}
coordinate={this.state.marker.coordinate && this.state.marker.coordinate}
/>
)}}>

With some help I was able to render the markers by creating a function outside the render that was then called with onPress.
addMarker = evt => {
const {coordinate} = evt.nativeEvent
this.setState({places: [
...this.state.places, {
coordinate, title: 'Find Pusheen!', description: 'Pusheen has been dropped at this location.',
}]})
}
{
(this.state.places || []).map(
place =>
<MapView.Marker
coordinate={place.coordinate}
title={place.title}
description={place.description}
/>
)
}


Powercat doesn't work with files

Was curious if there was bug transferring files, our lab was a windows 7 client(pshell 2.0) going to server 2012(pshell 4) we couldn't get it to transfer files; all other features worked great, got them talking, shells opened, but following the exact instructions(main page) we couldn't get the files to transfer.
Appreciate any suggestions, and great work on a super cool tool!!
We got ncat working in the same scenario but would really like to have the ability to use powercat as well.

I'm still testing, and building the payload function, but this is at least 80% working. Testing with ncat. https://github.com/secabstraction/PowerCat
you'll have to go to the working branch for now.


Run test on Github Actions against multiple Python versions

We now test exclusively on Python 3.8 because I couldn't get multiple versions to work yet.
The matrix feature is probably what we need there.

Closed by #250


Add country border/names

Add an option to show country borders and names

It is not a cartographic modeling software like QGIS. It takes an image and transforms it into another projection.
It's up to you to use an input image that includes borders, country names etc...
You can use software like QGIS to create a custom map and use it as input.

This would be nice, but I agree with mapsmak353478 that it's out of the scope of this software. I believe if you use an SVG file with country names included as text, the MapDesignerVector will place them properly.

just a note.
I tried this. Ended up paying for a digital world map with country names.
obviously things are skewed a bit, but looks relatively good.


Also add support for terminator!

I'm a terminator user so it would be great if you can add support for terminator too!

Hi,

https://github.com/Gogh-Co/Gogh/issues/345
https://github.com/Gogh-Co/Gogh/issues/1


As a user, I want to retrieve the population of a region so that I can analyze demographic trends of people within a region

SQL:
select Region as Region , sum(Population) as TotalPopulation,
(select sum(city.Population) from city inner join country on city.CountryCode = country.Code where country.Region=c.Region) as UrbanPopulation,
round((select sum(city.Population) from city inner join country on city.CountryCode = country.Code where country.Region=c.Region)/sum(Population)*100,2) as UrbanPopulation%,
(sum(c.Population) - (select sum(city.Population) from city inner join country on city.CountryCode = country.Code where country.Region=c.Region)) as RuralPopulation,
round((select(sum(c.Population) - (select sum(city.Population) from city inner join country on city.CountryCode = country.Code where country.Region=c.Region))/sum(Population)*100),2) as RuralPopulation%
from country c where c.Region  = '%region%';
Parameters:
%region%

Added report28.xml to feature/reports branch


Midleware system by codernirmal with help of devstack

Hello Balram thakur Sir i resolve my promise  and made certain changes hope you like it

So as of now, I am not merging the code but later on, at some point in time, I will sure merge this code 😊. I will make sure your work will not be wasted 😊

Thank you balram rathore can we do some project together. I am good at vue js,node js and laravel... But little bit in flutter . If you have any idea then we both can do project and sharpen our skill..

Sure , one day

As of now, have lot of work :), but sure one day :)


Terms and Conditions

As a user, I want to read the terms and conditions so that I know what is legal
+Alex

Not relevant anymore for the website


isTextWrapped={false} causes line indentation to disappear

When isTextWrapped={false} is set it will not respect line indentation anymore and put everything in the beginning. See images

Reproducer
https://codesandbox.io/s/jolly-glitter-ovcjvo?file=/index.tsx

@DaoDaoNoCode @SpyTec howdy! If you want to preserve white-space, but not line-wrap, looks like that should use white-space: pre instead? Here's a demo - https://codesandbox.io/s/busy-pike-jey2ht?file=/style.css
You can look at the available options for white-space if you'd like to check out the difference - https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
For reference, we use white-space: break-spaces; for a default log viewer (which is basically like pre-wrap with a few differences), and white-space: nowrap for the nowrap version, like you mentioned.

I noticed it created a vertical scrollbar, is that due to something else that needs to be fixed?

@SpyTec hmm.... I noticed that only happens the first time the log viewer is set to nowrap - toggling it off/on again doesn't create the scrollbar. Also when I see the scroll bar, clicking into the text area of the log viewer makes it go away. I wonder if it has something to do with the way the height is set? https://github.com/patternfly/react-log-viewer/blob/7d14727dad98f04fe8ad5990f1b724d4b24468ef/packages/module/src/LogViewer/LogViewer.tsx#L224-L234


Update README.md

@flangofas hehe .. A readme file update breaks the unit tests ... :cool: :)  It's just a temporary networking issue, with Travis CI not being able to fetch composer packages.


Wordpress FP on 932200 when writing articles

Description
Argument ARGS:_wp_http_referer in WP leads to FP in 932200.
It's WP itself that leads to the FP. So I reckon we should cover this with the rule exclusion.
Audit Logs / Triggered Rule Numbers
[2020-09-16 11:01:21.420291] [-:error] xx.xx.xx.xx:44436 X2HUYRNqGW2xJG471yDs2gAAAAY [client xx.xx.xx.xx] ModSecurity: Warning.  Pattern match "([*?`\\\\'][^/\\\\n]+/|\\\\$[({\\\\[#a-zA-Z0-9]|/[^/]+?[*?`\\\\'])" at ARGS:_wp_http_referer. [file "/etc/apache2/coreruleset-3.3.0-rc2/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf"] [line "627"] [id "932200"] [msg "RCE Bypass Technique"] [data "Matched Data: /post.php? found within ARGS:_wp_http_referer: /cms/wp-admin/post.php?post=1612&action=edit"] [severity "CRITICAL"] [ver "OWASP_CRS/3.2.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-rce"] [tag "OWASP_CRS"] [tag "OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION"] [tag "WASCTC/WASC-31"] [tag "OWASP_TOP_10/A1"] [tag "PCI/6.5.2"] [hostname "www.netnea.com"] [uri ".../wp-admin/post.php"] [unique_id "X2HUYRNqGW2xJG471yDs2gAAAAY"]

Your Environment

CRS version (e.g., v3.2.0): 3.3.0-rc2 (this is not the latest one, I know)
Paranoia level setting: 2
ModSecurity version (e.g., 2.9.3): 2.9.3
Web Server and version (e.g., apache 2.4.41): recent enough
Operating System and version: Ubuntu

Confirmation
[X] I have removed any personal data (email addresses, IP addresses,
passwords, domain names) from any logs posted.

This seems to be a special case of issue #1835.
I would prefer if we make rule 932200 so that it won't match on these URLs which are very commonly seen in parameters and in posted text.
If we can't do that, modifying the exclusion would make more sense, but let's see how that issue develops first.

This should be fixed in PR #1894. Further discussion can happen there, if needed. Thanks!


Support for completion

Hi there, how easy would it be to adapt the library to support tab completion for e.g. a REPL grammar, similarly to what is supported by the sbt parsers? Thanks

It's possible to build a layer on top of this library to do this, but this library itself is unlikely to provide special support.
You could, for example, parse something and looked at the traceParsers that failed to see what the possibilities that could let the parse continue would be. This would be a neat technique to add to the readme

Thanks a lot for your answer! I still don't see fully how to make this work. For instance, let's say I have a number of alternatives for a string literal. At the point just where that literal is expected, the user presses the tab key. The parsing fails because the required literal is missing, so I retrieve the last parser in the trace. Then I would have to introspect or "ask" this parser about what are the possible alternatives to offer them to the user. This means I somehow have to adapt the parsers or find a way to extract this information from them. Is that feasible?
Thanks a lot for your answer, rich autocompletion is a strong requirement for me and I'm about to start implementing my own parser combinators library which embeds this notion of completion at its core, in the parser trait itself, akin to what is done in the sbt parsers.

Something like this would work
haoyi-fastparse@
{
def flatten(p: fastparse.core.Parser[_]): Seq[fastparse.core.Parser[_]] = p match {
  case fastparse.parsers.Combinators.Either(ps@_*) => ps.flatMap(flatten)
  case fastparse.parsers.Combinators.Rule(_, p) => flatten(p())
  case fastparse.WhitespaceApi.CustomSequence(wl, p0, p, _) => flatten(p0)
  case fastparse.parsers.Combinators.Optional(p) => flatten(p)
  case fastparse.parsers.Combinators.Repeat(p, _, _, _) => flatten(p)
  case fastparse.parsers.Combinators.Sequence.Flat(p0, ps) => (p0 +: ps.map(_.p)).flatMap(flatten)
  case x => Seq(x)
}
def failure = scalaparse
  .Scala
  .CompilationUnit
  .parse("@annot Foo")
  .asInstanceOf[fastparse.core.Parsed.Failure]

failure.index
failure.extra
       .traced
       .traceParsers
       .toSeq
       .flatMap(flatten)
       .distinct
       .filter(_.isInstanceOf[fastparse.parsers.Terminals.Literal])
}
defined function flatten
defined function failure
res30_2: Int = 7
res30_3: Seq[fastparse.core.Parser[_]] = ArrayBuffer(
  "abstract",
  "final",
  "sealed",
  "implicit",
  "lazy",
  "private",
  "protected",
  "override",
  "trait",
  "case"
)

This flattens out the traceParsers and tries to find whatever is on the most LHS of those parsers. Many of them will be some kind of fastparse.Terminals.Literal, and you could use those for your autocomplete.
Note that this depends 100% on your parser being strict about unnecessary backtracking (i.e. having lots of ~/s where necessary) in order for the final traceParsers to be in the correct location, at the end of the input.
FastParse could possibly support more things related to this in future, or provide more guarantees about what the parser structure looks like, but for now this will have to do

Great, thanks a lot for your detailed answer, very much appreciated!


Replace ComputableFlow obsolete Coroutine usage

Is your feature request related to a problem? Please describe.
Our SDK implementation uses an obsolete Coroutine API like:

ConflatedBroadcastChannel<T>
computationChannel.asFlow()
computationChannel.send()
computationChannel.cancel()

in the class cash.z.ecc.android.sdk.internal.ext.android.ComputableFlow
Describe the solution you'd like
Note: This API is obsolete since 1.5.0. It will be deprecated with warning in 1.6.0 and with error in 1.7.0. It is replaced with StateFlow.
Additional context
We suppress this warning with @ObsoleteCoroutinesApi for now.

Related but separate issue: https://github.com/zcash/zcash-android-wallet-sdk/issues/288


Styling slightly off on some pages

Assume it's related to our most contentious PR ever https://github.com/openaq/openaq.github.io/pull/129.
I took a quick look at the site and figured it'd be all broken or not, but looks like some things are slightly off?
https://openaq.org/#/compare/Mandir Marg/FRANCONIA/Beijing US Embassy?parameter=pm25&_k=xoj1qk

cc/ @olafveerman @danielfdsilva

Noticed the formatting on the data/country page here too:

Yup, you're right. It's indeed related to that one PR.
I'll issue a fix soon

Addressed in this PR https://github.com/openaq/openaq.github.io/pull/133


Remove spring-messaging modules

PR pending to move the code to a separate project: https://github.com/opentracing-contrib/java-spring-messaging/pull/2

CI failed, I have restarted it

failed again

Do you think that this is related somehow? The only common file that I've modified is root pom.xml and only to remove module declarations.

Looks like all builds started to fail: https://travis-ci.org/opentracing-contrib/java-spring-cloud/builds

locally it passed, master too

@alesj do you know why travis fails on this
Tests in error:

  testListenerSpans(io.opentracing.contrib.spring.cloud.jms.JmsArtemisStarterTest): Condition with lambda expression in io.opentracing.contrib.spring.cloud.jms.JmsArtemisStarterTest was not fulfilled within 10 seconds.

I will merge, it should be safe and it's not related to this PR.

@pavolloffay nope, no idea. What changed?


Trigger not created correctly

The triggers never get created (Zabbix 5.0) The Webscenarios are working though. I have to delete them again every time I am testing because otherwise it wont even try to start  creating the triggers again.
I used this as my trigger template in the .yml file: value: "last(/${HOST}/web.test.fail[Check index page '${URL}'])<>0" since this exact trigger is already working after I set it up manually. Something seems messed up in the way the expression is put together I think. It seems to add <>0 on the end for example.
Any help is appreciated.
2023-09-25 14:52:32 - INFO - [zabbix_lld_ws::webscenarios] - creating web scenario for 'http://mysite.org'
2023-09-25 14:52:32 - INFO - [zabbix_lld_ws::webscenarios] - web scenario has been created for 'http://mysite.org'
2023-09-25 14:52:32 - INFO - [zabbix_lld_ws] - web scenario has been created for 'http://mysite.org'
2023-09-25 14:52:32 - ERROR - [zabbix_lld_ws::zabbix] - error -32602
2023-09-25 14:52:32 - ERROR - [zabbix_lld_ws::zabbix] - - message: 'Invalid params.'
2023-09-25 14:52:32 - ERROR - [zabbix_lld_ws::zabbix] - - data: 'Invalid parameter "/1/expression": incorrect expression starting from "{last(/myserver.org/web.test.fail[Check index page 'http://mysite.org'])<>0}<>0".'
2023-09-25 14:52:32 - ERROR - [zabbix_lld_ws::triggers] - unable to create trigger for 'http://mysite.org'
2023-09-25 14:52:32 - ERROR - [zabbix_lld_ws] - unable to create trigger for url 'http://mysite.org'

Thanks for report. Please, post log here with --log-level=debug.

This is the part about trigger creation that shows up for every single item.
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws] - item 'Vhost https://site.to.check.org item'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws] - ---------------------------
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws] - item: Vhost https://site.to.check.org item
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws] - - url 'https://site.to.check.org'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws] - web scenario wasn't found for url 'https://site.to.check.org', creating..
2023-09-27 17:32:09 - INFO - [zabbix_lld_ws::webscenarios] - creating web scenario for 'https://site.to.check.org'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::webscenarios] - host-id: '10356'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - send post request to 'https://zabbix.server.org/zabbix/api_jsonrpc.php'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - ---[HTTP RESPONSE]----
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - {"jsonrpc":"2.0","result":{"httptestids":["122"]},"id":1}
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - ---[/HTTP RESPONSE]----
2023-09-27 17:32:09 - INFO - [zabbix_lld_ws::webscenarios] - web scenario has been created for 'https://site.to.check.org'
2023-09-27 17:32:09 - INFO - [zabbix_lld_ws] - web scenario has been created for 'https://site.to.check.org'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::triggers] - create trigger for host 'web.server.org', url 'https://site.to.check.org'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::triggers] - trigger config 'ZabbixTriggerConfig { name: "Site '${URL}' on '${HOST}' is unavailable", value: "last(/${HOST}/web.test.fail[Check index page '${URL}'])<>0" }'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::triggers] - trigger name 'Site 'https://site.to.check.org' on 'web.server.org' is unavailable'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::triggers] - trigger expression '{last(/web.server.org/web.test.fail[Check index page 'https://site.to.check.org'])<>0}<>0'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - send post request to 'https://zabbix.server.org/zabbix/api_jsonrpc.php'
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - ---[HTTP RESPONSE]----
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - {"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid params.","data":"Invalid parameter \"/1/expression\": incorrect expression starting from \"{last(/web.server.org/web.test.fail[Check index page 'https://site.to.check.org'])<>0}<>0\"."},"id":1}
2023-09-27 17:32:09 - DEBUG - [zabbix_lld_ws::http] - ---[/HTTP RESPONSE]----
2023-09-27 17:32:09 - ERROR - [zabbix_lld_ws::zabbix] - error -32602
2023-09-27 17:32:09 - ERROR - [zabbix_lld_ws::zabbix] - - message: 'Invalid params.'
2023-09-27 17:32:09 - ERROR - [zabbix_lld_ws::zabbix] - - data: 'Invalid parameter "/1/expression": incorrect expression starting from "{last(/web.server.org/web.test.fail[Check index page 'https://site.to.check.org'])<>0}<>0".'
2023-09-27 17:32:09 - ERROR - [zabbix_lld_ws::triggers] - unable to create trigger for 'https://site.to.check.org'
2023-09-27 17:32:09 - ERROR - [zabbix_lld_ws] - unable to create trigger for url 'https://site.to.check.org'
``

I'll check and come back

Please try new build https://github.com/tinyops-ru/zabbix-lld-ws/releases/tag/0.7.1-2
If problem will appear again, send me piece of log

Yes, it works now. But the functionality of not skipping the trigger creation when there is a web scenario already is gone again. You fixed this in another release of a different issue I created. Was this intentional. If yes, then I will close it, otherwise this may be a regression bug?

Could you provide the latest log file with DEBUG logging mode?

What I did:

Deleted all the created triggers but not the web scenarios
ran sudo -u zabbix ./wszl --log-level=debug gen
No Triggers were created

The debug log, but I cut out everything but one vhost, so I dont have to censor the whole thing:
2023-10-06 15:03:34 - INFO - [zabbix_lld_ws::config] - config loaded: api: 'api version: 6, endpoint: 'https://my.zabbix.server.org/zabbix/api_jsonrpc.php', username: 'api_user', password: '*********'', scenario: 'name: 'Check index page '${URL}'', response-timeout: '15s', expect-status-code: '200, attempts: 3, update-interval: '5m''
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - send post request to 'https://my.zabbix.server.org/zabbix/api_jsonrpc.php'
2023-10-06 15:03:34 - DEBUG - [reqwest::connect] - starting new connection: https://my.zabbix.server.org/
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - {"jsonrpc":"2.0","result":"2bc68a1d76fd25c5c6d30b632af91ea2","id":1}
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[/HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - login success: token '2bc6..'
2023-10-06 15:03:34 - INFO - [zabbix_lld_ws::items] - searching zabbix items..
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - send post request to 'https://my.zabbix.server.org/zabbix/api_jsonrpc.php'
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - {"jsonrpc":"2.0","result":[{"itemid":"41636","type":"15","snmp_oid":"","hostid":"10356","name":"Vhost https://my.site.org item","key_":"vhost.item[https://my.site.org]","delay":"5m","history":"90d","trends":"365d","status":"0","value_type":"3","trapper_hosts":"","units":"","formula":"","logtimefmt":"","templateid":"0","valuemapid":"0","params":"0","ipmi_sensor":"","authtype":"0","username":"","password":"","publickey":"","privatekey":"","flags":"4","interfaceid":"0","description":"","inventory_link":"0","lifetime":"30d","evaltype":"0","jmx_endpoint":"","master_itemid":"0","timeout":"3s","url":"","query_fields":[],"posts":"","status_codes":"200","follow_redirects":"1","post_type":"0","http_proxy":"","headers":[],"retrieve_mode":"0","request_method":"0","output_format":"0","ssl_cert_file":"","ssl_key_file":"","ssl_key_password":"","verify_peer":"0","verify_host":"0","allow_traps":"0","uuid":"","state":"0","error":"","parameters":[],"lastclock":"1696597136","lastns":"222769409","lastvalue":"0","prevvalue":"0"}],"id":1}
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[/HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::items] - zabbix items: [ZabbixItem { name: "Vhost https://my.site.org item", key_: "vhost.item[https://my.site.org]", hostid: "10356" }]
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - received items:
2023-10-06 15:03:34 - INFO - [zabbix_lld_ws::webscenarios] - searching web scenarios..
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - send post request to 'https://my.zabbix.server.org/zabbix/api_jsonrpc.php'
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - {"jsonrpc":"2.0","result":[{"httptestid":"174","name":"Check index page 'https://my.site.org'","nextcheck":"1696597638","delay":"5m","status":"0","agent":"Zabbix","authentication":"0","http_user":"","http_password":"","hostid":"10356","templateid":"0","http_proxy":"","retries":"3","ssl_cert_file":"","ssl_key_file":"","ssl_key_password":"","verify_peer":"0","verify_host":"0","uuid":"","headers":[],"variables":[]}],"id":1}
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[/HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::webscenarios] - web scenarios found: [ZabbixWebScenario { name: "Check index page 'https://my.site.org'" }]
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - web scenarios have been obtained
2023-10-06 15:03:34 - INFO - [zabbix_lld_ws::hosts] - find hosts by ids..
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - send post request to 'https://my.zabbix.server.org/zabbix/api_jsonrpc.php'
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - {"jsonrpc":"2.0","result":[{"hostid":"10356","proxy_hostid":"0","host":"my.server.org","status":"0","lastaccess":"0","ipmi_authtype":"-1","ipmi_privilege":"2","ipmi_username":"","ipmi_password":"","maintenanceid":"0","maintenance_status":"0","maintenance_type":"0","maintenance_from":"0","name":"my.server.org","flags":"0","templateid":"0","description":"","tls_connect":"2","tls_accept":"2","tls_issuer":"","tls_subject":"","proxy_address":"","auto_compress":"1","custom_interfaces":"0","uuid":"","inventory_mode":"-1"}],"id":1}
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws::http] - ---[/HTTP RESPONSE]----
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - item 'Vhost https://my.site.org item'
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - ---------------------------
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - item: Vhost https://my.site.org item
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - - url 'https://my.site.org'
2023-10-06 15:03:34 - DEBUG - [zabbix_lld_ws] - web scenario has been found for url 'https://my.site.org', skip

@bbx-github is the problem still relevant? sorry, i missed this issue somehow.

I've release a new version 0.7.2
https://github.com/tinyops-ru/zabbix-lld-ws/releases/tag/0.7.2
Web scenarios and triggers are now independent of each other.


SentinelOne: add DataFiled grouping

Change(s):

DataField fields grouping was added

Hi @averbn  - This got merge conflicts. Can you please make changes after pulling the latest from master.

@averbn Can you please resolve conflicts?

It seems I have no permissions for doing that

@averbn Can you please resolve conflicts?

It seems I have no permissions for doing that

@averbn Can you please resolve conflicts?

You are the author I think you must have the right.

@averbn  These conflicts are complex that why you won't be able to resolve in web editor you have to resolve locally.

e in web editor you have to resolve locally.

@averbn These conflicts are complex that why you won't be able to resolve in web editor you have to resolve locally.

New PR without conflicts: https://github.com/Azure/Azure-Sentinel/pull/4500

@averbn  please close this PR.

New PR  with: 4500 merged. we are closing this pr. thanks!!!


fix: Square bracket displayed in system message for unapproved expense report

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/49160
PROPOSAL: https://github.com/Expensify/App/issues/49160#issuecomment-2373434784
Tests

Log in as an admin in OldDot.
Create a Collect workspace.
Add user B as an employee.
As the employee, log in to NewDot and submit an expense in the workspace chat.
As the employee, go to the expense details page.
As the admin, go to the expense report in OldDot.
Approve the expense and then unapprove it.
As the employee in NewDot, check the system message when the expense is unapproved.
Verify that: The system message should correctly specify that the admin has unapproved the report.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Log in as an admin in OldDot.
Create a Collect workspace.
Add user B as an employee.
As the employee, log in to NewDot and submit an expense in the workspace chat.
As the employee, go to the expense details page.
As the admin, go to the expense report in OldDot.
Approve the expense and then unapprove it.
As the employee in NewDot, check the system message when the expense is unapproved.
Verify that: The system message should correctly specify that the admin has unapproved the report.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/67078f58-b22d-402a-8f90-a81e6719383b

Android: mWeb Chrome

https://github.com/user-attachments/assets/18da775b-3162-4b31-b915-c1c0562f7a1b

iOS: Native

https://github.com/user-attachments/assets/4aa45db4-6cd6-4d3b-915b-8c210ac458e9

iOS: mWeb Safari

https://github.com/user-attachments/assets/7148ae5b-f104-4370-8a30-e914d9bd7868

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/f45e4c66-0309-4556-8298-a9a0af04b3ed

MacOS: Desktop

https://github.com/user-attachments/assets/d2709d61-5b96-40c4-a1b4-a7f85aa64bc5

@DylanDylann I am a little stuck on the Android builds, can you help me to check?

@nkdengineer Your step is incorrect

@nkdengineer Some left comments

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@DylanDylann i updated, please check again

Are these supposed to be equivalent? Because the spanish one does not make much sense, should be desaprobó.

@iwiznia Ops, It seems both me and @nkdengineer forgot to update videos again. I will do it soon

Ah ok, can you make sure to include one where this is used please?

@iwiznia I updated all videos on my checklist.
This is a sample on the web:
https://github.com/user-attachments/assets/2c65bf10-8766-4a36-af8c-087e55fbb90d

@DylanDylann I think you missed this comment?

@iwiznia

Ah ok, can you make sure to include one where this is used please?

No, this translation is created in this PR, but now we don't use it in anyplace. Should we remove it?

No, this translation is created in this PR, but now we don't use it in any places. Should we remove it?

Yes

@iwiznia All yours

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


feat: add  template-vue-tsx for create-vite

Signed-off-by: snowdream<EMAIL_ADDRESS>
Description

add  template-vue-tsx for create-vite
Additional context

What is the purpose of this pull request?

[ ] Bug fix
[X] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[X] Read the Contributing Guidelines.
[X] Read the Pull Request Guidelines and follow the Commit Convention.
[X] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[X] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

Thanks for the PR @snowdream, we have already discussed this addition in a prev PR and for the moment this is out of the scope of create-vite. If there isn't a good starter template in https://github.com/vitejs/awesome-vite, please consider sharing yours there.


[Catalog] Should not use getInstance() of Catalog anymore

Catalog is currently a singleton class.
In the Master FE, this singleton class actually has two instances:  One is the Catalog used for formal services(Called Formal Catalog), and the other is the catalog used for metadata image generation(Called Checkpoint Catalog).
Therefore, we provide two ways to obtain catalog instance:

getInstance() is used to get Formal Catalog.
getCurrentCatalog() is more intelligent, it will determine which catalog is actually returned by determining whether the current thread is a Checkpoint thread. If current thread is checkpoint thread, it will return Checkpoint Catalog. Otherwise, it will return Formal Catalog.

I decided to delete the getInstance() method and use getCurrentCatalog() uniformly.
Because the getInstance() method may introduce many errors.
For example, in the checkpoint process, all operations should be directed against the Checkpoint Catalog. If the getInstance() method is called incorrectly, it is equivalent to operating the Formal Catalog in the wrong operation, which will cause metadata errors.

+1.


Use test kit in sample UI tests

Update samples with UI tests to use test kit spanning methods instead of local helper methods
Note: some of the UI tests in FoldingVideo and PhotoEditor fail but for reasons other than this update - I can create issues for these so we can fix them in the future

Code definitely looks neater!
Do we know what caused the failing FoldingVideo and PhotoEditor tests?

Glad you think so 😄
For PhotoEditor, the drag and drop test is failing because I think we're using an outdated method for starting a different app (the Files app). FoldingVideo might need a little more investigation, but I think it might be related to the animated entrance of the controls


Dev Environment Improvements

This PR aims to add a few opinionated improvements to the code base

Swap npm with pnpm for faster performance and global dependency management
https://pnpm.io/

Add prettier code formatter

Gets rid of specific eslint configuration to make the project more standard
( In case we require the specific configuration I can add a more modern implementation which accomodates the same)

Hi @MalikBagwala,
Thanks for the effort, but I'm not looking to add opinionated changes. I've taken note of some style rules that I might apply next release for better consistancy (as that is always a good thing!)


[ISSUE]  DeprecationWarning: invalid escape sequence '.'

Description
https://github.com/databricks/databricks-sdk-py/blob/a558d97415e8ced4b88c70e03e0a31f4f2006610/databricks/sdk/service/jobs.py#L61C30-L61C30 the backslash before the period in the docstring throws the following warning. DeprecationWarning: invalid escape sequence '.'.
Reproduction
Run the following code through pytest or something.
"""The sequence number of this run attempt for a triggered job run. The initial attempt of a run
    has an attempt_number of 0\. If the initial run attempt fails, and the job has a retry policy
    (`max_retries` \> 0), subsequent runs are created with an `original_attempt_run_id` of the
    original attempt’s ID and an incrementing `attempt_number`. Runs are retried only until they
    succeed, and the maximum `attempt_number` is the same as the `max_retries` value for the job."""

Expected behaviour
Not receiving a warning.
Is it a regression?
Didn't check.
Other Information

OS: Linux.
Python: 3.10.
Version: latest.

Thanks for raising this, we will take a look.

As of python 3.12, this DeprecationWarning is now raised by the language itself. https://docs.python.org/3/whatsnew/3.12.html#other-language-changes  . So, I can confirm the existence of the issue as well :).
Seems like an easy fix. Either double the backslash or use a raw string, I suppose.

I think this was probably closed by https://github.com/databricks/databricks-sdk-py/commit/fb30ed98912a4e62a4b535188765f792b7bc6f47#diff-9125abd285f0b94b52f0445f9f85a75a921fae47124d670ab9f8f822de9f33acL61


Webshop referal

The webshop which is refered to on github in the "https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures#clean-architecture"
is adviced to not use or create your SOLID application from. It suffers from reference issues, its not loose coupled as Jason Taylors version etc. Can you pls correct the solution and update it in github.
Example, Dependency injection in web project with configurations for services? It should be decoupled, A reference in one of the ConfigurexxxServices is wrong etc

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

ID: 1ebf17cd-9d3e-d928-0767-d06e346868bb
Version Independent ID: b227c667-82ae-97ef-c175-7e17051c5ab2
Content: Common web application architectures
Content Source: docs/architecture/modern-web-apps-azure/common-web-application-architectures.md
Product: dotnet-architecture
Technology: modern-web-apps-azure
GitHub Login: @ardalis
Microsoft Alias: wiwagn

The only "webshop" referenced in that section would be the one the book is associated with, which is
https://github.com/dotnet-architecture/eShopOnWeb

Never mind, I see that is the one you were referring to. I think any issues with that sample can be addressed with issues there, with your issue https://github.com/dotnet-architecture/eShopOnWeb/issues/524 as a good starting point and for tracking.

Closing as duplicate of https://github.com/dotnet-architecture/eShopOnWeb/issues/524


[com.google.fonts/check/glyphsets/shape_languages] Misleading support from Latin_Core

(NOTE: Please include the check-id in the issue's title. Check-id example: [com.organization-name/check/something])
Observed behaviour
I love this experimental check, but a lot of these languages are not really meant to be supported by Latin Core (Hawaiian, Maeshallese, Sicilian, Teso, Ganda, Jola-Fonyi, Nyanja, Wolof).

🔥 FAIL GF_Latin_Core/nl_Latn (Dutch): [FAIL: Shaper didn't attach acutecomb to uni0237] [code: failed-language-shaping]
🔥 FAIL GF_Latin_Core/haw_Latn (Hawaiian): [FAIL: Some base glyphs were missing: ʻ, FAIL: Shaper produced a .notdef] [code: failed-language-shaping]
🔥 FAIL GF_Latin_Core/mh_Latn (Marshallese): [FAIL: Some base glyphs were missing: Ḷ, ḷ, Ṃ, ṃ, Ṇ, ṇ, Ọ, ọ, FAIL: Some mark glyphs were missing: ◌̣, FAIL: Shaper produced a .notdef] [code: failed-language-shaping]
🔥 FAIL GF_Latin_Core/scn_Latn (Sicilian): [FAIL: Some base glyphs were missing: Ḍ, ḍ, FAIL: Shaper produced a .notdef] [code: failed-language-shaping]
🔥 FAIL GF_Latin_Core/teo_Latn (Teso): [FAIL: Some base glyphs were missing: Ɔ, Ɛ, Ɨ, Ʉ, ɔ, ɛ, ɨ, ʉ, ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ, ⁱ, FAIL: Shaper produced a .notdef] [code: failed-language-shaping]
🔥 FAIL GF_Cyrillic_Plus/tg_Cyrl (Tajik): [FAIL: Some base glyphs were missing: ҳ, FAIL: Shaper produced a .notdef] [code: failed-language-shaping]
🔥 FAIL GF_Cyrillic_Plus/uz_Cyrl (Uzbek (Cyrillic)): [FAIL: Some base glyphs were missing: ҳ, FAIL: Shaper produced a .notdef] [code: failed-language-shaping]
⚠ WARN GF_Latin_Core/lg_Latn (Ganda): [WARN: No variant glyphs were found for Eng] [code: warning-language-shaping]
⚠ WARN GF_Latin_Core/dyo_Latn (Jola-Fonyi): [WARN: No variant glyphs were found for Eng] [code: warning-language-shaping]
⚠ WARN GF_Latin_Core/ny_Latn (Nyanja): [WARN: No variant glyphs were found for Eng] [code: warning-language-shaping]
⚠ WARN GF_Latin_Core/wo_Latn (Wolof): [WARN: No variant glyphs were found for Eng] [code: warning-language-shaping]
⚠ WARN GF_Cyrillic_Plus/ku_Cyrl (Kurdish): [WARN: No exemplar glyphs were defined for language Kurdish] [code: warning-language-shaping]

[1] Family checksℹ INFO: Check axis ordering on the STAT table. (com.google.fonts/check/STAT/axis_order)
Expected behaviour
I think this check will be easier to update when Jan's glyphset definitions are merged in the main branch of the glyphset repo because then we'll have an actual file that lists the languages meant to be supported by Latin_Core.
I find it very useful that it tests the languages that are "almost" supported though!

I would like to keep WARNs for the languages that are supported by the font but not officially supported by Latin_Core
Also WARNs for languages "almost" supports (like between 1-5 missing glyphs)

Resources and steps needed to reproduce
Found when testing the fonts in this repo: https://github.com/NaN-xyz/Rubik-Filtered
cc @yanone

Maybe just update the language list?
https://github.com/googlefonts/glyphsets/pull/109/files#diff-44efeed2f05af0f346bbafc2379257c9e15e74a43c632a79ab344469b7c3723c

thanks, @yanone!

The check still reports expectations for languages like Guaraní or Quechua that would belong to the Latin Beyond.
🔥 FAIL: Shapes languages in all GF glyphsets. (com.google.fonts/check/glyphsets/shape_languages)

This check uses a heuristic to determine which GF glyphsets a font supports. Then it checks the font for correct shaping behaviour for all languages in those glyphsets.

🔥 FAIL GF_Latin_Core glyphset:

Language
FAIL messages

gn_Latn (Guarani)
Some base glyphs were missing: ʼ

^
Shaper produced a .notdef

qu_Latn (Quechua)
Some base glyphs were missing: CHʼ, Kʼ, Pʼ, Qʼ, Tʼ, chʼ, kʼ, pʼ, qʼ, tʼ

^
Shaper produced a .notdef

[code: failed-language-shaping]

@vv-monsalve i think Jan added Guarani in Latin Core because it was an American language with more than 5M speakers. I’ll check later to be sure.

Yes, it's defined here: https://github.com/googlefonts/glyphsets/blob/main/Lib/glyphsets/definitions/init.py#L20
I added it because it fit the requirements. We can take it out.

Can we move this discussion to the glyphsets issue tracker?

I've already prepared a PR for glyphsets, so I'm closing this.
The new glyphsets dependency version will come as part of a Fontbakery PR on another topic that I'm currently finishing.


[Request] for easier localization

Hello devs!
For Files I put my translation into a .xlf file. It is more useful so I would be glad if you would add this feature.
Hungarian is caotic in its way, so google translate is doing more harm than good. I check Ambie every second day so hungarian is always up to date.
Thanks for your consideration.

I'm new to localization so this feedback is very valuable, thank you! I will investigate the xlf file soon!

@KristofKekesi thanks again for this suggestion. I have enabled xlf files in ambie, however, I did not create xlf files yet for the existing languages. I noticed that doing so will delete the existing translations, and I didn't want to move all the languages in one sitting from resw to xlf (and because I am sure I would have made errors).
If you have time, please feel free to move the Hungarian resw to an xlf! I really appreciate your contributions!

Actually, please hold off on that! It seems there is a way to convert our existing resw files into xlf files. I set up a task to do this work #78


[backport/1.24] Increase daemon-containerd timeout and order daemon-kubelite after it

This is a cherry-pick of PR #3685 to release branch 1.24 (trivial backport).
Summary of test steps (see PR for details):
Before:
$ sudo snap install microk8s --classic --channel=1.24/edge
$ snap info microk8s | grep 1.24/edge:
  1.24/edge:             v1.24.10        2023-02-03 (4638) 224MB classic
...
$ systemctl show snap.microk8s.daemon-containerd.service | grep NRestarts
NRestarts=3
$ systemctl show snap.microk8s.daemon-kubelite.service | grep NRestarts
NRestarts=13

After:
$ git log --oneline -2
ca3b5bb31b0c (daemon-containerd-timeout-1.24) Increase daemon-containerd timeout and order daemon-kubelite after it (#3685)
6bc7a2979987 (origin/1.24) update list of images used by 1.24 (#3727)

$ sudo snap install ./microk8s_v1.24.10_amd64.snap --classic --dangerous
...
$ systemctl show snap.microk8s.daemon-containerd.service | grep NRestarts
NRestarts=0
$ systemctl show snap.microk8s.daemon-kubelite.service | grep NRestarts
NRestarts=0

Summary

Changes

Testing

Possible Regressions

Checklist

[ ] Read the contributions page.
[ ] Submitted the CLA form, if you are a first time contributor.
[ ] The introduced changes are covered by unit and/or integration tests.

Notes

The 4 failing tests in check Build MicroK8s snap on PR and push to master / Create snap package (pull_request) don't seem to be related to this change (errors on /snap/bin/microk8s status, and /snap/bin/microk8s.enable).
FAILED test-addons.py::TestAddons::test_help_text - sh.ErrorReturnCode_1:

  RAN: /snap/bin/microk8s status --format=yaml

  STDOUT:

  STDERR:
Traceback (most recent call last):
  File "/snap/microk8s/x1/scripts/wrappers/status.py", line 209, in <module>
    enabled, disabled = get_status(available_addons, isReady)
  File "/snap/microk8s/x1/scripts/wrappers/common/utils.py", line 463, in get_status
    kube_output = kubectl_get("all,ingress")
  File "/snap/microk8s/x1/scripts/wrappers/common/utils.py", line 198, in kubectl_get
    return run(KUBECTL, "get", cmd, "--all-namespaces", die=False)
  File "/snap/microk8s/x1/scripts/wrappers/common/utils.py", line 56, in run
    result.check_returncode()
  File "/snap/microk8s/x1/usr/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '('/snap/microk8s/x1/microk8s-kubectl.wr... (84 more, please see e.stderr)
FAILED test-addons.py::TestAddons::test_basic - subprocess.CalledProcessError: Command '['/snap/bin/microk8s.enable', 'dns:<IP_ADDRESS>,<IP_ADDRESS>']' returned non-zero exit status 1.
FAILED test-addons.py::TestAddons::test_prometheus - subprocess.CalledProcessError: Command '['/snap/bin/microk8s.enable', 'prometheus']' returned non-zero exit status 1.
FAILED test-addons.py::TestAddons::test_rbac_addon - subprocess.CalledProcessError: Command '['/snap/bin/microk8s.enable', 'rbac']' returned non-zero exit status 1.

Hi @mfoliveira, thanks for creating the backports.
Indeed it's a known issue and just today the fix for that one was backported to all stable branches, see #3767 for the 1.24 branch. Can you please rebase this and then we can proceed?
Thanks again!

Hey @neoaggelos
Sure, rebased and pushed!
The PR you mentioned is now listed.  Thanks!
mfo@mfo-t470:~/git/microk8s$ git log --oneline -2
53f21a8dba59 (HEAD -> daemon-containerd-timeout-1.24) Increase daemon-containerd timeout and order daemon-kubelite after it (#3685)
afe432e7732d (origin/1.24) Merge pull request #3767 from canonical/MK-1003/1.24


Alternatives to ngx-pinch-zoom?

As it seams @drozhzhin-n-e is no longer maintaining the project. Maybe he had to go to war.
Does anybody have any alternatives, wich work nicely with Angular?

Hello, did you find a solution?

Hey, so far I lost sight of the problem. Until now nix-Zoom works for me. But keep me updated if you find an alternative!

Just copy the lib folder in your project  and import PinchZoomModule  from pinch-zoom.module.ts file.

https://www.npmjs.com/package/@meddv/ngx-pinch-zoom


Can anybody give me steps for creating Packer image which i should call from Jenkins. any extra software should install for this Jenkins master. Thanks in advance

Hi,
Please follow steps:

Install "Packer" plugin in jenkins
Manage jenkins -> Manage Plugins -> Available -> packer -> install packer
Restart Jenkins
Configure packer in "Glbal Tool Configuration"
Manage jenkins -> Global Tool Configuration -> packer -> Packer installations

Save
Create a new job. Then configure "Packer"  in Post Build Actions

Build Now

Surely This acan help me. thanks!


create_contract_from_ed25519 and create_contract_from_contract: Bytes vs. ContractCode

The functions create_contract_from_ed25519 and create_contract_from_contract take a WASM-containing Bytes (formerly "Binary") input and produces / stores a WASM-containing ContractCode. This is a bit weird, and possibly not intended? I suspect it's residual from when it returned a Binary. It should be sorted out before we finalize this interface.

Fwiw the interface we have to creating contracts via these two functions is not intuitive and I think we need to revisit it and reframe it. There's a separate issue for that here: https://github.com/stellar/rs-soroban-env/issues/348.

Fyi the SDK has no "ContractCode" type, and it isn't really valuable for us to add it or maintain that type in the SDK, so it'd be great if the SDK can keep creating contracts just from wasm. We can add it if we need to buy really the SDK just needs to deploy a blob of wasm.

Totally agreed with @leighmcculloch, I do not believe users should ever encounter ContractCode. The interface provided is what I intended. I'm closing this since the bigger picture of what creating contracts should look like will be handled in #348.