Improve type inference of functions

TODO:

[ ] parse type annotations

Codecov Report

Merging #9 (2e2f407) into main (c351278) will decrease coverage by 1.81%.
The diff coverage is 63.63%.

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
- Coverage   73.48%   71.68%   -1.81%
==========================================
  Files          12       13       +1
  Lines         860      943      +83
  Branches      102      118      +16
==========================================
+ Hits          632      676      +44
- Misses        228      267      +39

Files
Coverage Δ

src/Escalier.Data/Library.fs
30.64% <ø> (ø)

src/Escalier.Parser/Expressions.fs
97.07% <100.00%> (+0.19%)
:arrow_up:

src/Escalier.TypeChecker/Infer.fs
77.95% <86.95%> (-0.71%)
:arrow_down:

src/Escalier.Data/Visitor.fs
29.16% <29.16%> (ø)

... and 1 file with indirect coverage changes


Dev

occ-fft

The virtual orbitals are likely to be very wrong in this method, which will affect the following correlated wavefunction calculations. So I don't recommend putting this in PySCF.
Xing

There are plenty of cases where one does not need the virtual orbitals,
e.g. if one were just doing HF or DFT, or say doing DMC afterwards which
just uses the occupied orbitals. So it is a useful technique. The question
is really how to let the user know if they are doing a conventional
correlated calculation afterwards.
Perhaps there should be a separate class for this type of calculation.
On Wed, Nov 6, 2019 at 11:26 AM fishjojo<EMAIL_ADDRESS>wrote:

The virtual orbitals are likely to be very wrong in this method, which
will affect the following correlated wavefunction calculations. So I don't
recommend putting this in PySCF.
Xing
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pyscf/pyscf/pull/423?email_source=notifications&email_token=AAN5NRDXEXYEOBN2XI2AWWTQSMK5NA5CNFSM4JDNXPRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDHWNMA#issuecomment-550463152,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAN5NRB4PFOPJ3RNLYNPWZDQSMK5NANCNFSM4JDNXPRA
.

Thanks for the sugestion.
I will solve these problems.
-----原始邮件-----
发件人:fishjojo<EMAIL_ADDRESS>发送时间:2019-11-07 04:23:08 (星期四)
收件人: pyscf/pyscf<EMAIL_ADDRESS>抄送: baopengbp<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>主题: Re: [pyscf/pyscf] Dev (#423)
@fishjojo requested changes on this pull request.
In pyscf/pbc/df/fft.py:

@@ -159,6 +159,9 @@ def vppnl_by_k(kpt):
class FFTDF(lib.StreamObject):
'''Density expansion on plane waves
'''

#print('qrtq00023421')

Please delete this
In pyscf/pbc/df/fft.py:

@@ -180,6 +183,9 @@ def init(self, cell, kpts=numpy.zeros((1,3))):
self._numint = numint.KNumInt()
self._rsh_df = {}  # Range separated Coulomb DF objects
self._keys = set(self.dict.keys())

   # for occ-fft

   self.occ = False

self.occ is misleading. Let's use self.use_ace instead. Ideally, we should also have the option of including additional virtual orbitals in the ACE scheme.
In pyscf/pbc/df/fft_occk.py:

   vk_kpts = np.zeros((nset,nband,nao,nao), dtype=np.complex128)

coords = mydf.grids.coords
ao2_kpts = [np.asarray(ao.T, order='C')

           for ao in mydf._numint.eval_ao(cell, coords, kpts=kpts)]

if input_band is None:

   ao1_kpts = ao2_kpts

else:

   ao1_kpts = [np.asarray(ao.T, order='C')

               for ao in mydf._numint.eval_ao(cell, coords, kpts=kpts_band)]

+########################

if mo_coeff is None:

       return _format_jks(vk_kpts, dm_kpts, input_band, kpts)

elif nset > 1:

just put a NotImplementedError here
In pyscf/pbc/df/fft_occk.py:

+JK with occ discrete Fourier transformation
+'''

+import time
+import numpy as np
+from pyscf import lib
+from pyscf.pbc import tools
+from pyscf.pbc.dft import numint
+from pyscf.pbc.df.df_jk import _format_dms, _format_kpts_band, _format_jks
+from pyscf.pbc.df.df_jk import _ewald_exxdiv_for_G0
+from pyscf.pbc.lib.kpts_helper import is_zero, gamma_point
+
+import scipy.linalg
+
+#@profile
+def get_k_kpts_occ(mydf, dm_kpts, hermi=1, kpts=np.zeros((1,3)), kpts_band=None,
a proper function name could be get_k_kpts_ace
In pyscf/pbc/df/fft_occk.py:

else:

   vk_kpts = np.zeros((nset,nband,nao,nao), dtype=np.complex128)

coords = mydf.grids.coords
ao2_kpts = [np.asarray(ao.T, order='C')

           for ao in mydf._numint.eval_ao(cell, coords, kpts=kpts)]

if input_band is None:

   ao1_kpts = ao2_kpts

else:

   ao1_kpts = [np.asarray(ao.T, order='C')

               for ao in mydf._numint.eval_ao(cell, coords, kpts=kpts_band)]

+########################

if mo_coeff is None:

       return _format_jks(vk_kpts, dm_kpts, input_band, kpts)

This will return a zero V_k at the 1st SCF iteration or if dm_kpts is not properly tagged with the MO coefficients. It's dangerous to code it this way.
In pyscf/pbc/df/fft_occk.py:

           vG = None

           if vR_dm.dtype == np.double:

               vR = vR.real

           for i in range(nset):

             np.einsum('ijg,jg->ig', vR, ao_dms[i], out=vR_dm[i,p0:p1])

           vR = None

       vR_dm *= expmikr.conj()

       for i in range(nset):

           # occ

           kiv[i][k1] += weight * lib.dot(vR_dm[i,0:mo_coeff[k1].shape[1]], ao1T.T)

   t1 = lib.logger.timer_debug1(mydf, 'get_k_kpts: make_kpt (%d,*)'%k2, *t1)

for i in range(nset):

   for k1, ao1T in enumerate(ao1_kpts):

       kij = lib.einsum('ui,ju->ij', mo_coeff0[k1], kiv[i][k1])

       kr = scipy.linalg.solve(kij.conj(), kiv[i][k1])

Let's try Cholesky decomposition for -kij first. If it fails, do an eigen decomposition and eliminate the eigenvectors corresponding to the small eigenvalues.
In pyscf/pbc/df/fft_occk.py:

           if vR_dm.dtype == np.double:

               vR = vR.real

           for i in range(nset):

             np.einsum('ijg,jg->ig', vR, ao_dms[i], out=vR_dm[i,p0:p1])

           vR = None

       vR_dm *= expmikr.conj()

       for i in range(nset):

           # occ

           kiv[i][k1] += weight * lib.dot(vR_dm[i,0:mo_coeff[k1].shape[1]], ao1T.T)

   t1 = lib.logger.timer_debug1(mydf, 'get_k_kpts: make_kpt (%d,*)'%k2, *t1)

for i in range(nset):

   for k1, ao1T in enumerate(ao1_kpts):

       kij = lib.einsum('ui,ju->ij', mo_coeff0[k1], kiv[i][k1])

       kr = scipy.linalg.solve(kij.conj(), kiv[i][k1])

       vk_kpts[i,k1] = lib.dot(kiv[i][k1].T.conj(),kr)

Please modify this accordingly.
In pyscf/pbc/df/fft_occk.py:

   t1 = lib.logger.timer_debug1(mydf, 'get_k_kpts: make_kpt (%d,*)'%k2, *t1)

for i in range(nset):

   for k1, ao1T in enumerate(ao1_kpts):

       kij = lib.einsum('ui,ju->ij', mo_coeff0[k1], kiv[i][k1])

       kr = scipy.linalg.solve(kij.conj(), kiv[i][k1])

       vk_kpts[i,k1] = lib.dot(kiv[i][k1].T.conj(),kr)

Function _ewald_exxdiv_for_G0 to add back in the G=0 component to vk_kpts

Note in the _ewald_exxdiv_for_G0 implementation, the G=0 treatments are

different for 1D/2D and 3D systems.  The special treatments for 1D and 2D

can only be used with AFTDF/GDF/MDF method.  In the FFTDF method, 1D, 2D

and 3D should use the ewald probe charge correction.

if exxdiv == 'ewald':

   _ewald_exxdiv_for_G0(cell, kpts, dms, vk_kpts, kpts_band=kpts_band)

print "Took this long for occ-X: ", time.time()-Jtime

Please use the logger.timer function.
In pyscf/pbc/df/fft_occk.py:

+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Author: Peng Bao<EMAIL_ADDRESS>+#
+# Modified from pyscf/pbc/df/fft_jk.py
+#
+# ref: Lin, L. J. Chem. Theory Comput. 2016, 12, 2242\u22122249.
+#

+'''
+JK with occ discrete Fourier transformation
No J
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Add remove option on the fly

A very nice addition to your plugin would be to add a + and - button to add and remove options in the current list. The minus would remove the currently selected while the plus would add what is written at the moment in the text field..

Not sure what the use case would be for the end user to dynamically change the dropdown results.  Sounds like this is a poor fit for Select2, and a different sort of widget might be more appropriate.


Translations mergeWith merge flags

The merge flags passed to the Translations::mergeWith function do not have any effect. This is due to the following code staring on line 214:
$add = (boolean) $method & self::MERGE_ADD;

The intended result here is probably to cast the result of the bitwise &, however it's casting the $method param to bool, then performing the bitwise op. This basically sets the $method to self::MERGE_ADD making the other flags meaningless. The following code produces the expected results:
$add = (boolean) ($method & self::MERGE_ADD);
$references = (boolean) ($method & self::MERGE_REFERENCES);
$comments = (boolean) ($method & self::MERGE_COMMENTS);

Thanks again. As you can see, this feature wan't tested properly. I added some basic tests but maybe more bugs can ben found.

Thanks, have been merging newly scanned php files with the main translation files - so it's nice to have the refs in place. It seems to be working in practice, but I'll put together a few unit tests to be sure.

:+1:


feat: Multiple Rate Limiting option (again)

Description:
This feature request is follow up from Slack discussion with @arkodg .
The functionality for defining multiple rate limits was previously available through RateLimitFilters. However, these filters were removed from the codebase around version 0.6.0. A new CRD named BackendTrafficPolicy was introduced, and the rateLimit field now belongs to this CRD.
It would be beneficial to be able to define multiple rate limits again for entire paths within BackendTrafficPolicy. This would allow for a use case where a "basic" rate limit could be applied to unauthenticated clients, while a stricter "proper" rate limit could be applied to users with valid JWT authentication (basic authentication is a separate consideration).

this should be possible with https://gateway.envoyproxy.io/docs/tasks/traffic/global-rate-limit/
Option 1 - match on :path
sometthing like
  rateLimit:
    type: Global
    global:
      rules:
      - clientSelectors:
        - headers:
          - name: :path
            value: /app
        limit:
          requests: 3
          unit: Hour

Option 2
Create 2 HTTPRoutes (same hostname but different rules for different path matches) and apply a unique BTP for each HTTPRoute

keeping this issue open so we can consider adding path and method (relates to https://github.com/envoyproxy/gateway/discussions/4448) as first class fields in the API so users dont need to rely on the pseudo headers


python3Packages.pywizlight: 0.4.16 -> 0.5

Motivation for this change
https://github.com/sbidy/pywizlight/releases/tag/v0.5
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 158382 run on x86_64-linux 1

2 packages built:

python310Packages.pywizlight
python39Packages.pywizlight

Result of nixpkgs-review pr 158382 run on aarch64-darwin 1

2 packages built:

python310Packages.pywizlight
python39Packages.pywizlight


Generic config store interface

(re-opening PR, somehow couldn't update the other one)

@rshriram added a cache interface with a note about grace period for full sync

PTAL. This intentionally breaks istioctl since the PR is already way too large. I'll fix istioctl later.

Jenkins job pilot/presubmit passed

Jenkins job pilot/presubmit passed

presubmit passed but jenkins failed to post status

merging, will do follow up PRs

build pilot/e2e-smoketest

build pilot/e2e-smoketest


upgrade bulletchart to vsersion 1.1.2. fix scrollbar issue

fix undefined variables in chordChart visual.
Fix scrollbar issue in the bulletchart.
set category labels in bulletchart to be in the middle of each bar

Hi @b-vikras, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;


exercises(high-scores): implement

To-do:

[x] example, stub: consider renaming parameter from s
[ ] config.json: decide on exercise placement
[ ] example, stub, tests: personalTopThree: consider passing an allocator instead.
[ ] consider making functions return ?u32
[ ] consider removing test for init
[ ] consider removing tests for immutability
[ ] consider making the scores field an ArrayList, so we can better imagine adding new scores.

Personally I think it's reasonable as-is. We can always riff on it in the future if people have feedback


Improve source identification of log entries

When analysing the c5 Logs, all events relating to visitors users are attributed to the user 'Guest'.
On a quiet site, we can assume that adjacent entries are mostly for the same visitor.  On a busy site, it can be impossible to tell which log entries are attributable to a specific visitor.
My suggestion is to add an extra column to the Logs table.
Ideally this would be used to record the IP address of the user (so could also be used to tell if a registered and logged in user had been hacked and logged in from elsewhere). However, that may have privacy implications (GDPR etc), so perhaps some other unique value could be logged, such as session ID. Or maybe the source of the ID recorded could be configurable between a range of ID sources.
In general, anything to help connect a nearby group of log entries to be from the same visitor and filter out those from other guests appearing in the log within the same timeframe.

I'd have to get my CISO to weigh in on this, but I thought that a unique identifier (even if it's not an IP or an obfuscated IP) was potentially just as problematic for privacy concerns/GDPR as an IP address was. I definitely think we ought to add an IP address. We're logging IP addresses elsewhere, for the IP banlist table (although we're not tying them to specific actions people do in the site today)

I'd have to get my CISO to weigh in on this, but I thought that a unique identifier (even if it's not an IP or an obfuscated IP) was potentially just as problematic for privacy concerns/GDPR as an IP address was. I definitely think we ought to add an IP address. We're logging IP addresses elsewhere, for the IP banlist table (although we're not tying them to specific actions people do in the site today)


