hipcc fails when cuda is installed in /usr

Hello,
When cuda is installed in /usr, hipcc in cuda mode fails to compile anything:
$ echo $CUDA_PATH
$ cat test.hip
void f(void) {
}
$ hipcc -v --x cu -c test.hip -o test.o
#$ _NVVM_BRANCH_=nvvm
#$ _SPACE_=
#$ _CUDART_=cudart
#$ _HERE_=/usr/lib/nvidia-cuda-toolkit/bin
#$ _THERE_=/usr/lib/nvidia-cuda-toolkit/bin
#$ _TARGET_SIZE_=
#$ _TARGET_DIR_=
#$ _TARGET_SIZE_=64
#$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice
#$ PATH=/usr/lib/nvidia-cuda-toolkit/bin:/usr/bin:/bin:/opt/rocm/hip/bin
#$ LIBRARIES=  -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu
#$ gcc -D__CUDA_ARCH__=520 -E -x c++  -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__  -isystem "/usr/include" -isystem "/net/inria/soft/x86_64/rocm-5.1.0/hip/include"  -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=152 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=4 -include "cuda_runtime.h" -m64 "test.hip" -o "/tmp/tmpxft_002df6f5_00000000-7_test.cpp1.ii"
In file included from /usr/include/crt/math_functions.h:8958,
                 from /usr/include/crt/common_functions.h:303,
                 from /usr/include/cuda_runtime.h:115,
                 from <command-line>:
/usr/include/c++/11/cmath:45:15: fatal error: math.h: Aucun fichier ou dossier de ce type
   45 | #include_next <math.h>
      |               ^~~~~~~~
compilation terminated.
# --error 0x1 --

The -isystem /usr/include is what seems to be spurious, dropping it fixes things, as the attached patch does:
patch.txt
This can be easily reproduced by using a debian (buster) or ubuntu image with the nvidia-cuda-toolkit  rocm-hip-runtime-dev packages installed and the $CUDA_PATH environment variable set to /usr
Samuel

This problem also affects hipcc for the AMD platform. It had to be patched for Debian packaging, as HIP will be installed to /usr in that case. As far as I understand, it's never valid to pass -isystem <system include path>.

There's a number of other install locations that would be equally problematic (e.g., /usr/local) and it would be difficult to extend your patch to handle them all. For that reason, I think it might be better to apply the same fix as was used in https://github.com/llvm/llvm-project/commit/6730b44480fcce18bfbbae0c46719250e9eae425.
@sthibaul, could you perhaps try replacing all uses of isystem with idirafter and giving hipcc a test drive? You can use sed -i.bak 's/isystem/idirafter/g' /opt/rocm/bin/hipcc.pl to quickly apply the change, and revert it with mv /opt/rocm/bin/hipcc.pl{.bak,} when you're done.

could you perhaps try replacing all uses of isystem with idirafter

I am getting
€ hipcc -v --x cu -c test.hip  -o test.o
nvcc fatal   : Unknown option '-idirafter'

Opps. That's certainly not going to work. Thanks for checking!

@sthibaul Apologies for the lack of response. Can you please test with latest ROCm 6.0.2 (HIP 6.0.32831)? If resolved, please close ticket. Thanks!

I only have ROCm 6.0.0 at hand, but it seems fixed there indeed

I'm experiencing this issue on ROCm 6.1.0.
$ hipcc --version
HIP version: 6.1.40091-a8dbc0c19
AMD clang version 17.0.0 (https://github.com/RadeonOpenCompute/llvm-project roc-6.1.0 24103 7db7f5e49612030319346f900c08f474b1f9023a)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/rocm-6.1.0/llvm/bin
Configuration file: /opt/rocm-6.1.0/lib/llvm/bin/clang++.cfg

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0

$ CUDA_PATH=/usr HIP_PLATFORM=nvidia hipcc hello.hip -o hello -v
#$ _NVVM_BRANCH_=nvvm
#$ _SPACE_=
#$ _CUDART_=cudart
#$ _HERE_=/usr/lib/nvidia-cuda-toolkit/bin
#$ _THERE_=/usr/lib/nvidia-cuda-toolkit/bin
#$ _TARGET_SIZE_=
#$ _TARGET_DIR_=
#$ _TARGET_SIZE_=64
#$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice
#$ PATH=/usr/lib/nvidia-cuda-toolkit/bin:/home/linehill/.cargo/bin:/home/linehill/.local/bin:/home/linehill/local/bin:/home/linehill/.cargo/bin:/opt/habanalabs/openmpi-4.1.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
#$ LIBRARIES=  -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu
#$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -E -x c++  -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__  -isystem "/usr/include" -isystem "/opt/rocm-6.1.0/include"  -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=5 -D__CUDACC_VER_BUILD__=119 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=5 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "hello.hip" -o "/tmp/tmpxft_0000dbf6_00000000-9_hello.cpp1.ii"
In file included from /usr/include/crt/math_functions.h:9075,
                 from /usr/include/crt/common_functions.h:303,
                 from /usr/include/cuda_runtime.h:115,
                 from <command-line>:
/usr/include/c++/11/cmath:45:15: fatal error: math.h: No such file or directory
   45 | #include_next <math.h>
      |               ^~~~~~~~
compilation terminated.
# --error 0x1 --

Hi @linehill, we are working on a fix for this, and it will likely go live on ROCm6.3. In the meantime, you can try the patch suggested by https://github.com/ROCm/HIP/issues/2712#issue-1257982202. The -isystem flag messes up the include path list when a system include directory is supplied to it. You can simply remove it from the Perl script (hipcc.pl) and it should fix the issue.

Great, thanks!


How to debug  the source  code on  my local machine ?

I want to research the  MVC deeply  by  myself ,but when i  download this  code and open  with vs2017  the .Sln file, can't build ,many  errors .
someone can help me ?

@wjkhappy14 have you looked at the instructions for building from source (https://github.com/aspnet/Mvc#building-from-source)?

@wjkhappy14 please provide more details about the exact errors you have. A screenshot or copy/paste the errors would be very helpful.

Closing because there is not enough information to reproduce this problem.


fix: support relative navigation from useNavigate

This does essentially the same thing as the current navigate that's injected as prop does:
https://github.com/reach/router/blob/85f7560bc0b4fd59c439c0c1d0fb5d32c3c273f8/src/index.js#L200-L220
namely resolves the relative url before actually navigating.
I don't think there's an issue for it, but it's been asked about on spectrum: https://spectrum.chat/reach/questions/usenavigate-relative-paths~c46b74be-5867-4135-8087-679af220508f
/cc @jamesportelli

This was actually fixed by #388 , thanks though!

@blainekasten should include the test probably


Use updated AffordanceModelFactory SPI

As the Spring HATEOAS Team mentioned in https://github.com/spring-projects/spring-hateoas/issues/1441 we should switch to the new AffordanceModelFactory SPI.

Done!


Change import type determination to not use a RE on the symbol name

Fixes #25278
So as it turns out, at using getNameOfSymbolAsWritten, which itself defers to declarationNameToString, which uses the verbatim original text of a module declaration's name and not the symbol's name (unless it has no node-based name) was an error. This meant ambient modules would be surrounded with single quotes if the original declaration used a single quoted string, rather than the double quotes we ensure we use internally (and therefore what we expect to match in ambientModuleSymbolRegex).
I've now changed symbolToTypeNode to use a much less brittle check for hasNonGlobalAugmentationExternalModuleSymbol on the symbol's declarations, and while I was at it, factored the module specifier parts out of getNameOfSymbolAsWritten (and reordered it so control flow worked better on it), since that's really not what getNameOfSymbolAsWritten is for.

 Thanks! ❤


update apex lab doc

screen shots, etc. need updating as console has changed.
also, stree that the user needs to log off of admin and on as demo user

this has effectively been done as the prior apex lab has been replaced with one using the inventory table.  I did notice that the original youtube video still exists in the doc though and so will leave this open as a reminder to remove that.


Updated Info on Notification Email.

Based on customer feedback made an update to avoid confusion.

@ishasahni1 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@dkamstra - Thanks for reviewing the PR.
Publishing in this repository is suspended until Tuesday, September 22. Merging will resume at 7 AM Pacific Tuesday.
This PR can be merged on 9/22.


Investigate cheaper database using EC2

My cost breakdown so far is as follows:

Resource
Service
Cost

Aurora Serverless
Usage
60%

Tax

20%

Aurora Serverless
IO
11%

Secrets Manager
Storage
8%

Aurora Serverless
Storage
~0%

Secrets Manager
IO
~0%

Lambda
Usage
0%

While it feels great being fully serverless, Aurora Serverless is still the vast majority of my costs. It'd be real nice to reduce that.
One way I could do that would be to use an EC2 as a database host.
When architecting this initially, I dismissed this option as I was of the understanding that an hour was the minimum billable usage granularity for EC2. The notifier runs every hour, so this would be effectively continuous usage. At that point, EC2 was about equivalent to Aurora Serverless price-wise, which was otherwise the better option.
However, either my assumption was incorrect or that information has changed. The minimum granularity for most instance types is actually one second, with a minimum of 60 seconds. Additionally, there are several ways to reduce the cost further, including savings plans and reserving dedicated instances - but by far the most efficient is Spot Instances, which only come with the caveat that AWS may withdraw their compute capacity to give to other On-Demand customers. However, they give 2 minutes' notice for this, so if I can fit all of my database operations into a two-minute timeframe, this won't affect me at all.
That is unlikely, though, especially considering that I'll need to first boot up and also shut down the instance with the main lambda. More likely I'd need some sort of spot instance management system - I'll have to look up what the standard way of going about it is.
I would also need to a) attach an EBS instance to give the EC2 a persistent storage, and b) install MySQL (or use Docker). But it should be cheaper than Aurora Serverless regardless.