[compress_assets] Mission: 100% coverage

This will ensure that compress_assets plugin is covered at 100% by tests.
To achieve that, there is a fixture that allows module masking: some module will be unavailable while the test function is running. I hope there is no side-effects.
I also set use_orig to True (in a832e35d) because this plugin does not care about media processing, and it really speeds tests up.
Achieving 100% coverage for this small module was a funny (but quite easy) game :)

OOOOK, so python3 tests failed. Too bad.

This looks quite complicated to gain a few percents of coverage :open_mouth: . I looked quickly and I'm not sure to sure the "meta path" thing. Could it be simpler with Python 3 features like https://docs.python.org/3/library/importlib.html#importlib.abc.MetaPathFinder ? Now that the version 1.4.0 is released, the plan is to drop Python 2, so we could maybe benefit from this.

I wonder if we could find a simpler solution. If I understand correctly, the idea is to prevent the brotli and zopfli imports in order to test the compressor fallback. It seems there is a simpler way here: https://medium.com/python-pandemonium/how-to-test-your-imports-1461c1113be1
with mock.patch.dict(sys.modules, {'brotli': None}):
    ...

Yes. This is indeed a MUCH better solution, since it only involves code from the standard librairies. Mock is only available from Python 3.3, but it is OK, since 1.4 has been released.

Thanks @Glandos !


Doc link broken

This link gives a 404 page not found: https://rogerluo.dev/Moshi.jl/start/match/builtin

which page is referencing this link?

It's referenced at https://github.com/Roger-luo/Moshi.jl/blob/9f1010a25316ad257d20ad47b402659ef47e1f52/docs/src/content/docs/start/match.mdx?plain=1#L61-L62

The correct link should be here I guess?
https://github.com/Roger-luo/Moshi.jl/blob/9f1010a25316ad257d20ad47b402659ef47e1f52/docs/src/content/docs/match/syntax.mdx?plain=1#L23-L26

I just fixed a few ones, and please feel free to open PR to fix them if you see any!


Remove linkedin tag

The linkedin tag is now added via tag manager, so this PR removes the manually added tag.

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/457e831ce6613bf687fbfe9c0bbb89c23ac29c87/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/365b09349476ed542edf7e4cdca4b1cd2ce33b4b/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/2b88e3b23759cdf81f1ec77e3dd33ac845eae3be/


docs: add some Chinese documents.

Add some Chinese documents.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.dunwenqiang seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Connection reset by peer

Looks like connection to OpenAI gets closed at some point. Here's the trace
> can you please refactor the `eastern` variable into a global

Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 790, in urlopen
    response = self._make_request(
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 536, in _make_request
    response = conn.getresponse()
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/connection.py", line 454, in getresponse
    httplib_response = super().getresponse()
  File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.9/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.9/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.9/socket.py", line 704, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3.9/ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/lib/python3.9/ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.9/site-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 844, in urlopen
    retries = retries.increment(
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/util/retry.py", line 470, in increment
    raise reraise(type(error), error, _stacktrace)
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/util/util.py", line 38, in reraise
    raise value.with_traceback(tb)
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 790, in urlopen
    response = self._make_request(
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 536, in _make_request
    response = conn.getresponse()
  File "/home/pi/.local/lib/python3.9/site-packages/urllib3/connection.py", line 454, in getresponse
    httplib_response = super().getresponse()
  File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.9/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.9/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.9/socket.py", line 704, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3.9/ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/lib/python3.9/ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 520, in request_raw
    result = _thread_context.session.request(
  File "/home/pi/.local/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/pi/.local/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/home/pi/.local/lib/python3.9/site-packages/requests/adapters.py", line 501, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/pi/.local/bin/aider", line 8, in <module>
    sys.exit(main())
  File "/home/pi/.local/lib/python3.9/site-packages/aider/main.py", line 240, in main
    coder.run()
  File "/home/pi/.local/lib/python3.9/site-packages/aider/coder.py", line 226, in run
    new_user_message = self.run_loop()
  File "/home/pi/.local/lib/python3.9/site-packages/aider/coder.py", line 286, in run_loop
    return self.send_new_user_message(inp)
  File "/home/pi/.local/lib/python3.9/site-packages/aider/coder.py", line 304, in send_new_user_message
    content, interrupted = self.send(messages)
  File "/home/pi/.local/lib/python3.9/site-packages/aider/coder.py", line 402, in send
    completion = openai.ChatCompletion.create(
  File "/home/pi/.local/lib/python3.9/site-packages/openai/api_resources/chat_completion.py", line 25, in create
    return super().create(*args, **kwargs)
  File "/home/pi/.local/lib/python3.9/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create
    response, _, api_key = requestor.request(
  File "/home/pi/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 220, in request
    result = self.request_raw(
  File "/home/pi/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 533, in request_raw
    raise error.APIConnectionError(
openai.error.APIConnectionError: Error communicating with OpenAI: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))```

Thanks for reporting this, and for including the full stack trace.
It should be fixed now, along with a couple of new test cases.


Rename the --summarize flag to --stat

It should clearly be --stat - that is what the git flag that does the same thing is called and what I always think ours is called.

Should be fixed by https://github.com/attic-labs/noms/pull/3661


Fixes GEODE-874

Replaced gradlew commands with gradle in text files.
Corrected classpath shown for compiling and running app in Geode in 5
Minutes section of README.md

You changed these to be ./gradle. I don't think that makes sense. Either someone is using the gradle wrapper - './gradlew' - or they are using in installed copy of gradle, in which case they would do 'gradle" (no ./)
Dockerfile is script, and it starts by clone the repo. So ./gradlew is the appropriate thing do there.
I do wonder how many people will use the source distro vs. just cloning the repo from github. For most people, ./gradlew is the easiest and correct thing to do.

You're correct. I should have changed "./gradlew" to just "gradle" for the .txt and .md files I updated. I also agree that gradlew, not gradle, is the correct usage in Dockerfile.
The problem here with using gradlew is that it's not part of the release distributions. As part of the source distro we shouldn't be calling out a script that's not part of the package. I realize that this conflicts with the  common usage when building from a clone of the github repo. Any suggestion for handling this disconnect between building from source distro vs. repo clone? I favor making the text  instructions consistent with the release.
Should we go back to Anthony's suggestion in GEODE-826 to use the gradlew script from bigtop which I understand could be included in the GEODE source distro.

I'm closing this PR in favor of looking at the longer term solution of gradlew vs. gradle in the release distros. The secondary problem I found (path error in README.md) will be dealt with separately.


feat: added get BlocksByEpochAPI + readded pages to blocks API

Hi,
I added a small API to the blocks controller to get Blocks by Epoch. We can discuss how the Endpoint should be called, currently just a placeholder.
Additionally I readded the Page to get Blocks. This allows users to easier query how many blocks are present at all.
I assume you had a reason, why you removed the Page object and replaced it with slice. Was it due to performance?
I'm currently only letting this run on preprod, so can't say anything about speed on mainnet.
I'll test soon.

Thanks @Kammerlo
We removed Page for performance reasons. Since Page performs an extra count query, it becomes very slow for networks like mainnet.
One of the goals is to keep the resource requirements minimal for default APIs, unless absolutely necessary.
Because block numbers are sequential, we can easily calculate the total number of blocks on the client side from the most recent block. Also, with Slice, only the previous and next pages are provided, which should be sufficient for the block list page. Typically, users search by block number or check the recent 20 blocks, then navigate to previous blocks as needed.
Hope that makes sense.
The new API looks good to me. The Page option might work well in this case due to the additional "epoch" filter, but we need to try it out. Also, we should decide if using both Page and Slice for different use cases is ok. It’s probably fine.

Reverted changes to slice like it was before + changed the new endpoint to slice as well. I'll calculate the page count in the frontend.


Adds credits footer to each page. Closes #115

This adds credits and a link to the GitHub repository on each page by
adding a paragraph after the footer block. The credits on index.html
are removed.

Looks good to me. :shipit:


Avoiding page retrieval fails: title isn't sent in create request

I try to prevent the isso backend from fetching the page to get the title. So, reading the docs i use the following:

If i'm not mistaken it should be that when data-isso-id and data-title are provided it shouldn't try to read the page. Which in my case is blocked because of authentication.
Here comes the problem: I don't understand why the title attribute doesn't show up in the data transferred for new comment creation. (first comment for the first thread on this domain)
Here's the data posted to https://server/some-app/new?uri=uniqueid when creating the first comment for a new thread:
{"author":null,"email":null,"website":null,"text":"test","parent":null}

In isso.js i see the following which makes me expect a title in the data sent.
api.create($("#isso-thread").getAttribute("data-isso-id"), {
                author: author, email: email, website: website,
                text: utils.text($(".textarea", el).innerHTML),
                parent: parent || null,
                title: $("#isso-thread").getAttribute("data-title") || null
            }).then(...)...

I noticed the files being served by my gunicorn are the minified versions, can there be that those (albeit just installed through an upgrade through pip) aren't the latest as developed here at git?
Is there anything else i can do to make it work?

So. the minified version is not up to date, because using the dev version works like a charm.

@fluffy-critter @jelmer another candidate for closing.

@fluffy-critter @jelmer another candidate for closing.


DefaultRouteMap doesn't work when integration testing

In DefaultRouteMap, the routes are discovered using Assembly.GetExecutingAssembly() and then searching for types which extend Controller.
However, when you are performing an integration test using Microsoft.AspNetCore.TestHost (as recommended by Microsoft here) then the 'executing' assembly is actually the test assembly, not the service assembly. This means the routes in the service assembly are never discovered and so custom link policies are never applied.

I was never particularly happy with this way of mapping the Api. But as I never had a specific issue with it, I never got round to improving that. Using ApiExplorer may be one option, but it will take some thought.
If you have any ideas, please feel free to suggest them, either here or in a pull request.

I have a similar problem in my application where a helper library needs to reflect over types in the real service library to register them, and I do something like (a bit pseudo-codey):
var thisAssembly = typeof(MyClass).GetTypeInfo().Assembly.GetName().Name;
var IEnumerable<CompilationLibrary> libraries =
    DependencyContext.Default
                     .CompileLibraries
                     .Where(l => l.Dependencies.Any(d => d.Name.Equals(thisAssembly)));

var names = libraries.Select(l => l.Name).Distinct();
var assemblies = names.Select(a => Assembly.Load(new AssemblyName(a)));

Then assemblies is the collection of assemblies which directly reference your assembly, so you can loop over them and check their types.

That seems sensible. I'll not get a chance to test this out until the weekend/early next week.

I have made this change and added an integration test project to the BasicSample solution.
Thanks again for your feedback.


stopPropogation on select box click

I'm experiencing an issue where i'm having a dom listener on other component that listens to document:click (this component closes itself when clicked outside of it's node).
It works for all scenarios but when i'm clicking the ng-select component no event is fired at all.
Maybe it's because of some stopPropogation property ? I couldn't find one relevant in the source code.
Any suggestions ?

@scopsy I wonder if that's the guy you're looking for: https://github.com/valor-software/ng2-select/blob/development/src/select/off-click.ts


To get the [request object] in the [cart hook] and to be able to call the cart hook [with parameters]...

... the request object is needed. E.g. to manipulate the line items in the cart. In a custom hook I do not have the services.cart object available.
1. Why is this change necessary?
Extends the cart hook with the possibility to read the request object to pass parameters to the cart hook.
2. What does this change do, exactly?
Adds RequestFacadeFactory::class in the getServiceIds array.
3. Describe each step to reproduce the issue or behaviour.
services.request.query is not available before, but it is with this addition now
{% if services.request.query.foo === 'bar' %}
{# clear the cart #}
{% endif %}
4. Please link to the relevant issues (if any).
5. Checklist

[x] I have rebased my changes to remove merge conflicts
[ ] I have written tests and verified that they fail without my change
[x] I have created a changelog file with all necessary information about my changes
[ ] I have written or adjusted the documentation according to my changes
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

🤖 Generated by Copilot at 5704944
Added RequestFacadeFactory dependency to CartHook class to simplify request handling. This is part of a pull request to improve cart performance.

🤖 Generated by Copilot at 5704944

Add RequestFacadeFactory as a dependency for CartHook (link)

Hi @codixio,
first, thanks for the contribution. But I would recommend implementing it the other way around. Instead of giving access to the request in the cart hook (which can be any request), I would recommend releasing the cart service in the /store-api/script/{hook} endpoint to pass data and operations to the cart.

I would recommend releasing the cart service in the /store-api/script/{hook} endpoint to pass data and operations to the cart.

Thank you. That means I need to change the PHP script "src\Storefront\Framework\Script\Api\StorefrontHook.php" like this?
public static function getServiceIds(): array
{
    return [
        RepositoryFacadeHookFactory::class,
        SystemConfigFacadeHookFactory::class,
        SalesChannelRepositoryFacadeHookFactory::class,
        RepositoryWriterFacadeHookFactory::class,
        ScriptResponseFactoryFacadeHookFactory::class,
        RequestFacadeFactory::class,
        CartFacadeHookFactory::class,
        PriceFactoryFactory::class,
    ];
}

I would recommend releasing the cart service in the /store-api/script/{hook} endpoint to pass data and operations to the cart.

Daniel Neustadt mendioned on stackoverflow:
"There's also the storefront-{hook} which does provide the request data, but not the cart service. And furthermore that hook is dispatched after the cart hook, so you also can't use the request data in one script and pass along data to another script, say as an added state to the Context." (Source https://stackoverflow.com/questions/76870317/shopware6-5-app-how-to-get-form-post-request-or-set-variable-for-a-twig-scripts)
What do you think about it?

@codixio yes

StoreAPIHook as well

src\Core\Framework\Script\Api\StoreApiResponseHook.php :
public static function getServiceIds(): array
{
    return [
        RepositoryFacadeHookFactory::class,
        SystemConfigFacadeHookFactory::class,
        SalesChannelRepositoryFacadeHookFactory::class,
        RepositoryWriterFacadeHookFactory::class,
        ScriptResponseFactoryFacadeHookFactory::class,
        RequestFacadeFactory::class,
        CartFacadeHookFactory::class,
        PriceFactoryFactory::class,
    ];
}

What do you think about it?

I think with a page redirect in the case of a given Post parameter, this should work, when the cart facade is available in these two Api hook scripts.
{% do hook.setResponse(
services.response.render('frontend.checkout.cart.page')
) %}


feat(theme): 🎨 apps/theme enabled in all linters

Fix for #2005
Included apps/theme in tsconfig root
Extended apps/theme tsconfig to include the root tsconfig
Fixed eslint errors/warnings
No longer ignore apps/theme in stylelintignore
Fixed stylelint errors

Sorry, we didn't flag the issue correctly but we have done a lot of these changes and other for the upcoming release of V1. All the changes that have been done that regards is in the next branch. I changed the target for you on this PR to check how many conflict would occur 🙈

@mimarz thats okay. I will like to see what i did is even close to the next branch.

@mimarz thats okay. I will like to see what i did is even close to the next branch.

Alrighty. We haven't sorted out all our environments yet. Going forward next will be the development branch and main be whats currently published to production/(@latest).

Can we close this or did you want to look at it more? @poi33 ?

Yeah, I'll close it. Its not going to contribute much


Add license file

are there any opinions on licenses, everyone @bioimage-io/admin ?
I think it's best to keep it very open - after all we want people to use it :)

MIT is a good choice! Thanks for the PR.


not an issue

Hello Peter,
Sorry I post it here, but I can't figure out how I can contact you elsewhere.
Just a quick question - I'm looking for raspberry deployment, where I can just
play video by pressing an external button (via GPIO). I wonder if I can use your
digital signage solution for that, or there is no such interactive feature possible ?
Sincerely
Mikhail

Hi Mikhail,
never tried controlling stuff with buttons via GPIO, sounds like the whole digital signage solution is a bit of overkill for what you want. Maybe it would be better to google a bit how you can solve the stuff with the GPIO button, triggering a video is relatively simple by just using a script to call omxplayer.
Greets,
Peter


Support .beta.17

Please support Angular2.beta.17 :)

Yeah, it would be great to replace # to let in templates

Hmm, this can be closed now.
Refer to https://github.com/valor-software/ng2-bootstrap/pull/481

fixed with #481


Issue 611 Added Custom API Driven Back end

#611

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: galen0624:x: murphymj25You have signed the CLA already but the status is still pending? Let us recheck it.

@magiconair @leprechau Would either of you be able to grant me access to - continuous-integration/codeship ?  I see that the builds are failing for our recent PRs and I would like to dig into why.  I'm assuming its a go mod issue but I'll need access to confirm.   Also please add @murphymj25 if pobbile.  Thank you.

@galen0624 Commented in the issue.  Thank you again!

LGTM pending the one small change requested in #611 comment.

#611 Updated CustomBE to Custom

@galen0624 Thank you again.


Macos fixes and RTS Flags for tuning GC within GHC

I didn't really do much to make it straightforward for someone to easily tune the RTS flags for their own environment.  If you want to merge the PR, let me know and I can update it to make the RTS flags more user friendly.

Hi @rwhiten1, I'm going to close this PR for now.  If we want to apply some changes for Postgres down the road, we can open a new PR.  Hope all is well.


enhancement:hamburger menu to toggle to 'X' on mobile

This PR enhances the mobile navigation experience by updating the hamburger menu icon to toggle between a three-line icon and an "X" when the navigation bar drops down. This makes it clearer for users when the menu is open and clickable to close.
Attached is a video showcasing the new behavior on mobile.
https://github.com/user-attachments/assets/266ea7d1-4e1b-46e7-8599-7845c90fca14

Summary by CodeRabbit

New Features

Enhanced mobile navigation with conditional rendering of icons based on menu state.
Updated mobile menu appearance with improved background colors and shadow effects based on scroll state.

i will merge it after #57 solved


more utils and style fixes

I see some changes from the new useFetch is in here. Waiting for clarification before stylistic changes are approved too.


Command to close all tabs

Any specific reason why such a common command across editors is not available in Atom?
I implemented it like this and it works just fine (respects other open projects a well as files with unsaved changes):
atom.workspace.getPanes()[0].destroy()
The keybinding from Textmate 1 (cmd-ctrl-w) is free by default.
Cheers - Victor

The keybinding from Textmate 1 (cmd-ctrl-w) is free by default.

Not that it matters, but virtually no keys are free.  77,457 users use it
for find-and-replace and 69, 060 users use it for emmet.  (shameless plug
for search-all-keybindings package).
On Wed, Feb 11, 2015 at 7:26 PM, Víctor M. Valenzuela <
<EMAIL_ADDRESS>wrote:

Any specific reason why such a common command across editors is not
available in Atom?
I implemented it like this and it works just fine (respects other open
projects a well as files with unsaved changes):
atom.workspace.getPanes()[0].destroy()
The keybinding from Textmate 1 (cmd-ctrl-w) is free by default.
Cheers - Victor
—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5511.

Nice!
Still, I think a plugin keybinding would override a core one, so the only 'freeness' that would matter is the one in core.

Looks like https://github.com/atom/tabs/issues/61, so closing this in favor of that issue.

For anyone else looking for a quick way to achieve this, you can add the following to your keymaps file (~/.atom/keymap.cson):
'body':
  'cmd-ctrl-w': 'tabs:close-all-tabs'

Ctrl+K Ctrl+W worked for me.

Ctrl+K Ctrl+W only closes a single pane for me when I have two tabs setup horizontally.

@Bobobrien92 Try Ctrl+K Ctrl+W for each pane.

Yeah that works for each pane but it's not really a keyboard shortcut to close all tabs.  It's more of a shortcut to close all tabs in the active pane that I have to repeat x times for x panes I have opened.

¯__(ツ)__/¯


Revert "Add adminUsers in aadprofile"

Reverts Azure/azure-rest-api-specs#17402
AKS internal is not on the same page upon this feature, revert the change firstly.

Request review from previous reviewer @ruowan, could you please take a look?


Actually apply the GNU licenses

The GNU licenses contain instructions for applying those licenses to works. They say that, ideally, folks should add a notice to each file. However, the template as was did not actually state that the works are licensed under the included license. This PR changes that by copying the recommended verbiage from each respective license.

For GPL-3.0+ I got the text from
https://github.com/JuliaCI/PkgTemplates.jl/blob/46997ed6b70dd988fcaccadfc7746929f41e4cee/templates/licenses/GPL-3.0%2B#L635-L648
For GPL-2.0+ I got the text from
https://github.com/JuliaCI/PkgTemplates.jl/blob/46997ed6b70dd988fcaccadfc7746929f41e4cee/templates/licenses/GPL-2.0%2B#L294-L308
For LGPL-3.0+ I got the text from
https://github.com/JuliaCI/PkgTemplates.jl/blob/46997ed6b70dd988fcaccadfc7746929f41e4cee/templates/licenses/GPL-3.0%2B#L635-L648 with slight modification.
For LGPL-2.1+ I got the text from
https://github.com/JuliaCI/PkgTemplates.jl/blob/46997ed6b70dd988fcaccadfc7746929f41e4cee/templates/licenses/LGPL-2.1%2B#L474-L489
For AGPL3.0+ I got the text from
https://github.com/JuliaCI/PkgTemplates.jl/blob/46997ed6b70dd988fcaccadfc7746929f41e4cee/templates/licenses/AGPL-3.0%2B#L633-L646

Thanks!


Unexpected UNWATCH after pipeline EXEC

Version:
Redis-py 3.4.1
Redis 5.0.7
Platform:
Python 3.8.2
Mac OS 10.13.6
Description:
When executing a transaction with watched keys, Pipeline.execute() does not clear the watching state of the pipeline object, so a subsequent call to Pipeline.reset() will send an extra UNWATCH command to the server.
Example:
from redis import Redis
redis = Redis(...)

with redis.pipeline() as pipe:
    pipe.watch("key")
    pipe.get("key")
    pipe.multi()
    pipe.set("key", "value")
    pipe.execute()

Redis monitor output:
1583397021.463844 [0 <IP_ADDRESS>:50360] "WATCH" "key"
1583397021.465269 [0 <IP_ADDRESS>:50360] "GET" "key"
1583397021.466502 [0 <IP_ADDRESS>:50360] "MULTI"
1583397021.466524 [0 <IP_ADDRESS>:50360] "SET" "key" "value"
1583397021.466531 [0 <IP_ADDRESS>:50360] "EXEC"
1583397021.467971 [0 <IP_ADDRESS>:50360] "UNWATCH"

Thanks, merged in 9c8be70e12c501dd0682232e9a7b686ac5e70ec3


Unable to enter a single space in a formula in a table

Description
For example:
#table(columns: (auto),
  $$, $$
)

In order to align the formulas between lines in the edit window, I may need to insert a single space between the formula symbols
When I try to insert a single space into the middle of the first pair of $, it apparently turns into inserting two spaces, which is no problem. Then it turns into this:
#table(columns: (auto),
  $  $, $$
)

Then I try to delete one space.
If I delete the first space, the second space will be deleted as well. This is no problem.
But when I delete the second space, something wrong happens. It turns to this:
#table(columns: (auto),
  $, $$
)

Both spaces are removed, and the $ symbol on the right side is also removed.
I also tried cutting off a space by Ctrl+X, but the result is the same as above.
Reproduction URL
No response
Browsers
Chrome
OS
Windows

I tried to enclose the $$ in [] and the problem still exists.

The behaviour when deleting the second space is buggy. $ $ and $  $ should be equivalent, but if you really need $ $, you can type it somewhere else and copy-paste it.

Fixed.


Support importing godep config during dep init

Similar to #380 , part of epic #186 .

Is anybody secretly working on it or have an 👁 on it?
I'm about to give it a try. Will post findings and questions here.
Any suggestions/advise/tips are welcome.

Found some code to refer at glide/godep/godep.go :)

sweet!
ping @carolynvs - def want to make sure the same pattern of relying on the Analyzer is used here 😄

@darkowlzz  You may want to take a look at #500 where I have import working for glide, and hope to have that merged this week. I am still hammering out / slimming down the interface for importers, so that will likely change (removing unnecessary methods).
The general idea is that when importers are enabled (i.e. -skip-tools isn't present), the init command will use an importAnalyzer to call the applicable importers for other tools (like glide or godep), and then combine their results with what init does today to fill in the gaps.
So if you wanted to try to build on top of that PR:

Make a godep config struct which can read in the config files and convert them to a glide manifest and lock. Example: glideConfig.go
Add unit tests for the config struct. Example: glideConfig_test.go
Make a godep importer struct that handles detecting config and converting if applicable.  Example: glideImporter.  This is the interface that I'm hoping to make smaller, hopefully removing DeriveManifestAndLock and PostSolveShenanigans (which was a placeholder name 😁).
Add integration tests for importing godep. Example: glide import test case](https://github.com/golang/dep/pull/500/files#diff-32d63b76ca0ad2ef4b4f0436a9ede556)

I'd love any feedback you have as you work on this, nothing is set in stone.

Created #589 based on @carolynvs 's #500.
Seems to work, but I would need help from others to verify that it works as expected.
Godep struct:
type Godeps struct {
	ImportPath   string
	GoVersion    string   // Abridged output of 'go version'.
	GodepVersion string   // Abridged output of 'godep version'
	Packages     []string // Arguments to godep save, if any.
	Deps         []struct {
		ImportPath string
		Comment    string // Description of commit, if present.
		Rev        string // VCS-specific commit ID.
	}
}

From the above Godep struct, godep importer implemented in #589 ignores GoVersion, GodepVersion and Packages. I couldn't figure out how Packages could be used. If someone could explain how we could use it, would be great :)
Some vendoring tools support import path rewriting, I couldn't find that in godep. Hence, no import path rewriting.


[NotePlan 3] Commands not working

Extension
https://www.raycast.com/shakedlokits/noteplan-3
Description
I tried searching my notes via the extension and got no results, I tried the daily plan, it doesn't seems to be woking.
I found the File Extension option, which I changed to md, but it was still broken.
I have my notes store in CloudKit via NotePlan, may have to do with the issue.
Steps To Reproduce
No response
Current Behaviour
No response
Expected Behaviour
No response

@shakedlokits I've located what the issue is. The Container path for the SetApp version of NotePlan is different
https://github.com/raycast/extensions/blob/69248d62bf7fb7774000ef59446fd564f6ee1819/extensions/noteplan-3/src/lib/note-utilities.ts#L10
I've tried creating a forked version and changing it to
const NOTE_PLAN_URI = `${homedir()}/Library/Containers/co.noteplan.NotePlan-setapp/Data/Library/Application Support/co.noteplan.NotePlan-setapp`;
Which didn't help as I ran into new problems:
RangeError: Invalid time value

search_default:search.tsx:7:2

---
4: import { NoteDetail, OpenNoteAction } from "./lib/components";
5:
6: export default () => {
7:   const [notes] = useNoteList();
8:   const { push } = useNavigation();
9:
0:   return (
---

wr:index.js:5:2490
    at ray-navigation-stack
Ro:index.js:5:2088

This is beyond my skills. Let me know what you think!

@marceldarvas can you confirm if this is now fixed with the latest version?

@lukerandall I was almost going to reply that it doesn't work, but then I caught my mistake.
In the file extension field I had "md " with the space. Once I removed that I started working.
Thanks for adding SetApp option!


Fix/exports and display none on block

This addresses two issues where Block couldn't have a none display mode and TextField wasn't exported from the components/index.ts.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Initial administrator account

An administrator account should be initially created.

created artisan command to create an administrator account:
php artisan make:admin
you may run the command after installation finished.


End the game

I want the game to end when the timer reaches 0 or when all questions are answered. When the game ends I want to be able to record scores and initials and keep them in a "high Scores" list.

The game ends when the timer = 0 and when all questions are answered. scores are entered in high score list which can be saved in local storage. local storage can be cleared.


Error setting up with Hass / yi-hack 0.2.3

Logger: homeassistant.config_entries
Source: custom_components/yi_hack/init.py:60
Integration: Yi Cam with yi-hack (documentation)
First occurred: 7:37:25 PM (1 occurrences)
Last logged: 7:37:25 PM
Error setting up entry yi_hack_a2_000000 for yi_hack
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 365, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/yi_hack/init.py", line 60, in async_setup_entry
CONF_TOPIC_BABY_CRYING: mqtt[CONF_TOPIC_BABY_CRYING],
KeyError: 'TOPIC_BABY_CRYING'
from a fresh install; when i upgraded my other units they didn't have the same issue; just this one that i had to hard reset cause it refused to download the file. I restored an config file from one of my other cameras and the issues resolved themselfs.

from a fresh install; when i upgraded my other units they didn't have the same issue; just this one that i had to hard reset cause it refused to download the file. I restored an config file from one of my other cameras and the issues resolved themselfs.

Is it working, now?

@wired-dev it seems to be fixed as of https://github.com/roleoroleo/yi-hack_ha_integration/commit/e624c4fdd6d42957cce6c85181c0cb7ae180fa45 , please check with latest version?


[WIP]: Split analysis into several assemblies

Fixes #257
Microsoft.Python.Core - common objects usable in many places
Microsoft.Python.Parsing - Python parser and AST
Microsoft.Python.Analysis.Engine - current DDG analysis
Microsoft.Python.Analysis.Ast - AST analysis
Reasoning: TDD development of the AST based analysis. Having separate assembly for AST analysis allows development of the DDG replacement without having to remove DDG first. DDG can continue to be used until we have sufficient test bed for the AST analysis to prove it is ready for the prime time.
Based on https://github.com/Microsoft/python-language-server/pull/439.
Still TODO: separate fluent classes for AST analysis since current one use definitions specific to DDG. Therefore tests for both AST and DDG analysis may have to stay in the same assembly for a while.

Ok, I'll have a huge merge for this...

No, if this go in, it will happen after earlier PR which is intended for after your imports.


Console reporter double reports

Problem:
When testing with the console reporter and nested checks, the reporter double-reports:
Test:
TEST_CASE("test # 1", "[tag]") {
    SECTION("something") {
        CHECK(2 == 1);
        SECTION("another thing") {
            CHECK(1 == 2);
        }
    }
}

Output:
test # 1
  something
-------------------------------------------------------------------------------
test/test_the_source.c:15
...............................................................................

test/test_the_source.c:16: FAILED:
  CHECK( 2 == 1 )

-------------------------------------------------------------------------------
test # 1
  something
  another thing
-------------------------------------------------------------------------------
test/test_the_source.c:17
...............................................................................

test/test_the_source.c:18: FAILED:
  CHECK( 1 == 2 )

===============================================================================
test cases: 1 | 1 failed
assertions: 2 | 2 failed

Catch version: Catch v1.9.3
Operating System: Windows 7 x64 / Windows 10 x64
Compiler+version: g++.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0

I don't see the problem?
If you want to abort test case on failure, don't use CHECK, use REQUIRE.

Sorry for the bad description.
To me, the current output seems more like two separate paths through the test-case which I would have expected if both Sections would be parallel to one another?
I would have expected to get one result more like this:
-------------------------------------------------------------------------------
test # 1
  something
  another thing
-------------------------------------------------------------------------------
test/test_the_source.c:19
...............................................................................

test/test_the_source.c:20: FAILED:
  CHECK( 2 == 1 )

    test/test_the_source.c:21: FAILED:
      CHECK( 1 == 2 )

===============================================================================
test cases: 1 | 1 failed
assertions: 2 | 2 failed

That would be an invalid output, because the first failing CHECK isn't in the "another thing" section.
Anyway, the console reporter is a streaming reporter, which means that it works fairly simply -- when an assertion ends, it is notified and takes appropriate action. For console reporter with default settings, this means reporting failing assertion together with its location (which means what test case/sections it is in). Because two assertions fail, two notifications go to stdout, with each one being reporter together with its respective location.
Basically, this is working as intended, but if you want different output, you can always create your own reporter and if it is interesting enough, it can become part of Catch's repo.

Okay, I get it now - thanks for your explanation.


”Beltiug”, ”Bolda”, ”Ghirișa” are listed in the drop-down menu

Description:
When user writes ”Beltiug”, ”Bolda”, ”Ghirișa” the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Beltiug"

Expected results
The location appears in the drop-down menu as "Sat Beltiug, SATU MARE (Beltiug)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Bolda"

Expected results
The location appears in the drop-down menu as "Sat Bolda, SATU MARE (Beltiug)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Ghirișa"

Expected results
The location appears in the drop-down menu as "Sat Ghirișa, SATU MARE (Beltiug)".


Fix ResolverListener so that ServiceLost is called only after N successive failed pings

Currently the counter that count failed pings is not reset after a successfull ping
see #105

Thanks!


Datagrid

Initial implementation of a MapD SQL explorer using the phosphor datagrid.

SQL input box allowing rapid iteration.
Per-widget connection data.
Limited support for streaming large datasets (hold only a few hundred K rows in memory at a time).
Validation of inputs.

Let's merge this and cut a release.  Before we merge can you add the proper installation instructions to the readme?


stats: Capture all the strings used to accumulate http stats in an object, plumbed through the system.

Description: Currently, source/common/http/codes.cc provides static methods to compute stat names on every request and look them up. This refactor makes that a class with state, so that stat lookup strings can be partially precomputed and held in an object initialized at startup.
In the current state of the repo, this may have a small measurable benefit, but ultimately the stat-name strings need to be dynamically generated per-request because they incorporate scope, etc.
However, #4980 would benefit greatly from having this context plumbed in, because it could store pre-computed symbols for each of the tokens at startup -- that requires a lock. Combining multiple tokens together in the hot-path does not require a symbol-table lock, so this having context can help us avoid contention.
As a side-note, I feel like it's more work than I'd prefer to do this kind of plumbing. It would make it a lot easier if new global-ish objects could be held in some kind of factory and passed around, rather than passing around dozens of parameters to each constructor.  Thoughts?
Risk Level: low
Testing: //test/...
Docs Changes: n/a
Release Notes: n/a

@jmarantz this area has been on my perf-optimizatoin list for quite some time. Any chance of getting a baseline perf benchmark for this that we can use to gauge improvement?

As a side-note, I feel like it's more work than I'd prefer to do this kind of plumbing. It would make it a lot easier if new global-ish objects could be held in some kind of factory and passed around, rather than passing around dozens of parameters to each constructor. Thoughts?

I think you and I have the same opinions on statics, but IMO as long as we still pass the factory around and don't hold it as a static, this seems fine to me in general.

RE perf baseline: yes, will do and add in a separate PR, which can be a pre-req for this one. I think I would like to just do a microbenchmark that calls these recording functions, rather than having it at the system level with siege, where the results will be noisy and the marginally-more-optimal string operations I'm doing here may not matter compared to networking and moving payloads.
Note also that this still leaves the request-code-specific stat names. I'm thinking that, in the context of #4980, I would precompute symbols for some popular http codes (200, 204, 301, 302, 304, 400, 403, 404, 503 ?) and take a lock whenever any others were required.  Thoughts?  That can be discussed in that PR though, once this is merged.
RE passing factories: OK I'll look at doing that in a separate cleanup. Thanks!

Note also that this still leaves the request-code-specific stat names. I'm thinking that, in the context of #4980, I would precompute symbols for some popular http codes (200, 204, 301, 302, 304, 400, 403, 404, 503 ?) and take a lock whenever any others were required. Thoughts? That can be discussed in that PR though, once this is merged.

Yeah, worth considering, once we have some baseline benchmarks.

Baseline speed test added in #4998 with these results:
---------------------------------------------------------
Benchmark                  Time           CPU Iterations
---------------------------------------------------------
BM_AddResponses         8220 ns       8220 ns      80376
BM_ResponseTiming        447 ns        447 ns    1575300

changes in this PR bring this to:
---------------------------------------------------------
Benchmark                  Time           CPU Iterations
---------------------------------------------------------
BM_AddResponses         5412 ns       5412 ns     120690
BM_ResponseTiming        354 ns        354 ns    1992006

These are all pretty low numbers -- we are talking 3 microseconds improvement per iteration (each iteration of AddResponses adds 9 responses). But it does show that there's some modest absolute improvement with this approach, and a significant percentage improvement.
Again, the goal here isn't necessarily to make this particular flow faster, it's to avoid it becoming slower in #4980.

I think this is ready for review -- I believe CI is a flake as I couldn't repro when locally running coverage tests.

Note I still haven't addressed @mattklein123 's  issue about having the http-codes be part of the server object, rather than being accessed only from http-specific objects, so this is not ready for review; I just wanted to merge master.

I think this is ready for a look @mattklein123
@ramaraochavali you may also want to take a look as this touches ratelimit and httpTracer a bit.

/retest

See https://github.com/envoyproxy/envoy/issues/5144 for clang_tidy issue; I think I was able to run clang-tidy locally on this PR and have it pass (in 42 minutes). But it's hard to tell from looking at the output.

/retest


ADD fibonacci series

I can do fibonacci series using recursion in C++. if you assigned it to me.

Adding N fibonacci series numbers in Java can be done by me. Please assign if required. I am willing to contribute.

Its already done


Fix for CI silently failing for EOS-S3 / PP3

@coolbreeze413 This should fix the problem you identified in https://github.com/QuickLogic-Corp/symbiflow-arch-defs/pull/709

@mkurc-ant All CI test logs look good now, merging.


Import common proto in each crate?

Version
tonic v0.9.2
  tonic v0.9.2 (*)
  tonic-build v0.9.2
  tonic v0.9.2 (*)
  tonic-web v0.9.2
tonic v0.9.2 (*)

Platform
Win 10 64
Description
Hi people! Thanks for your amazing work!
I have this dir structure:
- Cargo.toml (workspace)
- src
  - common
    - Cargo.toml
    - src
      - common.proto

  - crates
    - players
      - Cargo.toml
      - build.rs
      - src
        - proto
          - players.proto (I would like to import src/common/src/common.proto here)

    - teams
      - Cargo.toml
      - build.rs
      - src
        - proto
          - teams.proto (I would like to import src/common/src/common.proto here)

    - others...

as you can see I have many crates under crates dir and I have a common.proto which I would like to import in my crates.
I'm using a build.rs for each crate because I cannot (right?) use one for the entire Cargo workspace (I tried: Cargo doesn't start build.rs in workspace root dir).
So I'm trying to import common.proto in file like this:
syntax = "proto3";

package players;

import "google/protobuf/timestamp.proto";

import "src/common/src/common.proto";

and in my VSCode this is working.
But when I start build.rs throws with:
error: failed to run custom build command for `players v0.1.0`

Caused by:
  process didn't exit successfully: `C:\prj\target\debug\build\orders-b13065cbe3fac50f\build-script-build` (exit code: 1)
  --- stdout
  cargo:rerun-if-changed=src/proto/players.proto
  cargo:rerun-if-changed=src/proto

  --- stderr
  Error: Custom { kind: Other, error: "protoc failed: src/common/src/common.proto: File not found.\r\nplayers.proto:6:1: Import \"src/common/src/common.proto\" was not found or had errors.\r\nplayers.proto:29:3: \"common.Pagination\" is not defined.\r\nplayers.proto:49:9: \"common.Page\" is not defined.\r\n" }
[Finished running. Exit status: 0]

My build.rs is:
fn main() -> Result<(), Box<dyn std::error::Error>> {
    tonic_build::configure()
        .out_dir("src/proto")
        .compile(
            &["src/proto/players.proto"],
            &["src/proto"],
        )?;

    Ok(())
}

How can I fix this?

I have a similar issue except everything is in the same crate.
I would like to be able to import a protofile into another.
Compiling and accessing the members of each protocol sepparately works fine, but they cannot access eachother:
Error[E0433]: failed to resolve: could not find `shared` in the crate root
  --> /home/martin/dk-slack/website/target/debug/build/eventsservice-b3f9e3601151fe7f/out/user.rs:90:43
   |
90 |             tonic::Response<super::super::shared::EventList>,
   |                                           ^^^^^^ could not find `shared` in the crate root

error[E0433]: failed to resolve: could not find `shared` in the crate root
   --> /home/martin/dk-slack/website/target/debug/build/userservice-622161de9a99e87b/out/registration.rs:203:60
    |
203 |             request: impl tonic::IntoRequest<super::super::shared::UserInformation>,
    |                                                            ^^^^^^ could not find `shared` in the crate root
error[E0283]: type annotations needed for `ProstCodec<(), U>`
   --> /home/martin/dk-slack/website/target/debug/build/eventsservice-b3f9e3601151fe7f/out/user.rs:102:17
    |
102 |             let codec = tonic::codec::ProstCodec::default();
    |                 ^^^^^
...
106 |             self.inner.unary(req, path, codec).await
    |                        ----- type must be known at this point
    |
    = note: cannot satisfy `_: Message`
    = help: the following types implement trait `Message`:
              bool
              i32
              i64
              u32
              u64
              f32
              f64
              EventList
            and 55 others
    = note: required for `ProstCodec<(), _>` to implement `Codec`
note: required by a bound in `tonic::client::Grpc::<T>::unary`
   --> /home/martin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tonic-0.10.2/src/client/grpc.rs:215:12
    |
205 |     pub async fn unary<M1, M2, C>(
    |                  ----- required by a bound in this associated function
...
215 |         C: Codec<Encode = M1, Decode = M2>,
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Grpc::<T>::unary`
help: consider giving `codec` an explicit type, where the type for type parameter `U` is specified
    |
102 |             let codec: ProstCodec<(), U> = tonic::codec::ProstCodec::default();
    |                      +++++++++++++++++++

Some errors have detailed explanations: E0283, E0433.
For more information about an error, try `rustc --explain E0283`.
For more information about this error, try `rustc --explain E0433`.
error: could not compile `eventsservice` (lib) due to 2 previous errors

.
├── eventsservice
│   ├── build.rs
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
└── protos
      └── events_service
              ├── shared.proto
              └── user.proto

// ../protos/events_service/user.proto
syntax = "proto3";

import "google/protobuf/empty.proto";
import "shared.proto";

package user;

option go_package = "github.com/dk-slack/protos/events_service/golang/user";

service Events {
  rpc List ( google.protobuf.Empty ) returns ( shared.EventList );
}

// ../protos/events_service/shared.proto
syntax = "proto3";

package shared;

option go_package = "github.com/dk-slack/protos/events_service/golang/shared";

message EventList {
  repeated shared.Event events = 1;
}

message Event {
  enum EventType {
    WEEKLYMEETING = 0;
    WATERLINE = 1;
    HIGHLINE = 2;
    MEETING = 3;
    WORKSHOP = 4;
    AUDIT = 5;
    RIGGING = 6;
  }

  message Location {
    message Coordinates {
      float lng = 1;
      float lat = 2;
    }
    string name = 1;
    Coordinates coordinates = 2;
  }

  string title = 1;
  Location location = 2;
  EventType event_type = 3;
  uint64 time = 4;
}

// build.rs
fn main() -> Result<(), Box<dyn std::error::Error>> {
    tonic_build::configure().build_server(false).compile(
        &[
            "../protos/events_service/user.proto",
            "../protos/events_service/shared.proto",
        ],
        &["../protos/events_service"],
    )?;
    Ok(())
}

// src/lib.rs
mod events {
    tonic::include_proto!("user");
}

mod proto_shared {
    tonic::include_proto!("shared");
}

use proto_shared::event::EventType as ET;

use tonic::transport::Channel;

pub use shared::errors::UserEventError;

#[derive(Clone)]
pub struct UserEventsClient {
    cli: events::events_client::EventsClient<Channel>,
}

impl UserEventsClient {
    pub async fn new() -> Result<Self, UserEventError> {
        Ok(Self {
            cli: events::events_client::EventsClient::connect("http://localhost:50057")
                .await
                .map_err(|_| UserEventError::ConnectionError)?,
        })
    }
}

I had similar issues in golang when importing a package because I was using relative package names imports and go doesn't allow that in modules. So I was forced to specify a fully qualified package name in the option go_package and make a library that my other go modules could then import the grpc functionality from.

Has anybody figured this out? I am currently trying to compile the openconfig gnmi GRPC proto files which import each other and cannot get tonic_build to work

I figured out in my case the problem was my own fault.
I think I should have called this one "shared" and not "proto_shared"
mod proto_shared {
    tonic::include_proto!("shared");
}

I just had to rename it and another thing I was importing which was also called shared :-)


Outbound TCP Sockets

[ ] Box JS types so that Socket is Sync / Send.
[ ] Test options
[ ] Test / clean up methods / attributes other than read and write

@zebp do you know what is going on with the build here? cargo test compiles fine locally.

I couldn't really find any reasons why Mio would be compiled with all of the features disabled, and it turns out that since this project is using edition = "2018" that it's just a bug with the old resolver (https://doc.rust-lang.org/nightly/cargo/reference/resolver.html#resolver-versions).
Adding resolver = "2" to the Cargo.toml's [workspace] seems to have fixed it?
[workspace]
members = [
    "worker",
    "worker-build",
    "worker-macros",
    "worker-sandbox",
    "worker-sys",
]
+ resolver = "2"

Thanks, I'll try to dig into what is happening here, I've built a worker with this change, so somehow targeting Wasm in that context is not an issue.

🎉
If we can keep the resolver change in this PR then I can look at moving to the 2021 edition in a follow-up PR separately

Some notes from testing:

sqlx requires some TLS implementation (I guess it manages it itself), so that may need some further investigation.
tokio-postgres requires rand, not sure why, but that will need to be bypassed.
Socket is not Send + Sync (even when using Box). This seems to be a weird quirk of wasm-bindgen-futures which prevents Socket from being used with hyper.

Thoughts on the third one @zebp?

Just wanted to tACK a2b09e961386948d8664d556b6135281386c64f6 - I'm testing this out in a project moving from using axum to cloudflare workers doing a websocket to tcp socket proxy and this is working well locally. The APIs are incredibly similar so it made copy-pasting work pretty well by just swapping out a few libs.

Socket is not Send + Sync (even when using Box). This seems to be a weird quirk of wasm-bindgen-futures / JsValue which prevents Socket from being used with hyper.

We run into this quite a bit. Because the runtime only ever has one thread of execution for the Worker and we use SharedArrayBuffer we just do an unsafe impl Send/Sync.

I do have this working with hyper:
Cargo.toml
hyper = { version="0.14", features=['http1', 'client'], default-fetaures=false }
tokio = {version = "1.0", default-features=false, features=['io-util', 'macros']}

main.rs
async fn make_request(
    mut sender: hyper::client::conn::SendRequest<hyper::Body>,
    request: hyper::Request<hyper::Body>,
) -> Response {
    let hyper_response = sender.send_request(request).await.expect("send_request");
    let buf = hyper::body::to_bytes(hyper_response)
        .await
        .expect("collect body");
    let text = std::str::from_utf8(&buf).expect("utf-8");
    let mut response = Response::ok(text).unwrap();
    response
        .headers_mut()
        .append("Content-Type", "text/html")
        .ok();
    response
}

#[event(fetch)]
async fn main(_req: Request, _env: Env, _ctx: Context) -> Result<Response> {
    set_panic_hook();
    console_log!("Connecting...");
    let socket = Socket::builder().connect("example.com", 80)?;
    console_log!("Got socket!");

    let (request_sender, connection) = hyper::client::conn::handshake(socket)
        .await
        .expect("handshake");

    let request = hyper::Request::builder()
        // We need to manually add the host header because SendRequest does not
        .header("Host", "example.com")
        .method("GET")
        .body(hyper::Body::from(""))
        .expect("build request");

    tokio::select!(
        res = connection => {
            console_error!("Connection exited: {:?}", res);
            Err(worker::Error::RustError("Connection exited".to_string()))
        },
        response = make_request(request_sender, request) => {
            Ok(response)
        }
    )
}

Full hyper example: https://github.com/kflansburg/hyper-on-workers

I think I'm pretty close to having hyper::Client working, but unfortunately it appears to rely on Instant::now, which I don't think we can patch. v1.0 might have some plumbing for configuring a custom timer, so this might have to wait until that stabilizes.
https://github.com/kflansburg/hyper-on-workers/blob/client/src/lib.rs

Manual test for now located here: https://github.com/kflansburg/workers-rs-sockets-test
@dom96 @zebp

Still need to do another review pass but I played around with this to see if I could get tokio-postgres working and I was able to! The changes necessary to tokio-postgres are here if interested. This is really cool
use futures_util::FutureExt;
use tokio_postgres::{Config, NoTls};
use worker::*;

#[event(start)]
fn init() {
    console_error_panic_hook::set_once();
}

#[event(fetch)]
async fn main(req: Request, env: Env, _ctx: Context) -> Result<Response> {
    let router = Router::new().get_async("/", |_, ctx| async move {
        let socket = Socket::builder()
            .secure_transport(SecureTransport::Off)
            .connect("<IP_ADDRESS>", 5432)?;

        let (client, connection) = Config::new()
            .user("postgres")
            .password("postgres")
            .dbname("postgres")
            .connect_raw(socket, NoTls)
            .await
            .unwrap();

        let conn = connection.map(|r| r.unwrap());
        wasm_bindgen_futures::spawn_local(conn);

        let rows = client.query("select 10;", &[]).await.unwrap();
        let value: i32 = rows[0].get(0);

        Response::ok(format!("Hello from Rust! {}", value))
    });

    router.run(req, env).await
}

Awesome, I’m really excited about this!


Make agent's RouterAddrWithAZ optional

It doesn't make sense to require this value if the user does not want AZ affinity in the agent. Currently, even providing ROUTER_ADDR_WITH_AZ="" doesn't work. This allows for this value to not be specified.
I tried adding a component test for this but the current component test asserts against a lookup func. If this value isn't provided it defaults to "" then net.SplitHostPort is called on "" and it errors out before the lookup function is called. Adding the check for config.RouterAddrWithAZ != "" allows us to skip the call to net.SplitHostPort but this is very hard to test.
As far as testing the config validation (which is the main issue) there were currently no tests for this logic. No tests means it is safe to remove :trollface:

They have not been ran. I will hold off on this until I get LATs running against my k8s cluster.

I deployed this to bosh-lite and ran LATs. Everything passed.

Looks good. Merging.


setContent() method call throw a NullPointerException

When I keep a reference of a created(and shown) MaterialDialog, and when I want to change the content of this dialog and re-show it, a NullPointerException is thrown in the method setContent.
public final void setContent(final CharSequence newContent) {
        this.mHandler.post(new Runnable() {
            public void run() {
                MaterialDialog.this.content.setText(newContent);
                MaterialDialog.this.content.setVisibility(TextUtils.isEmpty(newContent)?8:0);
            }
        });
    }

The this.mHandler is null.
Is this a bug or do I use MaterialDialog in a wrong way? When I want to reuse a created and shown dialog but with different content, what should I do?

Make sure you're using a new version of the library, first.
But mHandler is initialized when you first build the dialog (specifically in the constructor of the MaterialDialog class). The only way it could become null in the latest code is if it was garbage collected.
However, I will add a check that will re-initialize it if necessary.

Actually, nevermind. setContent() doesn't use mHandler in the first place, you must have a very old version of the library.

Sorry, I'm using the version <IP_ADDRESS>. The latest <IP_ADDRESS> has a build error.

The latest is <IP_ADDRESS>, published this morning. There's no build errors.
On Fri, Jun 12, 2015, 11:03 AM Xu Jianlin<EMAIL_ADDRESS>wrote:

Sorry, I'm using the version <IP_ADDRESS>. The latest <IP_ADDRESS> has a build error.
—
Reply to this email directly or view it on GitHub
https://github.com/afollestad/material-dialogs/issues/571#issuecomment-111536259
.

--
Best regards,
Aidan Follestad,
http://aidanfollestad.com
651-528-1662

Great!

There weren't any build errors before either, lol. Not in the library
itself at least.
On Fri, Jun 12, 2015, 11:22 AM Xu Jianlin<EMAIL_ADDRESS>wrote:

Great!
—
Reply to this email directly or view it on GitHub
https://github.com/afollestad/material-dialogs/issues/571#issuecomment-111543189
.

--
Best regards,
Aidan Follestad,
http://aidanfollestad.com
651-528-1662

#576 still exist with version <IP_ADDRESS>

@Piasy I didn't say it was fixed

Well, I thought I misunderstand your last comment. :)


No download button in preview.

There is no downlaod button at this page ( if there is it is not clickable) I have to copy the link and open it in new tab. Can you add a downlaod button right to the downlaod link or else. It is great If you change the pre video playing ( see in the screenshot ) to a buffering icon.
Thanks ♥

Aicirou/goindex-theme-acrou@a75e1d4c0e5e051250225671ef24ada5b2f7f4b1

Thanks bro


Evaluation (Paper Tab.1)

First, I want to express my appreciation for your excellent work. I found the insights and contributions very valuable. I was particularly interested in the results presented in Table 1, and I was wondering if it would be possible for you to make the dataset and evaluation script used for this table available as open source?
I believe having access to these resources would be immensely helpful for further exploration and experimentation in this area.
Thank you for considering my request, and I look forward to your response.

Hi @linukc
Thanks a lot for reaching out and for your patience! We're currently working on getting the datasets and evaluation suite ready for release, if everything goes well it should be out in the coming week!


On Android after opening and closing virtual keyboard once, the RawKeyboard stops sending RawKeyDownEvent for listeners

Issue happens when developing apps for using the remote controller (Android TV or Tv Box).
When the virtual keyboard is opened once in the app, the sysctem stops sending Down events for RawKeyboard listeners. Only Up events trigger.
Tested on tv boxes with API25, API29, Android emulator API30.

Steps to reproduce:
Note! For somebody who do not have remote controller - you can generate key press by adb command adb shell input keyevent <code>, where UP=19, DOWN=20, ENTER=23.
If you're using emulator - just use the PC keyboard UP and Down arrows.
We tested with real remote controllers.

Run the code below. See that "Button Top" has a focus.

Press "Down". See that "Button Middle" has a focus.
Output:

   Handle key Down event 20
   Handle key Up event 20

Result: _handleRawKeyEvent receives both events. Works as expected

Press "Down" again. See that "Button Bottom" has a focus.
Output:

   Handle key Down event 20
   Handle key Up event 20

Result: _handleRawKeyEvent receives both events. Still works as expected

Press "Down" again. See that Textfield has a focus, virtual keyboard opened.
Output:

   Handle key Down event 20
   Handle key Up event 20

Result: _handleRawKeyEvent receives both events. Still works as expected

Close keyboard with "Back" button. Keyboard closed, but textfield still has a focus.

Press button "Request focus to Button Top". See that "Button Top" has a focus.

Press "Down" again. See that nothing happens
Output:

   Handle key Up event 20

Result: _handleRawKeyEvent receives only Up events.

Try to click with mouse different buttons, try to press Left, Right or any other buttons, nothing helps. The RawKeyboard listener  will never receive the Down event. Even if you navigate to another screens - all the buttons will be impossible to navigate.

Conclusion:

The problem is that after opening keyboard, the navigation between widgets with a remote controller becomes impossible.
All of the  RawKeyboard listeners stops receiving "Down" events. It is critical to our app, as it uses its own focus navigation solution, based on the listening of RawKeyboard events.
Seems that Android does not generate key down, because the virtual keyboard is not "terminated". The problem found in AndroidKeyProcessor.java. It always return true even if the keyboard closed:

 public boolean onKeyDown(@NonNull KeyEvent keyEvent) {
    if (eventResponder.dispatchingKeyEvent) {
      return false;
    }
    //Seems, here is the problem, as it always return true even if the keyboard closed:
    if (textInputPlugin.getLastInputConnection() != null
        && textInputPlugin.getInputMethodManager().isAcceptingText()) {
      if (textInputPlugin.getLastInputConnection().sendKeyEvent(keyEvent)) {
        return true;
      }
    }

    Character complexCharacter = applyCombiningCharacterToBaseCharacter(keyEvent.getUnicodeChar());
    KeyEventChannel.FlutterKeyEvent flutterEvent =
        new KeyEventChannel.FlutterKeyEvent(keyEvent, complexCharacter, eventIdSerial++);
    keyEventChannel.keyDown(flutterEvent);
    eventResponder.addEvent(flutterEvent.eventId, keyEvent);
    return true;
  }

Sample code
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Focus Example',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  FocusNode _focusNodeButtonTop;

  @override
  void initState() {
    RawKeyboard.instance.addListener(_handleRawKeyEvent);
    _focusNodeButtonTop = FocusNode();
    _focusNodeButtonTop.requestFocus();
    super.initState();
  }

  @override
  void dispose() {
    _focusNodeButtonTop.dispose();
    RawKeyboard.instance.removeListener(_handleRawKeyEvent);
    super.dispose();
  }

  void _handleRawKeyEvent(event) {
    if (event is RawKeyDownEvent) {
      print(
          "Handle key Down event ${(event.data as RawKeyEventDataAndroid).keyCode}");
    } else if (event is RawKeyUpEvent) {
      print(
          "Handle key Up event ${(event.data as RawKeyEventDataAndroid).keyCode}");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            RaisedButton(
                autofocus: true,
                focusNode: _focusNodeButtonTop,
                child: Text("Button Top"),
                onPressed: () {
                  print("pressed Button Top");
                }),
            RaisedButton(
                autofocus: true,
                child: Text("Button Bottom"),
                onPressed: () {
                  print("pressed Button Bottom");
                }),
            TextField(),
            RaisedButton(
                autofocus: true,
                child: Text("Unfocus everything"),
                onPressed: () {
                  WidgetsBinding.instance.focusManager.primaryFocus?.unfocus();
                  print("Unfocused everything");
                }),
            RaisedButton(
                autofocus: true,
                child: Text("Request focus to Button Top"),
                onPressed: () {
                  _focusNodeButtonTop.requestFocus();
                  print("Requested focus to Button Top");
                }),
          ],
        ),
      ),
    );
  }
}

Flutter doctor:
[√] Flutter (Channel stable, 1.22.4, on Microsoft Windows [Version 10.0.19041.630], locale uk-UA)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[!] Android Studio (version 4.1.0)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] Connected device (1 available)