Current plan for this:

EventBridge triggers Lambda A on a crontab.
Lambda A starts the 'database', waits for it to be ready, then triggers Lambda B.
Lambda B contains the notifier and does all the notifier stuff. When it ends, it triggers Lambda C. If it fails, it triggers Lambda C.
Lambda C stops the 'database'.
The 'database' is a MySQL server running on an EC2 Spot Fleet. The fleet has a size of 1. If a node shuts down, another node is created to replace it, so there's always at least one server running.

The 'database' starting means that a fleet is requested.
The 'database' stopping means that the fleet is stopped.
I need to find some way of preserving the data regardless of server.


Draw io Notion Chrome extension: Failed to insert

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
For the first time I have installed drawio for Notion extension.
On a notion page, I click on Extension -> Insert Diagram
After a few seconds, I get an error: "Failed to Insert. Please reinstall and try again"
I have tried reinstalling, but still same error
To Reproduce
Steps to reproduce the behavior:

Install extension on Chrom
Open a notion page
Click on the drawio notion extension
Click on "Insert Diagram

Expected behavior
A Drawi.io diagram to be inserted
**draw.io extension version :1.1.2 **
Desktop (please complete the following information):

OS: Ubuntu
Browser Chrome
Version 108.0.5359.124

Have also experienced this across 3 different windows laptops, a Windows server 2016 and Mac, I'd put more version but i've had this problem across multiple devices for multiple months

This means the operation for inserting the block and uploading the image failed. If you insert a static image, does the URL of that image in the Notion page start with "/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fc"?

As a workaround, you can drop any .drawio.svg file into a Notion page and click for editing. Eg.


Update Kernel head

Update Kernel head
Description
revert previously updated kernel head
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run checks


support unknown cast

https://github.com/mrjono1/joi-to-typescript/releases/tag/2.2.2 released, I should have bumped the minor version, awe well

we should probably also add this feature to the readme at some point

@mrjono1 new PR for readme


feat: accept JSON comments for INPUT.json

Fixes #905
Not sure how to test it? I'm not sure if we test reading input files at all

Could add a test in packages/core/test/user-input.test.ts for inputs with comments 👀

We should probably move this to some other place. Right now you adjusted this only for crawlee (Actor.getInput() does not go thru this path) and only for the root ./INPUT.json file.
I would be in favour of doing this in the memory storage too, thoughts @vladfrangu?

If we want to add full JSON5 support, we should probably use https://github.com/json5/json5 or similar then. Could see it being useful for others dealing with JSON files, and I'd be fine with adding support for it in memory-storage

Can you please verify how does it stand performance wise?
I guess I would be up for it, just checked the size of crawlee package, and I guess there is no sense is trying to spare 200 kilobytes when its so huge :D

I'd vote for using the json5 battled-tested lib. it's still a pain to have multiple JSON files under default KV when testing locally.

Added an E2E test for INPUT file loading. It also tests Actor.getInput().


Problem running statement with bind params

Driver version

Redshift version
PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.58814\x00
Client Operating System
MacOS 14.1 (23B74)
Python version
3.8
Table schema
Whatever statement with bind_params
Problem description
Have problem running SQL statement with bind_params according this docs
E.g. this statement
conn = redshift_connector.connect(...)
cursor = conn.cursor()
cursor.execute('CREATE SCHEMA IF NOT EXISTS %s;',("example"))