Note: Do not know why it shows an error, all plugins are installed and working well.

I can confirm that the the steps above works fine on beta and master channel but I found some stranger behavior on stable channel.
This is what get while following the steps above on stable channel:
Performing hot restart...
Syncing files to device sdk gphone x86 arm...
Restarted application in 1,757ms.
I/flutter ( 2051): Handle key Up event 20
I/flutter ( 2051): Handle key Up event 20
I/flutter ( 2051): Handle key Up event 20
I/flutter ( 2051): Handle key Up event 19
I/flutter ( 2051): Handle key Up event 19
I/flutter ( 2051): Handle key Up event 20
I/flutter ( 2051): Handle key Up event 20

@megamonster21099 please provide your flutter doctor -v.
flutter doctor -v (stable)
[✓] Flutter (Channel stable, 1.22.4, on Mac OS X 10.15.7 19H2 darwin-x64, locale en)
    • Flutter version 1.22.4 at /Users/pedromassango/dev/SDKs/flutter_stable
    • Framework revision 1aafb3a8b9 (4 weeks ago), 2020-11-13 09:59:28 -0800
    • Engine revision 2c956a31c0
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2020.2.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin installed
    • Dart plugin version 202.8070

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

[✓] Connected device (1 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)

! Doctor found issues in 1 category.
Process finished with exit code 0