results in
KeyError                                  Traceback (most recent call last)
File [~/.local/share/virtualenvs/etl_jobs-NiSdy2yR/lib/python3.8/site-packages/redshift_connector/core.py:1767](https://file+.vscode-resource.vscode-cdn.netriqardos/etljobs/redshift2redshift_job/~/.local/share/virtualenvs/etl_jobs-NiSdy2yR/lib/python3.8/site-packages/redshift_connector/core.py:1767), in Connection.execute(self, cursor, operation, vals)
   1766 try:
-> 1767     ps = cache["ps"][key]
   1768     _logger.debug("Using cached prepared statement")

KeyError: ('CREATE SCHEMA IF NOT EXISTS %s;', ((<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>)))

During handling of the above exception, another exception occurred:
...
ProgrammingError: {'S': 'ERROR', 'C': '42601', 'M': 'syntax error at or near "$1"', 'P': '29', 'F': '/home/ec2-user/padb/src/pg/src/backend/parser/parser_scan.l', 'L': '840', 'R': 'yyerror'}

but running it like this works
conn = redshift_connector.connect(...)
conn.autocommit = True
cursor = conn.cursor()
cursor.execute(f'CREATE SCHEMA IF NOT EXISTS {"example"};')

Python Driver trace logs
KeyError                                  Traceback (most recent call last)
File [~/.local/share/virtualenvs/etl_jobs-NiSdy2yR/lib/python3.8/site-packages/redshift_connector/core.py:1767](https://file+.vscode-resource.vscode-cdn.net/Users/riqardos/etl/jobs/redshift2redshift_job/~/.local/share/virtualenvs/etl_jobs-NiSdy2yR/lib/python3.8/site-packages/redshift_connector/core.py:1767), in Connection.execute(self, cursor, operation, vals)
   1766 try:
-> 1767     ps = cache["ps"][key]
   1768     _logger.debug("Using cached prepared statement")

KeyError: ('CREATE SCHEMA IF NOT EXISTS %s;', ((<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>), (<RedshiftOID.UNKNOWN: 705>, 0, <function text_out at 0x12f0e4940>)))

During handling of the above exception, another exception occurred:

ProgrammingError                          Traceback (most recent call last)
[/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb](https://file+.vscode-resource.vscode-cdn.net/Users/riqardos/etl//jobs/redshift2redshift_job/main.ipynb) Cell 2 line 8
     [81](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=80) logging.basicConfig(level=logging.INFO)
     [83](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=82) redshift_etl = RedshiftETL()
---> [85](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=84) redshift_etl.cursor.execute(f'CREATE SCHEMA IF NOT EXISTS %s;',("example"))
     [87](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=86) # conn = redshift_connector.connect(...)
     [88](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=87) # cursor = conn.cursor()
     [89](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=88) # cursor.execute('CREATE SCHEMA IF NOT EXISTS %s;',("example"))
   (...)
     [99](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=98) #     append=append
    [100](vscode-notebook-cell:/Users/riqardos/etl/jobs/redshift2redshift_job/main.ipynb#W1sZmlsZQ%3D%3D?line=99) # )

File [~/.local/share/virtualenvs/etl_jobs-NiSdy2yR/lib/python3.8/site-packages/redshift_connector/cursor.py:248](https://file+.vscode-resource.vscode-cdn.net/Users/riqardos/etl/jobs/redshift2redshift_job/~/.local/share/virtualenvs/etl_jobs-NiSdy2yR/lib/python3.8/site-packages/redshift_connector/cursor.py:248), in Cursor.execute(self, operation, args, stream, merge_socket_read)
    246     except:
...
   2137     self.message_types[code](self._read(data_len - 4), cursor)
   2139 if self.error is not None:
-> 2140     raise self.error

ProgrammingError: {'S': 'ERROR', 'C': '42601', 'M': 'syntax error at or near "$1"', 'P': '29', 'F': '/home/ec2-user/padb/src/pg/src/backend/parser/parser_scan.l', 'L': '840', 'R': 'yyerror'}

Reproduction code
import redshift_connector
conn = redshift_connector.connect(...)
conn.autocommit = True
cursor = conn.cursor()
cursor.execute('CREATE SCHEMA IF NOT EXISTS %s;',("example"))

Hi @Riqardos,
thanks for reaching out. we have some documentation improvements coming in our next release that address this. there's a slight modification needed to your code
please change
cursor.execute('CREATE SCHEMA IF NOT EXISTS %s;',("example"))
to this
cursor.execute('CREATE SCHEMA IF NOT EXISTS %s;',("example",))
note the trailing comma -- the second argument passed to execute needs to be either a tuple/list or dictionary based on which paramstyle is used.

Hi @Brooke-white
thanks for reply, I tried to add the trailing comma as you mentioned, but still getting the same issue :/
I have installed redshift-connector  2.0.915

Hey @Riqardos , I am able to reproduce this on my end. The root cause is that Redshift server does not support use of bind parameters for CREATE SCHEMA statements.
The best suggestion I can offer at this time is to use the approach you found to work above as well as ensuring the variable storing the name of the schema comes from a trusted source/has been sanitized, as this approach is vulnerable to SQL injection. Please refer to best practices for avoiding SQL injection for more specific recommendations.
In parallel, I will work to open a feature request for bind parameter support for CREATE SCHEMA with the Redshift server team and provide tracking information for that request in this GitHub issue.

reference: RedshiftDP-56518

Hi folks, to request prioritization for this issue I recommend to reach out to AWS Support referencing RedshiftDP-56518


Neo2 layout

Could you please add the german neo2 layout?

I think that only a half-baked solution can be done.
1. Modifier key code likely handled by OS
The main problem is that Neo requires a third modifier in addition to SHIFT and ALT_RIGHT. My first instinct was to use SYM, and the instinct was confirmed by this implementation in the official Neo repository
But the SYM key event is first handled by the OS in some cases, resulting for instance in the switch layout dialog popping up.
The same issue with META_LEFT / META_RIGHT, they might trigger for example the Google Assistant.
Maybe sacrificing CONTROL_RIGHT would do?
2. Double modifier lock
I could find no way to make two modifier keys simulate a lock e.g. SHIFT_LEFT + SHIFT_RIGHT => CAPS_LOCK
Possible culprits:

The modifier keys are handled by the foreground app I tested with, so the fallback action of triggering a simulated press of CAPS_LOCK never gets the chance to happen?
Applying a modifier to a modifier was maybe never implemented?

I have the idea of making the windows key act as a SCROLL_LOCK key, and scroll lock could then replace SHIFT_LEFT + SHIFT_RIGHT. For layer 2 I think it's acceptable to have it non-lockable sometimes, so I'd make it available only if you have a physical scroll lock key.
3. Fallback mechanism prevents functioning of layer 4 as long as it's not locked.
Again there's no way of making a modified key simulate another key's action directly, only direct output is possible. Any action must be attempted only as a fallback, so there we lose the entire level 4 navigation keys when level 4 is accessed via it's modifier (not locked)

I think points 1 and 3 are more important than point 2 (I could live without CAPS_LOCK).

I managed to work around 1. by interpreting both shift keys as SHIFT_LEFT, and using SHIFT_RIGHT instead of SYM. CONTROL_RIGHT + CVX was being handled by the system.
The work around for 2 also seems promising, I could use the start/windows key to lock / unlock level 4. That's why I don't need to attempt creation of a new layout based on level 4, you'll simply lock level 4 to use the left-hand direction pad.

In the end, the limitations are:

Neo 2's 4th level is severely crippled while not locked because in order to access level  4 you need to press the right alt key, and the right alt key in combination with level 4 directions results in unexpected behavior. So try level 4 navigation only by locking.
Locking isn't working as you're used to: press the start / windows key to lock level 4. Press scroll lock (if you have any) to lock level 2.
Compose feature not available in Android (triggered by TAB in level 3)
Undo key not available in Android (triggered by Z in level 4)
rotate key not available in Android

In the next couple of days I expect the update to be reviewed by Google so you can get it from Play Store.
Please reply with your feedback here.

Thank you, the update is already on Play Store. Unfortunately, I'm not able to use Layers 3-6. Maybe the fault is on my tablet's side?

How do you connect the keyboard to the tablet?
And is none of the two M3 keys working? None of the two M4 keys? What exactly do you get as output?

I have a Tab S7+ with the official keyboard.
Basically for all modifier keys I get the capital letter. The problem is probably that I have no scrolllock key...

But you do have a start/CMD key, right? That one I have designated as scroll lock. Hit it once and enjoy level 4?

I'll send you another layout next week and I'll ask you for input from key event display to help us identify which modifier keys we can rely on.

@AlexD97
I think you have a problem with you external keyboard. I testet v1.2.1 with "Microsoft Universal Foldable" keyboard (complete layers) and all layers are working. There are some little mistakes like layer 1 key c (should "ä" is "4") or layer 2 key w (should "W" is "w"), but in principle it is working very fine.
I also tested a Logitech K480 (not every key) too and get the same behaviour like the MS foldable. All layers are working.
@calin-darie
I found some more "mistakes" (not sure if really mistakes or not writeable signs in the editor on the phone - for example∈- layer 6 key g) respectively like you said about layer 4. At the moment it's no difference which mod4-key is used, but the behaviour of the cursor-keys or backspace or … is not as expected. Maybe no big issue and only a wrong mapping.
The numpad on layer 4 is working well.
What do you mean with "locking"? If I press and hold mod4 and press another key in addition I get the expected sign (works well). And if I press mod4 single time I get on-screen "menue" with special signs. A second press on mod4 and the "menue" disappears - in my opinion no problem here.

@geofaw was right, the issue was on my side, but I fixed it now.
In general, the layers work. Probably the error for symbol ∈ is device-specific. For me ∈ works but some other greek letters don't.
The locking with cmd works also fine. But if I use layer 4 with another modifier the behavior for cursor-keys is unexpected, like @geofaw already wrote. But that's probably due to the limitations which were mentioned before, isn't it?

@geofaw was right, the issue was on my side, but I fixed it now.

Maybe others will have the same issue, so can you share here what it was and how you've fixed it?

if I use layer 4 with another modifier the behavior for cursor-keys is unexpected, like @geofaw already wrote. But that's probably due to the limitations which were mentioned before, isn't it?

Yes. I can't find the official docs about this, but there are two ways to verify:
1 search online, I found this list of shortcuts https://www.pcworld.com/article/184656/android_keyboard_shortcuts.html

Try it yourself. With any standard Android layout e.g. the default English US, try alt_right + arrow keys or alt right+ backspace and you'll see the same behaviour as unlocked level 4. Otherwise let me know

@geofaw

There are some little mistakes like layer 1 key c (should "ä" is "4") or layer 2 key w (should "W" is "w")

Thanks for the feedback, I'll publish a fix next week. Now I'm on vacation with no access to my dev environment

@geofaw was right, the issue was on my side, but I fixed it now.

Maybe others will have the same issue, so can you share here what it was and how you've fixed it?

Some app (Key mapper) was interfering via the Android accessibility tools. Deactivating the app didn't help, I had to turn it off in the accessibility menu.

I've fixed  W, ä, and an additional typo I've found on greek iota ι.
Try it out and let me know if it works for you.

Thanks! I couldn't find any further issues :)

If you're happy with the layout, you may buy me a drink
Otherwise, let's reopen and fix.
Thanks for all the feedback!


fixing some formatting issue

There was an error while validating job 86a7dff8-ede1-468d-bc40-2b78673a6cf2 Message:Error clonning repositoryDetails:System.ArgumentException: Error clonning repository ---> System.Exception: Error when trying to initialize shared repository ---> LibGit2Sharp.NotFoundException: Branch 406 not found. Available branches:
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.GetBranch(Repository repo, String name)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.<>c__DisplayClass3e.b__3d()
at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()
at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func1 func)    at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction(Action action)    at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.InitializeSharedRepository(String url, IDictionary2 branches, String sharedRepoPath)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.VerifySharedRepository(String url, IDictionary2 branches, String tempPath)    --- End of inner exception stack trace ---    at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.VerifySharedRepository(String url, IDictionary2 branches, String tempPath)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.CloneRepository(String url, IDictionary2 branches)    --- End of inner exception stack trace ---    at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.CloneRepository(String url, IDictionary2 branches)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.CloneRepository()
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.GetTreeAsync(String path, Boolean includeSubDirectories, String excludePath, IList1 extensionWhiteList)    at Microsoft.DPS.Commands.IdentifyDocumentsToPublish.ListSourceControlFilesCommand.Do(IDictionary2 context)
at Microsoft.LightweightJobEngine.Core.Language.JobWorkflow1.RunCommands(Guid jobId, IDictionary2 context, CancellationTokenSource cancelSignal)


Implement a trivial net/http Server that listens via HTTPS (using a self-signed cert for dev purposes) and responds with a fixed 5KB response:
package main

import (
	"io"
	"log"
	"net/http"
	"strings"
)

func main() {
    http.HandleFunc("GET /{$}", func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "text/plain; charset=utf-8")
        response := strings.Repeat("A", 5000) + "\n"
        if n, err := io.WriteString(w, response); err != nil {
            log.Printf("Failed to send response, wrote %d/%d bytes: %v", n, len(response), err)
        } else {
            log.Printf("Sent %d/%d response bytes", n, len(response))
        }
    })
    log.Println("Listening")
    log.Fatal(http.ListenAndServeTLS("<IP_ADDRESS>:8443", "server.cer.pem", "server.key.pem", nil))
}

What did you see happen?
When hitting the server with:
$ curl -k -I https://<IP_ADDRESS>:8443/

The response is as expected (i.e. code 200 but empty), but the server logs an error:
$ go run .
2024/04/13 17:21:22 Listening
2024/04/13 17:21:23 Failed to send response, wrote 4096/5001 bytes: http2: request body closed due to handler exiting

What did you expect to see?
No error logged.

Note that an error is only logged when using HTTP/2, and only when the response exceeds 4096 bytes.
Interestingly, a different error is logged if I remove the explicit setting of the Content-Type header (in which case the same header+value still ends up in the response, presumably because net/http auto-detects the content type):
2024/04/13 17:44:48 Failed to send response, wrote 4096/5001 bytes: short write

Looking into this a bit more, what seems to be happening is that ResponseWriter.Write ends up calling http2responseWriterState.writeChunk. That one has some special handling that should make it swallow Writes for HEAD requests:
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L6514-L6516
However, it never gets that far. Instead, because !rws.sentHeader, it first calls rws.conn.writeHeaders, and that one queues the write and then – for some reason – gets to this select case:
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L6245-L6246
That http2errStreamClosed then gets translated into a different error up the stack in http2chunkWriter.Write:
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L6401-L6405
And that cw.rws.stream.closeErr ends up being the error we see (e.g. "http2: request body closed due to handler exiting" = http2errHandlerComplete).
That's as far as I got for now.

Ok, let's go deeper. We already mentioned that http2responseWriterState.writeChunk calls rws.conn.writeHeaders. In doing so, it passes it a http2writeResHeaders struct, one of whose fields is endStream. In the HEAD case, that gets set to true by this:
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L6497
Let's now turn to http2serverConn.serve; after some initialisation, it consists of a for/select loop, with one of the select cases being:
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L4777-L4778
Ok, so after writing each frame (we presume), it calls sc.wroteFrame. Looking into that, we see:
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L5118
And http2writeEndsStream checks the endStream field mentioned above, hence returns true. It then ends up here (in my testing):
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L5141-L5142
And one of the things that http2serverConn.closeStream does is:
https://github.com/golang/go/blob/519f6a00e4dabb871eadaefc8ac295c09fd9b56f/src/net/http/h2_bundle.go#L5499
Which (cw being of a type that is a thin wrapper around a channel) probably explains why we get into the case <-st.cw in http2serverConn.writeHeaders as mentioned in my previous comment.
Summarising: writeChunk calls writeHeaders in such a way that it closes the stream immediately afterwards, which (indirectly) causes writeHeaders to return http2errStreamClosed. And writeChunk is seemingly not expecting that, hence it passes that error on to its caller.

The following seems to be a fix – it fixes my example, at least:
diff --git a/src/net/http/h2_bundle.go b/src/net/http/h2_bundle.go
index 75454dba38..397f21ce9d 100644
--- a/src/net/http/h2_bundle.go
+++ b/src/net/http/h2_bundle.go
@@ -6483,12 +6483,12 @@ func (rws *http2responseWriterState) writeChunk(p []byte) (n int, err error) {
                        contentLength: clen,
                        date:          date,
                })
+               if endStream && (err == nil || err == http2errStreamClosed) {
+                       return len(p), nil
+               }
                if err != nil {
                        return 0, err
                }
-               if endStream {
-                       return 0, nil
-               }
        }
        if isHeadResp {
                return len(p), nil

If the maintainers agree that this fix goes in the right direction, I'd be happy to contribute it to the x/net/http2 package (I'm aware that's where the standard libary's h2_bundle.go is taken from).