flutter doctor -v (master)
[✓] Flutter (Channel master, 1.25.0-5.0.pre.108, on Mac OS X 10.15.7 19H2 darwin-x64, locale en)
    • Flutter version 1.25.0-5.0.pre.108 at /Users/pedromassango/dev/SDKs/flutter_master
    • Framework revision 995aa138cd (4 hours ago), 2020-12-08 09:18:02 +0530
    • Engine revision b0d31ae166
    • Dart version 2.12.0 (build 2.12.0-125.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2020.2.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 52.0.4
    • Dart plugin version 202.8070

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

[✓] Connected device (3 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • macOS (desktop)             • macos         • darwin-x64     • Mac OS X 10.15.7 19H2 darwin-x64
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 87.0.4280.88

• No issues found!
Process finished with exit code 0

@pedromassangocode , tried again with master and stable. You're right - on master works as expected. Issue happens on stable.
Here is the flutter doctor:
flutter doctor -v (stable):
[√] Flutter (Channel stable, 1.22.4, on Microsoft Windows [Version 10.0.19041.630], locale uk-UA)
    • Flutter version 1.22.4 at C:\Android\flutter
    • Framework revision 1aafb3a8b9 (4 weeks ago), 2020-11-13 09:59:28 -0800
    • Engine revision 2c956a31c0
    • Dart version 2.10.4

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Android\sdk\
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Android\sdk\
    • Java binary at: C:\Android\AndroidStudio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[!] Android Studio (version 4.1.0)
    • Android Studio at C:\Android\AndroidStudio
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (1 available)
    • Quad Core Enjoy TV Box (mobile) • <IP_ADDRESS>:5555 • android-arm • Android 7.1.2 (API 25)

! Doctor found issues in 1 category.

flutter doctor -v (master):
[√] Flutter (Channel master, 1.25.0-5.0.pre.108, on Microsoft Windows [Version 10.0.19041.630], locale uk-UA)
    • Flutter version 1.25.0-5.0.pre.108 at C:\Android\flutter
    • Framework revision 995aa138cd (5 hours ago), 2020-12-08 09:18:02 +0530
    • Engine revision b0d31ae166
    • Dart version 2.12.0 (build 2.12.0-125.0.dev)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Android\sdk\
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Android\sdk\
    • Java binary at: C:\Android\AndroidStudio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Android\AndroidStudio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (3 available)
    • Quad Core Enjoy TV Box (mobile) • <IP_ADDRESS>:5555 • android-arm    • Android 7.1.2 (API 25)
    • Chrome (web)                    • chrome             • web-javascript • Google Chrome 87.0.4280.88
    • Edge (web)                      • edge               • web-javascript • Microsoft Edge 85.0.564.67

• No issues found!

/cc @gspencergoog @dkwingsmt

Since this appears to be working on beta, I'm going to close this bug, since the code in beta will be making its way to stable in the next release.


Correct the game zone page and add some new features

Issue Type:

[x] Bug Report
[x] Feature Request
[x] Documentation

Describe the bug
The game zone page content is not placed well. And even more features can be added to the pages.
Possible solution
I will place all content of game zone page well and will add more features to it. And will also add new features to other pages like footer, scroll top arrow.
Screenshots

@sr-sweta go ahead

@sr-sweta any updates

Yes Game zone page is much better now . But I wanted to add some more
features to other pages and then I thought of doing the pr. Due to my exam
things are getting delayed. If you say I can pr now and latter on change
other pages.
On Wed, 21 Jul 2021, 6:57 pm Arpit Jain @.*** wrote:

@sr-sweta https://github.com/sr-sweta any updates
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/arpit456jain/Cool-Front-End_Templates/issues/75#issuecomment-884189581,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQ2M7QF4PZPRGSGEEUSMLSTTY3DMZANCNFSM5ANZBL4Q
.

@sr-sweta make your PR now and for other changes create a new issue when u r free

Ok sure. Thank you.
On Wed, 21 Jul 2021, 11:00 pm Arpit Jain @.*** wrote:

@sr-sweta https://github.com/sr-sweta make your PR now and for other
changes create a new issue when u r free
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/arpit456jain/Cool-Front-End_Templates/issues/75#issuecomment-884363288,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQ2M7QE2OI42XVTZOC5QAN3TY37ZTANCNFSM5ANZBL4Q
.

@sr-sweta make your PR asap.


Better way needed to visualize events?

For #768 I needed an quick and easy way to create a graph based on events for which I (kind of) abused the peak detector agent. To further debug the object leak I would like to be able to create multiple graphs (maybe with multiple metrics per graph).
Since this would be mainly for debugging purposes I could use something like librato, but I was wondering if there is a demand for some sort of general Graph or VisualizationAgent?

I think that's a good idea.  I suspect @virtadpt would have uses for it.

Depending on how the two agent classes were implemented, I'd have lots of uses for both. :)

@dsander I would would really love to see a Graph or VisualizationAgent.


⚠ Jenkins Plugins Artifactory has degraded performance

In abd01f2, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1437 ms

Resolved: Jenkins Plugins Artifactory performance has improved in ca66cca after 2 hours, 47 minutes.


keyboard layout is reset after each character

I am using this lib to enter the MAC address, which format is ##:##:##:##:##:##, and should accept
1234567890ABCDEF char set.
The problem is when switching to the digits keyboard, after pressing a digit, it resets keyboard layout to a regular again.

set input type to phone number, worked for me

So, have you solved it?


Confusion around "Give the password inside /Modules/Scrape.py"

Hi, I am not sure what to do with this instruction in the readme:
Give the password inside /Modules/Scrape.py from stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate("your_password_hash") controller.signal(Signal.NEWNYM)
Which Modules folder?

Me neither.
Although I tried creating a Modules folder in 'crawl' folder itself and I added the code on 'Scrape.py' file. I also added the onion links in the txt file that is mentioned in the readme file.
The code does not seem to work.

Traceback (most recent call last):
File "/home/kali/Downloads/DarkWeb-Crawling-Indexing-master/Code/crawler/main.py", line 1, in
from crawl_bot import Crawl_bot
File "/home/kali/Downloads/DarkWeb-Crawling-Indexing-master/Code/crawler/crawl_bot.py", line 11, in
import socks, socket
File "/home/kali/.local/lib/python3.10/site-packages/socks.py", line 65, in
from collections import Callable
ImportError: cannot import name 'Callable' from 'collections' (/usr/lib/python3.10/collections/init.py)
Traceback (most recent call last):
File "/home/kali/Downloads/DarkWeb-Crawling-Indexing-master/Code/crawler/main.py", line 1, in
from crawl_bot import Crawl_bot
File "/home/kali/Downloads/DarkWeb-Crawling-Indexing-master/Code/crawler/crawl_bot.py", line 11, in
import socks, socket
File "/home/kali/.local/lib/python3.10/site-packages/socks.py", line 65, in
from collections import Callable
ImportError: cannot import name 'Callable' from 'collections' (/usr/lib/python3.10/collections/init.py)