cc @neild

You're sending a HEAD request to a handler that writes a response body.
HEAD requests don't have a response body, of course, so the server needs to discard it.
There seems to be some divergence in how the HTTP/1 and HTTP/2 servers deal with the case of a handler writing a body in response to a HEAD request. (None of this is in my working memory, so I'm going off of a quick glance at the code, and I may be getting some of the details wrong.)
Both the HTTP/1 and HTTP/2 paths will buffer writes to the response body. If the entire body fits in the response buffer, then the server will send a Content-Length header based on how much was written before the handler exited. If the body doesn't fit in the response buffer, or if the handler flushes the buffer explicitly, then the server will send headers when the buffer fills. In this case it won't send a Content-Length unless the handler provided one.
Once the server has sent headers in response to a HEAD request, there's no point in the handler writing more of the response body--the server doesn't have anything to do with it, and all it can do is discard the bytes.
The HTTP/1 ResponseWriter silently discards the response bytes and returns success.
The HTTP/2 ResponseWriter discards the response bytes and returns an error. The error is confusing and wrong: "http2: response body closed due to handler exiting", but the handler hasn't exited.
I think returning an error is the better behavior here, since it lets the handler exit quickly. (Perhaps we should change the HTTP/1 server to do so as well, although Hyrum's Law probably applies here.) The error shouldn't lie about the handler being complete when it isn't, and ideally would explain what's going on: "stream closed" would be terse but accurate, "response body for HEAD request closed" might be more explanatory.
I don't think suppressing the error is the right option, though.

I think returning an error is the better behavior here, since it lets the handler exit quickly.

Fair point. However, there are also good arguments for why not returning an error is the right thing:

As you say, this is what happens with HTTP/1. I do think it is quite unfortunate for the behaviour to differ between HTTP/1 and HTTP/2, and it adds to the confusion.
The net/http library invokes GET handlers for HEAD requests, as seen in my example above. For that to make sense, especially given this behaviour isn't documented, I think it's is reasonable to expect things to "just work" when that happens. Which I'd argue implies that Write calls to the ResponseWriter should not return an error; that way, an existing handler written for a GET request is almost guaranteed to magically do the right thing for HEAD requests.

On balance, silently discarding writes for HTTP/2 (matching HTTP/1 behaviour) seems like the better way forward to me.
Or if we want to return an error, then I feel like we should find some way to make this the behaviour for both HTTP/1 and HTTP/2 – which as you point out is a breaking change (albeit of undocumented behaviour) so requires care.

Which I'd argue implies that Write calls to the ResponseWriter should not return an error; that way, an existing handler written for a GET request is almost guaranteed to magically do the right thing for HEAD requests.

But a naive GET handler does do the right thing for HEAD requests: The server responds to the HEAD request with appropriate headers.
ResponseWriter.Write returning an error is a normal and expected condition, indicating that the handler can stop writing the response body because the client isn't reading it. This happens when a connection breaks mid-response (due to a network error, the client going away, or--in HTTP/2--the client canceling the request), or in this case when the response isn't being sent to the client at all.
Changing the HTTP/2 server to silently discard writes seems like a strict degradation of functionality.

But a naive GET handler does do the right thing for HEAD requests: The server responds to the HEAD request with appropriate headers.

True. Apart from the potentially confusing error trace in the logs.
Regarding your comparison with other errors returned from ResponseWriter.Write: well, those are for transient conditions, whereas here we are systematically returning an error for a particular case where nothing even went wrong. Which might be confusing for people looking at their logs (which is how I stumbled on this).
So yeah, it would certainly help to improve the error message wording. Something like "not writing data in response to HEAD request" maybe.
Ideally, also introduce a dedicated Err* value for this, enabling users to suppress it (in a non-brittle way). Given that this case is just part of the expected behaviour, and does not indicate any bad/abortive/unusual behaviour by either client, server, the network, or anything else.
The remaining downside then are the extra lines of code that (some) users will write to suppress these non-error errors. But given that I seem to be the first one reporting this, that may be a reasonable trade-off; the alternative of suppressing the errors inside the library having its own downsides (causing the handler to do unnecessary work, and being a change in behaviour).

If the maintainers prefer the approach of merely tweaking the error message (and possibly exposing that error value as a public Err* variable), I'd be happy to have a go at implementing it.

Checking in here. Still happy to help out, once there is agreement from the maintainers on what the fix should look like.


Updated names.txt

Description of changes

Added my name to names.txt
Issue Resolved

Fixes #

Wow! Thanks so much for your contribution. It means the world to us here at Operation Code.
As a token of our gratitude, please fill out this form to receive some stickers and a handwritten "thank you" note. ❤


Support selectors (label query) in kubectl rollout restart

What would you like to be added:
Adding the -l / --selector flag to the kubectl rollout restart command (and other applicable rollout subcommands).
Why is this needed:
At the moment, kubectl rollout restart can either

restart all resources of a given type (e.g. kubectl rollout restart deployment)
restart one resource (e.g. kubectl rollout restart deployment/something)

I think it makes sense that it should be able to restart multiple resources matching a label expression, within a resource type. For example:

kubectl rollout restart deployment -l=tier=frontend

This would restart all tier=frontend deployments.

/triage accepted
/priority backlog

/assign

https://github.com/kubernetes/kubernetes/pull/99758

/assign @aramperes

/unassign

/reopen

/remove-lifecycle fresh


Animation will never work after removeAllAnimations() called

I need to remove all the animations on some layer under specific condition. But after I did something like this, it become impossible to add animation any more. How could I cancel all animation without hurt it?
self.spriteLayer.removeAllAnimations()

can you please paste in a chunk of code of how you add the animations and how you remove them so I can try to reproduce the problem?

Thanks,  it something like that below. Not the same as I expected before. I will change the title. While I am touching too fast, the completion block will not work.
func transformToTouching() { //Response to touching event

    self.setHighlighted(true, animated: true)

    self.animationQueue.removeAll(keepCapacity: true)

    EAAnimationDelayed.animations.map {

        $0.cancelAnimationChain()
    }

    self.spriteLayer.removeAllAnimations()

    self.chainAnimation({ () -> Void in

        self.spriteLayer.fillColor = ...
        self.spriteLayer.path = ...

    }, duration: 0.3)
}

typealias AnimationBlock = () -> Void
typealias AnimationPiece = (animation:AnimationBlock, duration: NSTimeInterval)

var animating:Bool = false
var animationQueue = [AnimationPiece]()

func chainAnimation(animation: AnimationBlock, duration: NSTimeInterval) {

    self.animationQueue.append((animation:animation, duration: duration))

    self.feedAnimation()
}

func feedAnimation() {

    if self.animating {

        return
    }

    if let some = self.animationQueue.first {

        self.animationQueue.removeAtIndex(0)

        self.animating = true

        UIView.animateWithDuration(some.duration, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations: some.animation, completion: { (done: Bool) -> Void in // Not work while too fast

            self.animating = false

            self.feedAnimation()
        })

    } else {

        return
    } //
}

what I see at first sight is that you never actually use the EasyAnimation API to create chains - animateAndChainWithDuration(...). You can cancel only custom EA chains, since the "normal" animations you create with the UIKit API aren't cancelable (but not a bad idea to think if it's possible to do that). Review again the example in the README: https://github.com/icanzilb/EasyAnimation#cancel-chain-animations

I really want to use your chain, but it doesn't work out while I chain them from different place. 😂
https://github.com/icanzilb/EasyAnimation/issues/9
Oops, as the block, we can comment it, it doesn't matter for the phenomenon. 😂
EAAnimationDelayed.animations.map {

        $0.cancelAnimationChain()
}


Baserow is broken

Steps To Reproduce
Steps to reproduce the behavior:

build baserow
it will err out with missing dependency: uvloop

Build log
[...]
Finished executing setuptoolsBuildPhase
installing
Executing pipInstallPhase
/build/source/backend/dist /build/source/backend
Processing ./baserow-1.10.2-py3-none-any.whl
ERROR: Could not find a version that satisfies the requirement uvloop (from baserow) (from versions: none)
ERROR: No matching distribution found for uvloop

Additional context
It seems I am building the 1.10.2, but it was initialized at 1.10.1 in<PHONE_NUMBER>f036bc6c4140fc72251f8505bf8073 and I do not find the upgrade commit, I do not understand if it was a mistake.
Notify maintainers
@onny
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
❯ nsp nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.58, NixOS, 22.11 (Raccoon), 22.11pre402830.5e804cd8a27`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.10.3`
 - channels(root): `"home-manager, nixos, sops-nix"`
 - channels(raito): `"home-manager, nixgl, nixpkgs-21.11pre319254.b5182c214fa"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Looks like that the modules from uvicorn[standard] are missing. Solution could be as simple as adding something like ] ++ python3.pkgs.uvicorn.optional-dependencies.standard;.

Looks like that the modules from uvicorn[standard] are missing. Solution could be as simple as adding something like ] ++ python3.pkgs.uvicorn.optional-dependencies.standard;.

It is not enough.
Requirement already satisfied: uvloop in /nix/store/rkrr8x4gvjvdzbv57calbc8kmx6mmhl3-python3.10-uvloop-0.16.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.16.0)
Requirement already satisfied: automat in /nix/store/arl2vmwfcpmjyz9jg15p3ap7kj51vgwc-python3.10-automat-20.2.0/lib/python3.10/site-packages (from baserow==1.10.2) (20.2.0)
Requirement already satisfied: certifi in /nix/store/cjm78avl61yh2zdfhl8mjj48jzklyhx8-python3.10-certifi-2022.06.15/lib/python3.10/site-packages (from baserow==1.10.2) (2022.6.15)
Requirement already satisfied: channels in /nix/store/a7c5icyk893g9vvd7apc8kk4jdjhj79j-python3.10-channels-3.0.5/lib/python3.10/site-packages (from baserow==1.10.2) (3.0.5)
Requirement already satisfied: click-plugins in /nix/store/8iamh6w5x7xgsp1ni2nndlcnjli1svll-python3.10-click-plugins-1.1.1/lib/python3.10/site-packages (from baserow==1.10.2) (1.1.1)
Requirement already satisfied: gunicorn in /nix/store/8vgcaj628qjnv1nz0f1352bph3hbr409-python3.10-gunicorn-20.1.0/lib/python3.10/site-packages (from baserow==1.10.2) (20.1.0)
Requirement already satisfied: click in /nix/store/j9fvqzwwwcsivfbdx6al3xfylkkigj8w-python3.10-click-8.1.3/lib/python3.10/site-packages (from baserow==1.10.2) (8.1.3)
Requirement already satisfied: incremental in /nix/store/sjsij2938idk0j3wghhk3saz72bndarq-python3.10-incremental-21.3.0/lib/python3.10/site-packages (from baserow==1.10.2) (21.3.0)
Requirement already satisfied: pytz in /nix/store/7hgcwz4l2l801qc9qsqkq2kj7awj668q-python3.10-pytz-2022.1/lib/python3.10/site-packages (from baserow==1.10.2) (2022.1)
Requirement already satisfied: pyjwt[crypto] in /nix/store/cmi2ryfm1vrq3bk0haivp60w7ivbmabs-python3.10-pyjwt-2.4.0/lib/python3.10/site-packages (from baserow==1.10.2) (2.4.0)
Requirement already satisfied: botocore in /nix/store/g7pc0jyshbc0b29hwnm811qwvb64px5f-python3.10-botocore-1.27.42/lib/python3.10/site-packages (from baserow==1.10.2) (1.27.42)
Requirement already satisfied: hiredis in /nix/store/1lsjw00zxyilwvxmxs9hv2p9mvipjjah-python3.10-hiredis-2.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (2.0.0)
Requirement already satisfied: autobahn in /nix/store/kfdspv3lbqfwby87fy86hxbhg90ig1y6-python3.10-autobahn-22.6.1/lib/python3.10/site-packages (from baserow==1.10.2) (22.6.1)
Requirement already satisfied: pyrsistent in /nix/store/nk344iszb5zwl5w1hzq9jnpf480m5sxm-python3.10-pyrsistent-0.18.1/lib/python3.10/site-packages (from baserow==1.10.2) (0.18.1)
Requirement already satisfied: pyopenssl in /nix/store/6l5fj0m0hzhjqvimkwvdxdnkjfaiz57a-python3.10-pyopenssl-22.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (22.0.0)
Requirement already satisfied: itsdangerous in /nix/store/8aikqbkkydphfxfll9iwlzhmpps9kyms-python3.10-itsdangerous-2.1.2/lib/python3.10/site-packages (from baserow==1.10.2) (2.1.2)
Requirement already satisfied: dj-database-url in /nix/store/6dpl98kg9knsvhs55ks5262ridlhf23x-python3.10-dj-database-url-0.5.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.5.0)
Requirement already satisfied: twisted[tls] in /nix/store/s1c8jckf1m8330fjhl5c1qpgmvl85pr2-python3.10-twisted-22.4.0/lib/python3.10/site-packages (from baserow==1.10.2) (22.4.0)
Requirement already satisfied: drf-jwt in /nix/store/0pl3d0ji0iv1mrk55mqfms9742cz1b49-python3.10-drf-jwt-1.19.2/lib/python3.10/site-packages (from baserow==1.10.2) (1.19.2)
Requirement already satisfied: jsonschema in /nix/store/k6s5jmyydbndh9iih1j6sl8xf3f09pi7-python3.10-jsonschema-4.9.1/lib/python3.10/site-packages (from baserow==1.10.2) (4.9.1)
Requirement already satisfied: uritemplate in /nix/store/4wcpkgficid0qpbh62i73vrg2lh80pkx-python3.10-uritemplate-4.1.1/lib/python3.10/site-packages (from baserow==1.10.2) (4.1.1)
Requirement already satisfied: tenacity in /nix/store/zvjwzpibip3f08b8jsd7p6rn6i8pbkwi-python3.10-tenacity-8.0.1/lib/python3.10/site-packages (from baserow==1.10.2) (8.0.1)
Requirement already satisfied: unicodecsv in /nix/store/y86f7cgamdipm4qx6xmlya20ycb71czb-python3.10-unicodecsv-0.14.1/lib/python3.10/site-packages (from baserow==1.10.2) (0.14.1)
Requirement already satisfied: txaio in /nix/store/ga3kwjfgf4h1w92hn707bkr8wgmk681l-python3.10-txaio-22.2.1/lib/python3.10/site-packages (from baserow==1.10.2) (22.2.1)
Requirement already satisfied: click-repl in /nix/store/47l7f187b2b0wjpk74j52lrk9yzwwlkj-python3.10-click-repl-0.2.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.2.0)
Requirement already satisfied: idna in /nix/store/zjalf8pzgpn8dfisbd8i7xbdpcnn2cc4-python3.10-idna-3.3/lib/python3.10/site-packages (from baserow==1.10.2) (3.3)
Requirement already satisfied: django-storages in /nix/store/l996g40kqsff3hwp6i6n9k7hfbrzha4k-python3.10-django-storages-1.13.1/lib/python3.10/site-packages (from baserow==1.10.2) (1.13.1)
Requirement already satisfied: async-timeout in /nix/store/qzid8z28s5x0i56q9pw8sx008yrsk24j-python3.10-async-timeout-4.0.2/lib/python3.10/site-packages (from baserow==1.10.2) (4.0.2)
Requirement already satisfied: django-celery-email in /nix/store/iixkzb655glr8mm2grkql4jl9jvrv4p3-python3.10-django-celery-email-3.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (3.0.0)
Requirement already satisfied: psycopg2 in /nix/store/mgbc82r1w160wwhfpm5xmfpz4bksmpx8-python3.10-psycopg2-2.9.3/lib/python3.10/site-packages (from baserow==1.10.2) (2.9.3)
Requirement already satisfied: importlib-resources in /nix/store/l0a5fb67hj4f4q57qwsd9c1a0mna50xy-python3.10-importlib-resources-5.8.0/lib/python3.10/site-packages (from baserow==1.10.2) (5.8.0)
Requirement already satisfied: pyasn1-modules in /nix/store/yjclidifamyvkyjwqk10c0617fc67nyg-python3.10-pyasn1-modules-0.2.8/lib/python3.10/site-packages (from baserow==1.10.2) (0.2.8)
Requirement already satisfied: service-identity in /nix/store/5kzvmyyggnjpjrk68sm0hflgv45cvyph-python3.10-service-identity-21.1.0/lib/python3.10/site-packages (from baserow==1.10.2) (21.1.0)
Requirement already satisfied: asgiref in /nix/store/wr8fklzw183j22khr0w7kmyqy5b7jxa7-python3.10-asgiref-3.5.2/lib/python3.10/site-packages (from baserow==1.10.2) (3.5.2)
Requirement already satisfied: uvicorn[standard] in /nix/store/h0pz2jg2fww025vk693fwng4xvvx1q8z-python3.10-uvicorn-0.18.2/lib/python3.10/site-packages (from baserow==1.10.2) (0.18.2)
Requirement already satisfied: django-celery-beat in /nix/store/w2qlr25zf3grq68d2vkzjddqrcnn5ank-python3.10-django-celery-beat-2.3.0/lib/python3.10/site-packages (from baserow==1.10.2) (2.3.0)
Requirement already satisfied: django-health-check in /nix/store/jqqhl6n8h1ry16zhdq9dk37hrp10mi90-python3.10-django-health-check-3.16.5/lib/python3.10/site-packages (from baserow==1.10.2) (0.1.dev1+gec87130.d19800102)
Requirement already satisfied: websockets in /nix/store/pmi5ph9x72pi1k8gcp0licp72nw1cpim-python3.10-websockets-10.3/lib/python3.10/site-packages (from baserow==1.10.2) (10.3)
Requirement already satisfied: watchgod in /nix/store/bcks5f13q420ky6ldfbkxp5qhy6y6lda-python3.10-watchgod-0.8.2/lib/python3.10/site-packages (from baserow==1.10.2) (0.8.2)
Requirement already satisfied: django-timezone-field in /nix/store/fmvixcvzv9kf400hj3pp740v97fxpddq-python3.10-django-timezone-field-5.0/lib/python3.10/site-packages (from baserow==1.10.2) (5.0)
Requirement already satisfied: vine in /nix/store/md7sngb6n257njr4qjv22icb29nj8251-python3.10-vine-5.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (5.0.0)
Requirement already satisfied: kombu in /nix/store/frz6mi7dwdz0pjf1h1dwpl681kpxf6wk-python3.10-kombu-5.2.4/lib/python3.10/site-packages (from baserow==1.10.2) (5.2.4)
Requirement already satisfied: daphne in /nix/store/6fd6v75zac56wcmvj3rj13ybm7cdjbs7-python3.10-daphne-3.0.2/lib/python3.10/site-packages (from baserow==1.10.2) (3.0.2)
Requirement already satisfied: click-didyoumean in /nix/store/1rrppgvrnpzc1d5lsz8vwwfy7gfasb23-python3.10-click-didyoumean-0.3.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.3.0)
Requirement already satisfied: text-unidecode in /nix/store/pxi7mlxxpdxxrb00s7fssf4bcjvb52s7-python3.10-text-unidecode-1.3/lib/python3.10/site-packages (from baserow==1.10.2) (1.3)
Requirement already satisfied: pillow in /nix/store/p04s8rxk8r0vjwb9k73dmdakr00xzg35-python3.10-pillow-9.2.0/lib/python3.10/site-packages (from baserow==1.10.2) (9.2.0)
Requirement already satisfied: celery-redbeat in /nix/store/zv9x58yfp4jxslwg5k9198fq9k8npwjq-python3.10-celery-redbeat-2.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (2.0.0)
Requirement already satisfied: billiard in /nix/store/ajwm2n5jjhzpdhky9g6ky1hvyclgs8pz-python3.10-billiard-4.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (4.0.0)
Requirement already satisfied: pyyaml in /nix/store/9h4c5yr5d4s8b02a5bd998x72jg72r3d-python3.10-pyyaml-6.0/lib/python3.10/site-packages (from baserow==1.10.2) (6.0)
Requirement already satisfied: sqlparse in /nix/store/2ki3vz09h1fmid2v0ky5yk7pgj3zlah0-python3.10-sqlparse-0.4.2/lib/python3.10/site-packages (from baserow==1.10.2) (0.4.2)
Requirement already satisfied: channels-redis in /nix/store/kv424bqhalv78mrb2nf1b6yynwbpxwhy-python3.10-channels-redis-3.4.1/lib/python3.10/site-packages (from baserow==1.10.2) (3.4.1)
Requirement already satisfied: msgpack in /nix/store/cap6bc61p5wyb4x3rcc24qb0cs401na1-python3.10-msgpack-1.0.4/lib/python3.10/site-packages (from baserow==1.10.2) (1.0.4)
Requirement already satisfied: cffi in /nix/store/zhjp86g0a7qqffqrgwsifkhr4w8qf2np-python3.10-cffi-1.15.1/lib/python3.10/site-packages (from baserow==1.10.2) (1.15.1)
Requirement already satisfied: constantly in /nix/store/dnd6j7aix372c58gvhfg0006gfz472lm-python3.10-constantly-15.1.0/lib/python3.10/site-packages (from baserow==1.10.2) (15.1.0)
Requirement already satisfied: ndg-httpsclient in /nix/store/912z50jkqimr88jzgbxjcgnr6b18gj6p-python3.10-ndg-httpsclient-0.5.1/lib/python3.10/site-packages (from baserow==1.10.2) (0.5.1)
Requirement already satisfied: wrapt in /nix/store/f8p0pvagikkywhyvmqz4yjsimahw12s6-python3.10-wrapt-1.13.3/lib/python3.10/site-packages (from baserow==1.10.2) (1.13.3)
Requirement already satisfied: pycparser in /nix/store/y1acw7hsskcj9jbyv3ngdk0m3ndbzn6a-python3.10-pycparser-2.21/lib/python3.10/site-packages (from baserow==1.10.2) (2.21)
Requirement already satisfied: cached-property in /nix/store/jszzid5zs7p1qq9n8136j63ixd6z0fwr-python3.10-cached-property-1.5.2/lib/python3.10/site-packages (from baserow==1.10.2) (1.5.2)
Requirement already satisfied: cryptography in /nix/store/lrxvigqwn42anhc0llr2splfrrr40ppg-python3.10-cryptography-37.0.4/lib/python3.10/site-packages (from baserow==1.10.2) (37.0.4)
Requirement already satisfied: wcwidth in /nix/store/0cjajy1445fq65gii63h6j5bfryqgsav-python3.10-wcwidth-0.2.5/lib/python3.10/site-packages (from baserow==1.10.2) (0.2.5)
Requirement already satisfied: django-redis in /nix/store/3yqnpabf5zxy5wnq6rsal98k0prjrlmp-python3.10-django-redis-5.2.0/lib/python3.10/site-packages (from baserow==1.10.2) (5.2.0)
Requirement already satisfied: charset-normalizer in /nix/store/jjp991973bp1a8f72cl5h2lzpyg0c840-python3.10-charset-normalizer-2.1.0/lib/python3.10/site-packages (from baserow==1.10.2) (2.1.0)
Requirement already satisfied: typing-extensions in /nix/store/0469q27959wsvlx45dscghsqbvmbkghg-python3.10-typing-extensions-4.3.0/lib/python3.10/site-packages (from baserow==1.10.2) (4.3.0)
Requirement already satisfied: boto3 in /nix/store/g1k4qj5yi2q9jg3rsnl08r0687vxccg5-python3.10-boto3-1.24.42/lib/python3.10/site-packages (from baserow==1.10.2) (1.24.42)
Requirement already satisfied: celery[redis] in /nix/store/kyvrjaps7f7q69ab5mx6hjy7bwp5jg2c-python3.10-celery-5.2.7/lib/python3.10/site-packages (from baserow==1.10.2) (5.2.7)
Requirement already satisfied: faker in /nix/store/6hlvz80yvzcmghqmcc5jgiw0z90riijx-python3.10-faker-13.15.0/lib/python3.10/site-packages (from baserow==1.10.2) (13.15.0)
Requirement already satisfied: deprecated in /nix/store/j4wfa0b1m0lwxbm8x6jrmhnan8j05yx7-python3.10-deprecated-1.2.13/lib/python3.10/site-packages (from baserow==1.10.2) (1.2.13)
Requirement already satisfied: django-appconf in /nix/store/13022yid1vibj6mbkgwsq5j4ibf1fmj6-python3.10-django-appconf-1.0.5/lib/python3.10/site-packages (from baserow==1.10.2) (1.0.5)
Requirement already satisfied: s3transfer in /nix/store/qgngszxq4jzkvac92mv4fz8pxydqpdr0-python3.10-s3transfer-0.6.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.6.0)
Requirement already satisfied: packaging in /nix/store/bxb11lf1c2wa7q99hp7njw2dx2w1kms2-python3.10-packaging-21.3/lib/python3.10/site-packages (from baserow==1.10.2) (21.3)
Requirement already satisfied: zipp in /nix/store/q60c2qf5fpjc1s8wipngyxw8v55l0kgn-python3.10-zipp-3.8.1/lib/python3.10/site-packages (from baserow==1.10.2) (3.8.1)
Requirement already satisfied: advocate in /nix/store/azjakd2mmblfp46srwcdp0idwby03xms-python3.10-advocate-1.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (1.0.0)
Requirement already satisfied: urllib3 in /nix/store/iv1zbhhxflbym1mjwm8vaalq27w9w8hy-python3.10-urllib3-1.26.11/lib/python3.10/site-packages (from baserow==1.10.2) (1.26.11)
Requirement already satisfied: redis in /nix/store/7npq6gnbn16zhssppvhq59jizhsfiqrg-python3.10-redis-4.3.4/lib/python3.10/site-packages (from baserow==1.10.2) (4.3.4)
Requirement already satisfied: djangorestframework in /nix/store/xi2za6ypbcz5hq1zdas5gvyqkbclm3v5-python3.10-djangorestframework-3.13.1/lib/python3.10/site-packages (from baserow==1.10.2) (3.13.1)
Requirement already satisfied: antlr4-python3-runtime in /nix/store/69gcp09p67irnl4f0j2zhif8gi26chny-python3.10-antlr4-python3-runtime-4.8/lib/python3.10/site-packages (from baserow==1.10.2) (4.8)
Requirement already satisfied: drf-spectacular in /nix/store/csancx65hh18inwkr4kpsz0aqvqbi4gn-python3.10-drf-spectacular-0.22.1/lib/python3.10/site-packages (from baserow==1.10.2) (0.22.1)
Requirement already satisfied: pyasn1 in /nix/store/b88c4rmi5y5wr79gxx635vnbizhz0zp4-python3.10-pyasn1-0.4.8/lib/python3.10/site-packages (from baserow==1.10.2) (0.4.8)
Requirement already satisfied: pyparsing in /nix/store/gsgdb9hhzgpn4mlsq6xiz64rgizljwxp-python3.10-pyparsing-3.0.9/lib/python3.10/site-packages (from baserow==1.10.2) (3.0.9)
Requirement already satisfied: inflection in /nix/store/rqlxng1d1hv79yfyh6hnihkmn5akfj7w-python3.10-inflection-0.5.1/lib/python3.10/site-packages (from baserow==1.10.2) (0.5.1)
Requirement already satisfied: regex in /nix/store/vwmqyqfq6pf9vs03lj131k1h8fj9q07w-python3.10-regex-2022.3.2/lib/python3.10/site-packages (from baserow==1.10.2) (2022.3.2)
Requirement already satisfied: jmespath in /nix/store/bl1gb6aw4a92f1q5kiax59sgnikwm1al-python3.10-jmespath-1.0.1/lib/python3.10/site-packages (from baserow==1.10.2) (1.0.1)
Requirement already satisfied: hyperlink in /nix/store/9gsvbchdjbyxyfiwhsy4236g82mi0k8a-python3.10-hyperlink-21.0.0/lib/python3.10/site-packages (from baserow==1.10.2) (21.0.0)
Requirement already satisfied: six in /nix/store/p6q3fy179cjd206v2capr9krxyc0cgv8-python3.10-six-1.16.0/lib/python3.10/site-packages (from baserow==1.10.2) (1.16.0)
Requirement already satisfied: requests in /nix/store/0lfjnldd0rvbr8w2pfd7bc7k4hc9jrjg-python3.10-requests-2.28.1/lib/python3.10/site-packages (from baserow==1.10.2) (2.28.1)
Requirement already satisfied: django in /nix/store/6lfkgxn2s5d95wvz9dzmryh0paxyfi6j-python3.10-django-3.2.15/lib/python3.10/site-packages (from baserow==1.10.2) (3.2.15)
Requirement already satisfied: attrs in /nix/store/giddxnzhqsnw66ivlhbx99yclzgy9866-python3.10-attrs-22.1.0/lib/python3.10/site-packages (from baserow==1.10.2) (22.1.0)
Requirement already satisfied: django-cors-headers in /nix/store/3dbm4ddrjy4pjychbgy82y1hfilx8d5d-python3.10-django-cors-headers-3.7.0/lib/python3.10/site-packages (from baserow==1.10.2) (3.7.0)
Requirement already satisfied: importlib-metadata in /nix/store/mafnvxffc1mnzi0anh9rpjriawynpgvg-python3.10-importlib-metadata-4.12.0/lib/python3.10/site-packages (from baserow==1.10.2) (4.12.0)
Requirement already satisfied: netifaces in /nix/store/gi77dzksxmmqvj7wv49g0p50pxa9aaxc-python3.10-netifaces-0.11.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.11.0)
Requirement already satisfied: python-dateutil in /nix/store/hkjby4wrgv0l2p1r68kzzdsqz3jf4xpi-python3.10-python-dateutil-2.8.2/lib/python3.10/site-packages (from baserow==1.10.2) (2.8.2)
Requirement already satisfied: python-dotenv in /nix/store/laq3qg1p7zg6ggrp0nzj3k85wmrxa062-python3.10-python-dotenv-0.20.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.20.0)
Requirement already satisfied: tqdm in /nix/store/yhg3js2zfy678rvvgrhzs0fpd7p8vwmi-python3.10-tqdm-4.64.0/lib/python3.10/site-packages (from baserow==1.10.2) (4.64.0)
Requirement already satisfied: python-crontab in /nix/store/lng51sbk3f8gfg6zz1gv9ysikcd4mh40-python3.10-python-crontab-2.6.0/lib/python3.10/site-packages (from baserow==1.10.2) (2.6.0)
Requirement already satisfied: psutil in /nix/store/zb2khd274jb094virph139xldqzwrnin-python3.10-psutil-5.9.1/lib/python3.10/site-packages (from baserow==1.10.2) (5.9.1)
Requirement already satisfied: aioredis in /nix/store/7syvgfzlfxxpfx1q2896a2bh7zix2dgs-python3.10-aioredis-2.0.1/lib/python3.10/site-packages (from baserow==1.10.2) (2.0.1)
Requirement already satisfied: h11 in /nix/store/d7g1d2nnm890a8nmgzbh7cxn53ibdxdx-python3.10-h11-0.13.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.13.0)
Requirement already satisfied: prompt-toolkit in /nix/store/ppaksr3idcbi0zc816pzdv4kg80vqizr-python3.10-prompt-toolkit-3.0.30/lib/python3.10/site-packages (from baserow==1.10.2) (3.0.30)
Requirement already satisfied: zope.interface in /nix/store/b7741mzxw3igk5w2ymnhm5pf6f51n17q-python3.10-zope.interface-5.4.0/lib/python3.10/site-packages (from baserow==1.10.2) (5.4.0)
Requirement already satisfied: amqp in /nix/store/m3plygxmbsks3gs7d5qg5qmks4nyxx4n-python3.10-amqp-5.1.1/lib/python3.10/site-packages (from baserow==1.10.2) (5.1.1)
Requirement already satisfied: httptools in /nix/store/3xznaa1aipk2khf29jkr0sr6pwh4hv2a-python3.10-httptools-0.4.0/lib/python3.10/site-packages (from baserow==1.10.2) (0.4.0)
Requirement already satisfied: setuptools in /nix/store/1pxd3xyarxfr6bxrkz2px70j59pa4z04-python3.10-setuptools-63.2.0/lib/python3.10/site-packages (from autobahn->baserow==1.10.2) (63.2.0.post0)
Requirement already satisfied: tzdata in /nix/store/5gssp20nzfi32aly6xrjqbr1j26cjnx6-python3.10-tzdata-2022.1/lib/python3.10/site-packages (from django-celery-beat->baserow==1.10.2) (2022.1)
INFO: pip is looking at multiple versions of unicodecsv to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of tqdm to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of text-unidecode to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of tenacity to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of regex to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of python-dotenv to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pycparser to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pyasn1-modules to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of psycopg2 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of psutil to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of prompt-toolkit to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pillow to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pyasn1 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of ndg-httpsclient to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of itsdangerous to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of importlib-resources to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of zipp to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of importlib-metadata to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of httptools to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of hiredis to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of h11 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of gunicorn to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of faker to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of uritemplate to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pyyaml to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pyrsistent to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of jsonschema to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of inflection to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of drf-spectacular to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pyjwt[crypto] to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of drf-jwt to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of djangorestframework to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-storages to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-redis to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-health-check to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-cors-headers to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-celery-email to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of python-crontab to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-timezone-field to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-celery-beat to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django-appconf to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of dj-database-url to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of msgpack to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of channels-redis to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of zope-interface to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of typing-extensions to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of service-identity to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pyopenssl to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of incremental to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of constantly to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of twisted[tls] to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of sqlparse to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of django to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of daphne to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of channels to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pytz to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of kombu to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of click-repl to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of click-plugins to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of click-didyoumean to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of click to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of celery[redis] to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of wrapt to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pyparsing to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of packaging to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of deprecated to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of redis to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of celery-redbeat to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of cached-property to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of six to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of s3transfer to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of python-dateutil to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of jmespath to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of botocore to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of boto3 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of billiard to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of automat to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of txaio to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of hyperlink to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of cffi to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of cryptography to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of autobahn to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of attrs to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of async-timeout to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of asgiref to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of antlr4-python3-runtime to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of vine to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of amqp to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of aioredis to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of urllib3 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of idna to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of charset-normalizer to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of certifi to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of requests to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of netifaces to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of advocate to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of baserow to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement watchfiles>=0.13; extra == "standard" (from uvicorn[standard]) (from versions: none)
ERROR: No matching distribution found for watchfiles>=0.13; extra == "standard"

is the new error after this and I'm not sure adding watchfiles would fix anything.


Use SYsU instead of C as test codes

To archive the goal "run your OS compiled by your own compiler on your own CPU", it's elegant to use SYsU instead of C as test code.

Here is an interesting example: a brainfuck interpreter written in SYsU.


improve record time on receiving HTTP request

Proposed changes
We meet occasional slow stream-load, ReadDataTimeMs is very fast but WriteDataTimeMs is too long, according to some logs, it can be inferred that data from receive to vtablet_writer is slow, but can not judge the root cause is the scanner slow or is it slow to receive data. Finally, finding the network is too slow, but it costs lots of time. Therefore, recording the time on receiving HTTP request is helpful to users to know why the load is slow.


Client protocol with develop, gated by a feature flag.

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[there are two. This is a combination of #593 and #586 ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[no. It was merged.] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[no.] Is your initial contribution a single, squashed commit?

[x] Does gradlew build run cleanly?

[x] Have you written or updated unit tests to verify your changes?

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

I get the following error when running the full integration test suite:
org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTest > testSerializables FAILED
    java.lang.AssertionError: New or moved classes----------------------------------------
    org/apache/geode/internal/cache/tier/sockets/ServiceLoadingFailureException,false

    If the class is not persisted or sent over the wire add it to the file
    /tmp/build/ae3c03f4/gemfire/open/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
    Otherwise if this doesn't break backward compatibility, copy the file
    /tmp/build/ae3c03f4/geode/geode-core/build/integrationTest/actualSerializables.dat to
    /tmp/build/ae3c03f4/gemfire/open/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedSerializables.txt.
        at org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTest.testSerializables(AnalyzeSerializablesJUnitTest.java:150)

What's the best way to address this?

Added to excluded-classes.txt, hopefully this fixes it.

All tests pass!

merged in  e1c6c3a .


How to debug humbug?

Still can't get humbug work for me. Ends up with
Humbug is analysing source files...

Mutation Testing is commencing...
(.: killed, M: escaped, S: uncovered, E: fatal error, T: timed out)

SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS |   60 (14/72)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS |  120 (42/72)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS |  180 (52/72)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS |  240 (55/72)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS |  300 (63/72)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS |  360 (69/72)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS |  420 (69/72)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

  [Symfony\Component\Finder\Exception\AccessDeniedException]
  RecursiveDirectoryIterator::__construct(/tmp/phpcs-pre-receive-hook.UjazU6RA): failed to open dir: Permission denied

  [UnexpectedValueException]
  RecursiveDirectoryIterator::__construct(/tmp/phpcs-pre-receive-hook.UjazU6RA): failed to open dir: Permission denied

I want to know why humbug needs that file, but debugging it is kinda hard :)  Is there any debug mode or something that helps to get at least the line number of the error, not only exception type and a message? Or please show me that place in code where exceptions are catched, so I can get more information about this issue.

@ksimka Exception traces are available by passing -vvv on cli (it's a symfony console app). Above is a Symfony Finder exception. I've added a fix to ignore unreadables. Let me know if that resolves.

You've made a mistype, double ->.

I've fixed locally and yes, this resolves the issue, thanks! You can close after fixing typo.

Darn typo! Fixed now.


error in npm install -d(babel-plugin-transform-es2015-literals)

Make sure these boxes are checked before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if any
[x] I have reproduced the issue with at least the latest released version of superset
[x] I have checked the issue tracker for the same issue and I haven't found one similar

Superset version
0.20
Mac OS 10.12.3
Python 2.7.10
<EMAIL_ADDRESS>Expected results
execute command npm install -d in superset/assets
Actual results
Output:
`
npm http fetch GET 200 https://registry.npmjs.org/babel-plugin-transform-es2015-literals 17ms (from cache)
npm ERR! Unexpected end of JSON input while parsing near '..."sha512-Zc+kpYJymHtHo'
npm ERR!      /Users/gdl/.npm/_logs/2017-11-08T03_28_17_044Z-debug.log
`
2017-11-08T03_28_17_044Z-debug.log:
3701 verbose stack SyntaxError: Unexpected end of JSON input while parsing near '..."sha512-Zc+kpYJymHtHo'
3701 verbose stack     at JSON.parse (<anonymous>)
3701 verbose stack     at parseJson (/usr/local/lib/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js:7:17)
3701 verbose stack     at consumeBody.call.then.buffer (/usr/local/lib/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js:96:50)
3701 verbose stack     at <anonymous>
3701 verbose stack     at process._tickCallback (internal/process/next_tick.js:188:7)
3702 verbose cwd /Users/gdl/Desktop/pyVirtualEnv/superset/superset/assets
3703 verbose Darwin 16.4.0
3704 verbose argv "/usr/local/Cellar/node/8.2.1/bin/node" "/usr/local/bin/npm" "install" "-d"
3705 verbose node v8.2.1
3706 verbose npm  v5.5.1
3707 error Unexpected end of JSON input while parsing near '..."sha512-Zc+kpYJymHtHo'
3708 verbose exit [ 1, true ]

Steps to reproduce
git clone -b 0.20 https://github.com/airbnb/superset superset
cd superset/assets
npm -d install

Upgrade npm and node and use yarn as specified in CONTRIBUTING.md

Thanks a lot


PyBind11 recommendation warning - ABI compatibility issues

I think there should be a note, or warning, about using PyBind11 for C++ with regard to module ABI compatibility.
Essentially, there is none between minor versions of Python since PyBind11 cannot use the Py_LIMITED_API flag.
See:
https://github.com/pybind/pybind11/issues/1755
https://docs.python.org/3/c-api/stable.html
What that means is that anyone who creates a module from a C++ project and targets Python 3.7 will not be able to distribute that module to anyone else using a version other than 3.7.  This makes it nearly impossible to distribute.

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

ID: 40e3b6b1-a3d2-f4f2-b1ad-dd654a062343
Version Independent ID: b2418b84-04f4-60d2-ec1d-291a5d4d0c51
Content: Write C++ extensions for Python - Visual Studio (Windows)
Content Source: docs/python/working-with-c-cpp-python-in-visual-studio.md
Product: visual-studio-windows
Technology: vs-python
GitHub Login: @JoshuaPartlow
Microsoft Alias: joshuapa

Thank you @brandonmpetty for notifying us of the potential compatibility issue. As a result, we will be updating this document to reflect this change. We appreciate you taking the time to help us improve documentation!


Lib update Nov 2018

Copy over the DOM changes from TSJS-lib-generator.
Note that one test changes because it uses DOM types in order to have access to a large tree of types. The test makes sure that the compiler doesn't crash when mapping over very large, wide types.
@DanielRosenwasser let's discuss scheduling for when to merge this PR.

@FrogTheFrog No problem. I don't know if this is written down somewhere already, but I intend to ship DOM updates once per bi-monthly release [1] -- that is, once in 3.1, once in 3.2, once in 3.3, .... This is the final update for 3.2.
I'll probably bring the changes over 2-3 times per release into typescript@next so we can assess any breaks early, but those changes won't make it into bugfix releases.
[1] I don't really know what the term should be since we don't follow semver but do have a regular release cycle.

@sandersn I see. Thanks for the info!


The teleport does not show.

I want to see teleport with portal info but just only portal show in MapleNecrocer.
Could you add a feature about teleport like posted screenshot?
Thanks.

Added


MacOS: Partials create .css files / Connection problems with ruby

I used this extension under Windows without any problems. But under MacOS X Yosemite, I'm experiencing two strange issues:

The extension will create .css and .map files even for scss partials. I'd expect .css files to be created only for .scss files without a leading underscore, as it was the case under Windows.

If I choose ruby as the compiler, compilation breaks quite often due to connection timeouts. The same configuration worked under Windows without any problems.

There is more problem.
Partials:

if updated (example: _bar.scss) then file where partials are imported (example: style.scss) aren't compile (style.css isn't generated, it will if I do it manually).
they generate css + map file (partials is treated like normal scss file.

File is imported by directive @import and use _ in name. My OS: Windows.
For timeout problem it can be changed so it compile without problem.

@Triloworld: Could you please explain how to change the timeout - I could not find any option for this.


HIVE-25907: IOW Directory queries fails to write data to final path when query result cache is enabled

Why are the changes needed?
INSERT OVERWRITE DIRECTORY queries fails to write the data to the specified directory location when query result cache is enabled. This issue is related to HIVE-21386 where query result cache is ignored for insert into, insert overwrite table type queries where as insert overwrite directory case is missed. So this commit fixes that gap by not using query result cache when query is of type insert overwrite directory.
Does this PR introduce any user-facing change?
No
How was this patch tested?
New tests were added to validate the fix

@kgyrtkirk @vineetgarg02 Could you please review the changes?

@kgyrtkirk - Could you please review the changes?
Thanks

@kgyrtkirk  - Can you please review the changes?

@kgyrtkirk - Can you please review the changes?

@kgyrtkirk - Can you please review the changes?

@kgyrtkirk @rbalamohan Could you please review the changes?

@kgyrtkirk - Can you please review the changes?

@kgyrtkirk Could you please review the changes?

@pvary - Looks like pre-commit is broken. I will re-trigger the tests again. Are we good with the changes?

@pvary - Tests passed on re-run. Are we good to take it forward?

@pvary - Thanks for the review.
Are we good to merge this PR?


[1859] Fix spurious output of MCB tests

Context
MCB tests were spilling out into the terminal when MCB sent output to stderr.
Changes proposed in this pull request
Stub out stderr & some tweaks to the tests.
Guidance to review
Checklist

[ ] Make sure all information from the Trello card is in here
[ ] Attach to Trello card
[X] Rebased master
[X] Cleaned commit history
[X] Tested by running locally

 Fix spurious output of MCB tests


Add environment preparation step

For example - when we test our TCP Server we should start it only once and then benchmark should only send requests.

This project is in maint mode and there is no feature development (see repo description). Thanks 🙂


Creating a subclient (File System) without a storage policy

Our team is currently experimenting moving from q scripts to using the API via the cvpysdk module to ease the transition.
One of the qoperation scripts we utilize creates adds subclients without a storage policy so that it inherits the storage policy from client computer group.
When trying to replicate this with the cvpysk the code throws an exception, as the subclient add function requires that a storage policy be a string and exist on the commserve.
https://github.com/Commvault/cvpysdk/blob/fbcbb183d2c66c4156a2b9aa1e5a17b245866a3f/cvpysdk/subclient.py#L726
Are there suggestions on how to replicate our current scripts actions using the cvpysdk module?

Hi @jbeimler
the dev branch has a change that will allow you to pass None to the add method for StoragePolicy
https://github.com/Commvault/cvpysdk/blob/da62aefa3dd7e4774421a075e0969605fd032c3d/cvpysdk/subclient.py#L544
Please re-open if this does not help


Added support for Django 3.1 admin sidebar

Added support for Django 3.1 admin sidebar. Soon, I plan to add support for different config for that sidebar.

I will reopen new PR with django.utils.six removed.