AssertionError for the ONNX training testcases?

AssertionError with the onnx testcase: https://github.com/apache/singa/blob/master/examples/onnx/training/train.py
$ cd examples/onnx
$ python3 training/train.py --model vgg16

Then I get the following error msg:
File "training/train.py", line 437, in <module>
    args.onnx_model_path, args.data, sgd, args.graph, args.verbosity)
  File "training/train.py", line 295, in run
    model.compile([tx], is_train=True, use_graph=graph, sequential=sequential)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/model.py", line 177, in compile
    self.forward(*inputs)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 63, in wrapper
    return func(self, *args, **kwargs)
  File "training/train.py", line 191, in forward
    y = self.linear(y)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 110, in __call__
    return self.forward(*args, **kwargs)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 61, in wrapper
    self.initialize(*args, **kwargs)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 45, in wrapper
    'initialize function expects PlaceHolders or Tensors')
AssertionError: initialize function expects PlaceHolders or Tensors

Something maybe wrong with the layer initialization?
singa version: 3100(the latest build from the source code of master branch)
Python version: 3.5.2
ONNX version: 1.5.0

Thanks for the report, let me check.

@joddiy I got the same issue when running examples/onnx models. Only the default model ('resnet18v1') runs, all others failed for the mentioned reason. I think model urls might need to be updated too, since some are out-dated ('vgg19' & 'vgg19bn', for example)

AssertionError with the onnx testcase: https://github.com/apache/singa/blob/master/examples/onnx/training/train.py
$ cd examples/onnx
$ python3 training/train.py --model vgg16

Then I get the following error msg:
File "training/train.py", line 437, in <module>
    args.onnx_model_path, args.data, sgd, args.graph, args.verbosity)
  File "training/train.py", line 295, in run
    model.compile([tx], is_train=True, use_graph=graph, sequential=sequential)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/model.py", line 177, in compile
    self.forward(*inputs)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 63, in wrapper
    return func(self, *args, **kwargs)
  File "training/train.py", line 191, in forward
    y = self.linear(y)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 110, in __call__
    return self.forward(*args, **kwargs)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 61, in wrapper
    self.initialize(*args, **kwargs)
  File "/home/extend/lijiansong/work-space/anaconda2/envs/intel-caffe/lib/python3.6/site-packages/singa/layer.py", line 45, in wrapper
    'initialize function expects PlaceHolders or Tensors')
AssertionError: initialize function expects PlaceHolders or Tensors

Something maybe wrong with the layer initialization?
singa version: 3100(the latest build from the source code of master branch)
Python version: 3.5.2
ONNX version: 1.5.0

Hi, @lijiansong , I cannot reproduce the error, I can see another error like this:
WARNING: Logging before InitGoogleLogging() is written to STDERR
W1013 10:55:05.660770  6279 convolution.cc:560] The required memory for workspace<PHONE_NUMBER>) is larger than the expected Bytes<PHONE_NUMBER>)
F1013 10:55:05.660809  6279 device.cc:88] Check failed: size >= 0 (-1961885692 vs. 0) size is negative, could be caused by the type cast from size_t to int. In that case, the size is too large.
*** Check failure stack trace: ***
Aborted (core dumped)

The full log is:
root@567b66a2525c:/singa# cd examples/onnx/
root@567b66a2525c:/singa/examples/onnx# python3 training/train.py --model vgg16
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553437328
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553437328
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553437328
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553438994
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553438996
WARNING: Logging before InitGoogleLogging() is written to STDERR
W1013 11:00:16.066620  6308 convolution.cc:560] The required memory for workspace<PHONE_NUMBER>) is larger than the expected Bytes<PHONE_NUMBER>)
F1013 11:00:16.066661  6308 device.cc:88] Check failed: size >= 0 (-1961885692 vs. 0) size is negative, could be caused by the type cast from size_t to int. In that case, the size is too large.
*** Check failure stack trace: ***
Aborted (core dumped)

@joddiy I got the same issue when do training for examples/onnx models. Only the default model ('resnet18v1') runs, all others failed for the mentioned reason. I think model urls might need to be updated too, since some are out-dated ('vgg19' & 'vgg19bn', for example)

Hi, @pinpom, can you reproduce the same error or the error like the one I comment above?

@joddiy: FYR as below. i ran on panda13, when GPU memory was enough for the model:
$ cd singa $ python examples/onnx/training/train.py --model resnet152v1
Error:
"
thao@panda13:/hdd2/thao/singa$ python examples/onnx/training/train.py --model resnet152v1
2020-10-13 20:09:27,800 Downloading https://s3.amazonaws.com/onnx-model-zoo/resnet/resnet152v1/resnet152v1.tar.gz
Traceback (most recent call last):
File "examples/onnx/training/train.py", line 352, in
args.data, sgd, args.graph, args.verbosity)
File "examples/onnx/training/train.py", line 216, in run
model.compile([tx], is_train=True, use_graph=graph, sequential=sequential)
File "/hdd2/thao/conda/miniconda3/envs/sing/lib/python3.7/site-packages/singa/model.py", line 177, in compile
self.forward(*inputs)
File "/hdd2/thao/conda/miniconda3/envs/sing/lib/python3.7/site-packages/singa/layer.py", line 61, in wrapper
return func(self, *args, **kwargs)
File "examples/onnx/training/train.py", line 119, in forward
y = self.linear(y)
File "/hdd2/thao/conda/miniconda3/envs/sing/lib/python3.7/site-packages/singa/layer.py", line 108, in call
return self.forward(*args, **kwargs)
File "/hdd2/thao/conda/miniconda3/envs/sing/lib/python3.7/site-packages/singa/layer.py", line 59, in wrapper
self.initialize(*args, **kwargs)
File "/hdd2/thao/conda/miniconda3/envs/sing/lib/python3.7/site-packages/singa/layer.py", line 43, in wrapper
'initialize function expects PlaceHolders or Tensors')
AssertionError: initialize function expects PlaceHolders or Tensors"
env:

python 3.7
singa 3.1.0.rc1 (conda)
singa git - dev branch

@pinpom If you print the Assertion expression at /hdd2/thao/conda/miniconda3/envs/sing/lib/python3.7/site-packages/singa/layer.py of line 43,
assert len(args) > 0 and isinstance(args[0], Tensor), (
                    'initialize function expects PlaceHolders or Tensors')

you may find that args[0] here is not an instance of singa.tensor.Tensor. Someone else please help to fix this bug?

Thanks for the reply, I'm checking it.

@lijiansong @pinpom
I guess the problem is here: https://github.com/apache/singa/blob/3654b91e63f8f715f668cf464730fed5ca36a418/examples/onnx/training/train.py#L117-L118
Because each model actually has a different operator's name, before I assume if the user wants to train another model, they should update this name firstly. Let me think how to optimize it.

@lijiansong @pinpom
it should be fixed at this PR: #808

@joddiy Thanks for your patch PR at #808, another failure problem occurs(as you mentioned above):
$ cd examples/onnx
$ python3 training/train.py --model vgg16 --data cifar10 --bs 1

the full log is:
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553512191
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553512191
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553512191
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553514489
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553514491
 ^M  0%|          | 0/50000 [00:00<?, ?it/s]WARNING: Logging before InitGoogleLogging() is written to STDERR
 F1014 15:29:10.526221 23807 cuda_gpu.cc:207] Check failed: error == cudaSuccess (700 vs. 0)  an illegal memory access was encountered
 *** Check failure stack trace: ***

env:
singa version: 3100(the latest build from the source code of master branch)
Python version: 3.5.2
ONNX version: 1.5.0

@lijiansong @pinpom
it should be fixed at this PR: #808

@joddiy Thanks for your patch PR at #808, another failure problem occurs(as you mentioned above):
$ cd examples/onnx
$ python3 training/train.py --model vgg16 --data cifar10 --bs 1

the full log is:
[libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553512191
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553512191
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553512191
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553514489
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:537] Reading dangerously large protocol message.  If the message turns out to be larger than<PHONE_NUMBER> bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::           SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
 [libprotobuf WARNING google/protobuf/io/coded_stream.cc:78] The total number of bytes read was 553514491
 ^M  0%|          | 0/50000 [00:00<?, ?it/s]WARNING: Logging before InitGoogleLogging() is written to STDERR
 F1014 15:29:10.526221 23807 cuda_gpu.cc:207] Check failed: error == cudaSuccess (700 vs. 0)  an illegal memory access was encountered
 *** Check failure stack trace: ***

env:
singa version: 3100(the latest build from the source code of master branch)
Python version: 3.5.2
ONNX version: 1.5.0

@lijiansong @pinpom
it should be fixed at this PR: #808

I found this issue yesterday, however, this is caused by GPU memory, @dcslin has any idea?

In the Singa internal source code, there are 4 enumeration types of Block type, that is kInput, kParam, kInter, kEnd. Here kInput, kParam and kInter is easy to follow. kInput is the input data of DNN workloads, kParam is the weight parameters, kInter is the intermediate results during DNN workloads. But what does kEnd mean here?
https://github.com/apache/singa/blob/f04d197ee15777504bf80a8cb77666b8cacb4b94/include/singa/core/scheduler.h#L55
@joddiy

In the Singa internal source code, there are 4 enumeration types of Block type, that is kInput, kParam, kInter, kEnd. Here kInput, kParam and kInter is easy to follow. kInput is the input data of DNN workloads, kParam is the weight parameters, kInter is the intermediate results during DNN workloads. But what does kEnd mean here?
https://github.com/apache/singa/blob/f04d197ee15777504bf80a8cb77666b8cacb4b94/include/singa/core/scheduler.h#L55
@joddiy

Sorry, I have no idea about the c++ code.
Hi, @chrishkchris, can you help check it?

All the blocks are used to construct the computational graph. I think kEnd means the end nodes of the graph
like this example: https://stackoverflow.com/questions/57678534/find-end-node-in-directed-graph
@XJDKC  The code was written by you, so you may know clearer. Did I describe it right?

All the blocks are used to construct the computational graph. I think kEnd means the end nodes of the graph
like this example: https://stackoverflow.com/questions/57678534/find-end-node-in-directed-graph
@XJDKC The code was written by you, so you may know clearer. Did I describe it right?

@chrishkchris @lijiansong It's correct. Take the computational graph below for example:

The type of the pink block in the picture is kEnd which means this block is not used by any other operators in the graph. This kind of block is considered as the endpoint of the graph. I distinguish it from other types to better optimize the memory footprint of model training.

@XJDKC @chrishkchris @joddiy Get it, thanks.

@XJDKC @chrishkchris @joddiy Get it, thanks.

Welcome!

Hi Singa team. I also encountered the error info:
WARNING: Logging before InitGoogleLogging() is written to STDERR
W0217 18:35:53.217267  6606 convolution.cc:560] The required memory for workspace<PHONE_NUMBER>) is larger than the expected Bytes<PHONE_NUMBER>)
W0217 18:35:53.218562  6606 convolution.cc:560] The required memory for workspace<PHONE_NUMBER>) is larger than the expected Bytes<PHONE_NUMBER>)
F0217 18:35:53.218595  6606 device.cc:88] Check failed: size >= 0 (-1961885692 vs. 0) size is negative, could be caused by the type cast from size_t to int. In that case, the size is too large.
*** Check failure stack trace: ***
Aborted (core dumped)
I saw this bug seemed to be fixed in https://github.com/apache/singa/pull/808/files . But this Pull Request is not included in released Version 3.1.0 https://github.com/apache/singa/compare/3.1.0...master .
So could you guys incorporate this fixing into new version for people to use it?


Apple Music is not available in your country or region.

As title says
Try'd to log in and it gave me this error I live in the US any help/fixes?
No VPN is on Btw

Ctrl + Alt + S -> [x] Auth Mode -> Apply -> Relaunch -> Login -> Ctrl + Alt + S -> [] Auth Mode -> Relaunch

please refer to #155


Added site creation page

Pre-Flight checklist

[x] Screenshots and design review for any changes that affect layout or styling
[x] Testing

[x] Code is tested
[x] Changes have been manually tested

What are the relevant tickets?
Closes #45
What's this PR do?

Adds the site creation page
Adds the formik library

How should this be manually tested?

Make sure you have at least 1 starter in your db
Navigate to /sites/
Enter a title and submit

A new website should be created, and you should be redirected to the detail page for that site right away.
Any background context you want to provide?

I removed pagination on the WebsiteStarter API results. We can add it back if we need it, but it seems unlikely that we'd have so many starters that we would really need to page through them
I changed up the styling of the sidebar + content in the site page. There were some quirks in the way the elements were lining up with the header, and while fixing that I realized that it doesn't make much sense for the sidebar to grow proportionally with the browser window, so I changed it to use flexbox instead of a bootstrap container+columns
I'm hoping we can establish some patterns for (a) testing forms, and (b) displaying API response errors as form errors. The patterns used in this PR should get some extra scrutiny so we can be sure we're comfortable with them for future use cases.

Screenshots (if appropriate)

@noisecapella I fixed those issues, and also added a migration to make Website.title required. Didn't make much sense to ask for the title and autogenerate the name/slug from it if it wasn't required in the db

@noisecapella Ready for review again


feat(frontend): draft for SOL balance worker and scheduler

WIP
Motivation

Changes

Tests

Incorporated this branch in #4037. Will close it.


Question: want to setup Htpasswd but having issues with it

Hi,
Want to setup Htpasswd but having issues with it
If i edit the files with an note editor and add username password then rutorrent is asking for a username and password but then it fails.
When using the command: docker run --rm -it httpd:2.4-alpine htpasswd -Bbn   >> $(pwd)/passwd/webdav.htpasswd
Then get the reply -ash: syntax error near unexpected token `<'
If change the line   for test test then it tells me no such file or directory.
Im running docker from my synology nas and ssh into the nas to perform this action

while the container is down. so docker-compose down. use
docker run --rm -it httpd:2.4-alpine htpasswd -Bbn USER PASS >> $(pwd)/passwd/webdav.htpasswd
bring container up
use docker exec -it CONTAINERID bash once in do cd passwd/ then vi webdav.htpasswd
copy the info line that has your username and pass(as salt) and paste it into the other .htpasswd files in the same folder

thanks now working but had to remove and reinstall using docker-compose wasn't using that before

if this is fixed please mark as solved to close this issue

thanks now working but had to remove and reinstall using docker-compose wasn't using that before

Can you please tell me step by step how you did it. I used the cfw34683 post and generated a password, but unfortunately when I run the rtorrent GUI, I still don't need to enter the password.


chore(deps): bump cohesion from 4.39.0 to 4.40.0

Bumps cohesion from 4.39.0 to 4.40.0

PR was created automatically #artsy/force/9642


Idea: Show deprecated fields when generating code

Is your feature request related to a problem? Please describe.
It might be out of the scope of this package.
We recently started using deprecated fields, but we did not find any tool that would show this client side. It makes sense to see deprecated fields in relation to what's actually used in queries/mutations.
Describe the solution you'd like
There is a handy function findDeprecatedUsages in graphql package which expects schema and a document. It would be great if I could see it as a part of generation output, possibly hidden behind some flag.
Describe alternatives you've considered
Probably some standalone tool which means that it will have to read & parse each document again to do this.

Sounds like a great idea @FredyC !
I think we can use https://github.com/kamilkisiela/graphql-inspector to perform these checks. @kamilkisiela ?

Interesting tool, not sure what are exact differences with graphql package which also has findBreakingChanges and findDangerousChanges. However, it works by comparing two schemas, not schema and doc. I think I would rather see deprecated fields I am actually using and where I am using them instead of a full list of what got deprecated.

@FredyC
https://github.com/kamilkisiela/graphql-inspector/pull/28
You run $ graphql-inspector validate schema.json src/**/*.graphql and you get a list of errors per each document and list of fields that have been deprecated and are used.
Why I didn't use findBreakingChanges and findDangerousChanges? Because it's not that hard to implement it myself and I get more control over the result and messages. I also need to track changes that are not affecting API consumers.

@kamilkisiela That looks promising. Thanks, will give it a try 👍

@kamilkisiela That was tricky. I used the command in a form you mentioned here and it was screaming Couldn't handle src/**/*.graphql. It took me some time to figure out that it's an opposite order, schema goes as a second 😈
Anyway, it's not really working, either way. There is something wrong with my introspection file. This is probably the wrong spot for trying to solve this, just in case if you have seen this before, some hint would be great.
Introspection result missing directive locations: { name:
"include", description: "Directs the executor to include this field or fragment only when the `if` argument is true.", args: [{
name: "if", description: "Included when true.", type: { kind: "NON_NULL", name: null, ofType: { kind: "SCALAR", name: "Boolean", ofType: null } }, defaultValue: null }] }

Nevermind, found it, some shenanigans in our custom tooling code.
Either way, I think it would be lovely to integrate this part of the inspector into the generator as I originally said. If anything, it would save some processing time and it kinda makes sense to me to get warned about deprecations right away when I am writing queries, not later when I am done coding :)

@FredyC closing for now. You can use graphql-inspector, and I think it can provide better experience by integrating it with GitHub Actions.

@dotansimha That's cool, but we don't use GitHub for production apps. Although we might switch given it's getting better and better with Microsoft intervention and there are private repos for free also.

@FredyC what do you use? maybe @kamilkisiela can help with that

@FredyC I could support Bitbucket but I would need some help

Yea, we do use BitBucket, but don't worry about it now. Currently, I am just running inspector check after schema update, it's sufficient for now.

@FredyC don't worry, @kamilkisiela already planned to support BitBucket: https://github.com/kamilkisiela/graphql-inspector/issues/54 ;)


Added support for a new field in ios config that allows for attributes t...

...o be on the model but  not on the datamodelfixes #15

👍

:+1: Nice one, just did some minor formatting and some docs for what you added as well.


Add SD team and fix issues with previous hub-of-hubs work

Summary of Changes
New Function
This PR adds a ManagedClusterSet and related binding for the service-delivery team, as well as a service-delivery namespace and related rolebinding to provide access to collective for the service delivery team.
Patches
During the creation of a previous hub-of-hubs team and resources, we caused a collision with the hub-of-hubs project on the cluster, causing it to be recycled and wiped.  Now that it has recycled, it is under ArgoCD control, so this PR adds it back and removes a lagging artifact (the rolebinding for said namespace), although due to similarities, git views it as a modification of a file, rather than a new file.

lgtm


missing backslash in dockerfile

https://github.com/aws-samples/aws-batch-using-nice-dcv/blob/75459f56fb9ff1ec426e50a2b89e35cc0c96d6e7/aws-batch-using-nice-dcv.dockerfile#L73

Fixed. Thanks a lot. Create new release too.


Provision for running more than one app under sbt at once?

My project has two apps; one is dependent on the other.
$ sbt run
[info] Loading global plugins from C:\Users\Mike Slinn\.sbt\plugins
[info] Loading project definition from E:\work\experiments\scala\hanuman\project
[info] Set current project to hanuman (in build file:/E:/work/experiments/scala/hanuman/)

Multiple main classes detected, select one to run:

 [1] net.interdoodle.hanuman.AppServer
 [2] net.interdoodle.httpstaticfileserver.HttpStaticFileServer

App 2 must be run before app 1. How can I set up sbt to run them in this order?

For full flexibility, you'd want to implement a task yourself.  However, I could see extending run-main to allow a comma-separated list of main classes to run in that order.  That is an interactive task, however, and perhaps you are looking for something not requiring manual intervention.  As another alternative or in addition to the run-main option, the mainClass setting could be allowed to be a comma or whitespace separated list of main classes.

Closed, no response.


add 5.1, use more explicit version definition for existing

The start of fixing #329
defining a gem as ~> 5.0 would allow bundler to install 5.1, which is not what we want, and made the build fail all of a sudden. So I updated it to use more explicit version definitions.
Also added 5.1, which is still failing, but that will be step 2.

To have the build succeed for now, we could set rails 5.1 to allow failures in the build matrix

Looks good so far! Should I wait until we fix 5.1 ("step 2"), or should I merge this PR as-is?

I implemented a solution for the migration version issue, but now there's an issue with minitest after the test succeeds, which fails the build:
t/minitest_plugin.rb:9:in `aggregated_results': wrong number of arguments (1 for 0) (ArgumentError)

But when that's figured out I'd say let's merge, and make the failed test with rails 5.1 a separate task.

Is this a warning we need to worry about?

Warning: Your gemfiles directive in .travis.yml is incorrect. Run appraisal generate --travis to get the correct configuration.

Is this a warning we need to worry about?

Where do you see that?

But I think it's barking because the gemfiles are in the matrix, and not in the normal list of gemfiles.

I see it when I run bundle exec appraisal install.

It looks like the minitest failure is due to this bug in Rails 5.1: https://github.com/rails/rails/pull/29022
We can fix it by pinning the version of minitest to < 5.10.2, like this:
diff --git a/Appraisals b/Appraisals
index 4eb48e3..1b74b4b 100644
--- a/Appraisals
+++ b/Appraisals
@@ -23,4 +23,5 @@ end

 appraise "5.1" do
   gem "rails", "~> 5.1.0"
+  gem "minitest", "< 5.10.2"
 end

However that still leaves us with one legitimate test failure for 5.1:
Failure:
BootstrapFormTest#test_bootstrap_form_tag_allows_an_empty_name_for_checkboxes [test/bootstrap_form_test.rb:47]:
 <form accept-charset="UTF-8" action="/users" method="post" role="form">
-

-    <input name="utf8" type="hidden" value="✓"/>
-

+  <input name="utf8" type="hidden" value="✓"/>

-    <input name="[misc]" type="hidden" value="0"/><input id="_misc" name="[misc]" type="checkbox" value="1"/> Misc
+    <input name="misc" type="hidden" value="0"/><input id="misc" name="misc" type="checkbox" value="1"/> Misc

 </form>

This would fix the remaining test failure, but it is a brute-force solution. I am not 100% certain that in maintains the spirit of the test.
diff --git a/test/test_helper.rb b/test/test_helper.rb
index e38085c..5900f03 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -83,4 +83,9 @@ class ActionView::TestCase
       ).to_s(:color)
     }
   end
+
+  def rails_version?(spec)
+    requirement = Gem::Requirement.new(spec)
+    requirement.satisfied_by?(Gem::Version.new(Rails::VERSION::STRING))
+  end
 end

diff --git a/test/bootstrap_form_test.rb b/test/bootstrap_form_test.rb
index b2bcd5c..663aea2 100644
--- a/test/bootstrap_form_test.rb
+++ b/test/bootstrap_form_test.rb
@@ -43,7 +43,11 @@ class BootstrapFormTest < ActionView::TestCase
   end

   test "bootstrap_form_tag allows an empty name for checkboxes" do
-    expected = %{<form accept-charset="UTF-8" action="/users" method="post" role="form">
<input name="utf8" type="hidden" value="✓" />

<input name="[misc]" type="hidden" value="0" /><input id="_misc" name="[misc]" type="checkbox" value="1" /> Misc
</form>}
+    expected = if rails_version?(">= 5.1")
+      %{<form accept-charset="UTF-8" action="/users" method="post" role="form"><input name="utf8" type="hidden" value="✓"/>
<input name="misc" type="hidden" value="0"/><input id="misc" name="misc" type="checkbox" value="1"/> Misc
</form>}
+    else
+      %{<form accept-charset="UTF-8" action="/users" method="post" role="form">
<input name="utf8" type="hidden" value="✓" />

<input name="[misc]" type="hidden" value="0" /><input id="_misc" name="[misc]" type="checkbox" value="1" /> Misc
</form>}
+    end
     assert_equivalent_xml expected, bootstrap_form_tag(url: '/users') { |f| f.check_box :misc }
   end

A bit less brute force would be just only taking the checkbox into the conditional;
    checkbox = if ::Rails::VERSION::STRING >= '5.1'
      %{
<input name="misc" type="hidden" value="0" /><input id="misc" name="misc" type="checkbox" value="1" /> Misc
}
    else
      %{
<input name="[misc]" type="hidden" value="0" /><input id="_misc" name="[misc]" type="checkbox" value="1" /> Misc
}
    end

Or even less with only the label.

I don't think it's a problem to have it in as "brute force", because it looks like they finally made the output of a checkbox without a group or model look normal, so I don't expect other variants on this.

OK, I took a closer look at the HTML and I think the "brute force" conditional is fine. Can you take care that change?

updated tests and we no longer allow failures, so should be good to go!

Excellent! Thank you 🙇


DTFS2-4380 - central api bank endpoints, TFM mapping bank in GEF deal

central API get & create bank
fetch and return bank by id when getting a GEF deal
map bank name in UI graphql reducer

RE Authentication - I suspect the central API might be locked down in Azure @pricea1 ?


Play Scene Keypad

Adjust the position and sizes of they keys in the keypad. Occasionally, the lower row's outer  elements sit below the window's bottom border. In other cases, the rows only have 12 buttons, pushing their 13th button to a line of its own, extending the keypad well below the bottom border.

Testing has this working properly.


Rarely strange floats in time played

I get via ovrstat:

From playoverwatch.com:

Okay, it's Blizzard problem. I saw different fields.


Release 8.0.1

Includes

https://github.com/silinternational/ui-components/pull/175

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Newbie Q: Very confused about setting user ID.

Steps to reproduce
(First please check that this issue is not already solved as described
here)

[x] Tell us what broke. The more detailed the better.
[ ] If you can, please create a simple example that reproduces the issue and link to a gist, jsbin, repo, etc.

Expected behavior
Following the migration docs:
const { authenticate } = require('@feathersjs/authentication').hooks;
const { setField } = require('feathers-authentication-hooks');

module.exports = {
  before: {
    all: [ authenticate('jwt') ],
    find: [],
    get: [],
    create: [
      setField({
        from: 'params.user.id',
        as: 'params.userId'
        })
      ],
    update: [],
    patch: [],
    remove: []
  },

I get this error:
Forbidden: Expected field user.id not available // data.userId
Forbidden: Expected field params.userId not available // params.user.id
etc.
I've tried for the as prop: params.userId and data.user.id and userId
Honestly, the whole setField thing is way more confusing than the earlier methods.
Tell us what should happen
No idea. Still trying for figure out what as expects as a parameter.
Actual behavior
Tell us what happens instead
See above.
System configuration
Tell us about the applicable parts of your setup.
Module versions (especially the part that's not working):
Feathers 4.2.3
Feathers-authentication-hooks 1.0.1
Databaase is NeDB v5.1.0
NodeJS version:
12.x
Operating System:
Ubuntu16.04
Browser Version:
Chrome, up to date.
React Native Version:
Module Loader:

If you are using NeDB it's not  'params.user.id' but params.user._id.
If this is confusing I recommend to get more familiar with the hooks API, how params are set (e.g. through a REST request), the authentication guide and how Feathers database adapter query syntax works.

Thanks for the reply: Still getting Forbidden: Expected field params.user._id not available
This is my hook code:
const { authenticate } = require('@feathersjs/authentication').hooks;
const { setField } = require('feathers-authentication-hooks');

module.exports = {
  before: {
    all: [ authenticate('jwt') ],
    find: [],
    get: [],
    create: [
      setField({
        from: 'params.user.id',
        as: 'params.user._id'
        })
      ],
    update: [],
    patch: [],
    remove: []
  },

Ah, the issue was in from, not as:
  setField({
        from: 'params.user._id',
        as: 'data.userId'
        })
      ],

The above works.


docs: Add OS Management Overview page

Depends on https://github.com/aws/eks-anywhere/pull/6205

/approve

/cherry-pick release-0.17


How Implement SKAN in Appsflyer ?

How is the SKAN implementation, my application has received ATT permission using the library https://www.npmjs.com/package/react-native-tracking-transparency
, but in the dashboard the data does not enter
Been emailed with CS but it didn't help at all
message in dashboard appsflyer.
Your app isn’t set up to send iOS postback copies (iOS 15+) to AppsFlyer. This is required to assure the integrity of your SKAN measurement
const getPermissionTransparancy = useCallback(async () => {
    const trackingStatus = await getTrackingStatus();

    if (trackingStatus !== 'authorized' && !permissions.iosTransparancy) {
      const trackingStatusPermission = await requestTrackingPermission();
      if (trackingStatusPermission) {
        setShowDialogTransparancy(true); // for state
        dispatch(actionsBootstrap.setShowPermissionTransparancy(true)); //for redux
        dispatch(
          actionsBootstrap.setPermissionsIosTransparancy(
            trackingStatusPermission,
          ), //for redux
        );
      }
    }
  }, [dispatch, permissions]);

my depedency
"react-native": "0.71.10",
"react-native-tracking-transparency": "^0.1.2",
"react-native-appsflyer": "^6.10.3",

Please take a look in the help center


Definition of "Public"

Many of the so-called public APIs aren't public at all; some of them are restricted and others require pre-approval. What is the definition of "public" being used for this project? I'm raising awareness about this because it's highly misleading to label something as public, which typically implies free usage, when in reality many APIs aren't so.
Please make no mistake that I truly appreciate the effort put into this project, but I fail to see how paid or pre-approved APIs can be considered public.

Public means it can be accessed from outside the organization/company/project that created it, sometimes it's paid, sometimes it's free, some require some kind of approval or access key, and some can be accessed straightaway without restrictions.


Convert Top Nav Bar

Addresses
https://broadinstitute.atlassian.net/browse/BTRX-622
Changes
Create Top Nav Bar and Handle authentication router.
Testing
Describe for the reviewer how to test the specifics of this PR, both positive and negative cases.

[ ] Submitter: Verify all tests go green, including CI tests
[ ] Submitter: Get a thumb from Belatrix
[ ] Submitter: Get a thumb from @rushtong
[ ] Submitter: Merge to develop using github's "Squash and Merge" feature
[ ] Submitter: Delete branch after merge

@rushtong This PR is ready for review. If you think we need to split something else, please let me know! Thanks!


Reorganize package

In this pull request, I've reorganized the gimli package.

The preferred method for importing the units system is now from gimli.units import units
Added some new private modules, relocated stuff (mostly moving code out of _udunits2.pyx) that should not change the public API
The units system now inherits from UserDict and is a MappingProxyType to make it read-only

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls


Move go to src folder, pre-commit hook

As discussed in #61, this PR

separates the Go code from the rest of the project by moving it to a src/ folder
adds a pre-commit hook to run tests and go fmt before a change can be commited

As soon as #48 is merged, I will also run go vet in the pre-commit hook.
This will greatly improve the code quality / standard conformity.

On my machine, the tests currently take about 3 seconds.
We need to find a way to cut this down.

Once you rebase and this is merged, I've got a local branch that speeds up those tests.

https://github.com/bndw/pick/pull/66/commits/8ef1d582d3bec1aeb240c03e0b0177df0dfd78da Should make the pre-commit hook bearable.

Rebased.

LGTM


Creating the "Export" Button

Running the IDEAR notebook in Python3 --- I did a conversion of all code files with 2to3, and am manually converting the prints in the notebook.
When trying to generate the widgets in "In[17]" ... the export button does not generate properly.
I can still run that cell if I take the export button out of the code... but it means exporting any analysis is missing!

Why was this issue closed?

I closed it because I thought it had gotten fixed (when I ran a different
copy on another computer it worked ok).
Turns out... this isn't as fixed as I thought. I had a LOT of student still
having trouble with this export button.
I also had a lot of students have issues with missing packages etc (it'd be
good to have a "package check" at the beginning).
This code really isn't ready for prime-time in terms of "grab and go" for
use.
==================================================
To schedule a meeting or appointment try:
https://karlrbschmitt.youcanbook.me/
Dr. Karl Schmitt
Assistant Professor
Department of Mathematics and Statistics
Department of Computing and Information Sciences
Director of Data Science Program
Director of Analytics and Modeling Graduate Program
Valparaiso University, Indiana
On Mon, Feb 12, 2018 at 2:36 AM, Codegraven<EMAIL_ADDRESS>wrote:

Why was this issue closed?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Azure/Azure-TDSP-Utilities/issues/35#issuecomment-364857067,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMRGUyg6uXk5a6AtFAi_ywAEFJ25Y_ZXks5tT_gbgaJpZM4RtPED
.


[AST] NFC: Do not reinterpret_cast pointers into CanTypeWrappers

This also introduces 'TypeArrayView' for when a Type is statically known to be a given TypeBase subclass.
Hi @DougGregor – As far as I can tell, is the last reinterpret_cast violation of the Type type wall. I think the change is net positive, but given the viral-like nature of the newly introduced TypeArrayView type, I'd appreciate your blessing. After this change, one should be able to easily experiment with nontrivial Type implementations, including "compressed pointers" (less than sizeof(void*) bits) or cached metadata (getKind(), is canonical, isLValue, etc). Thanks for reviewing this!

Unless I'm overlooking something, the failure mode is that the code doesn't compile. The key here is that getGenericParams() and friends return TypeArrayView<GenericTypeParamType> which is a static projection of the underlying Type array. From there, the TypeArrayView type propagates virally until the code compiles again.
From the perspective of callers and peer APIs, I found that:

"90%" of the compiler failures merely need a parameter / return value updated.
"9%" of the compiler failures can be avoided by switching to the auto keyword.
The remaining "1%" of code (for example: GenericSignatureBuilder) that actually have a SmallVector<GenericTypeParamType*> need to sometimes create a temporarily array of Type and then use the TypeArrayView<GenericTypeParamType> projection to call into generics APIs, otherwise the code won't compile.

From the perspective of Type class implementers that want to return TypeArrayView, they need to have their constructors/setters ensure type safety. They can do so statically via TypeArrayView<T> or an ArrayRef<T*> (for example: GenericSignature::get() in this pull request does both), or implementors can dynamically verify than an ArrayRef<Type> parameter only contains "T" Types before letting getters return TypeArrayView<T>.


build: bump Go versions

This commit adds the latest Go version to the builds (1.22)
and removes the oldest one (1.19), so now the minimum
version is 1.20.

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


Remove use of std::filesystem since it is not portable

Eh I don't like std::filesystem enough to just merge this.


Change interval

Hi!
I am using the healthcheck/mysql. The interval for healthcheck seems to be set to 30s by default from my observation. I am wondering is there a way to change the interval?
Thanks!!

It looks like they can be adjusted on the docker run (and should also work on docker service create):
      --health-cmd string                     Command to run to check health
      --health-interval duration              Time between running the check (ns|us|ms|s|m|h) (default 0s)
      --health-retries int                    Consecutive failures needed to report unhealthy
      --health-timeout duration               Maximum time to allow one check to run (ns|us|ms|s|m|h) (default 0s)
      --no-healthcheck                        Disable any container-specified HEALTHCHECK

Those same flags can be added directly into Dockerfile
https://docs.docker.com/engine/reference/builder/#healthcheck

Indeed, these values can be changed directly in the Dockerfile itself, but since these are simply example prototypes, I think we'll stick to the defaults for now. :+1: :heart:


Created online demo based on example code in readme, added demo link …

…to readme

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: g-elwell sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


feat: add options configuration and artifact listing enhancement

Description
This pull request introduces an options configuration pattern to the TrivyK8S client and a new configuration option, WithExcludeOwned
Enabling ExcludeOwned allows users to disregard resources with ownerReferences.

lgtm 🚀


refactor: Re-enable pylint on 5 files

SUMMARY
Re-enables pylint on 5 files with global disables. Some checks are fixed, others disabled on a per-instance basis.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
N/A
TEST PLAN
CI, PR review
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Reviewers
@john-bodley @craig-rueda @dpgaspar

Codecov Report

Merging #10106 into master will increase coverage by 4.90%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #10106      +/-   ##
==========================================
+ Coverage   65.79%   70.70%   +4.90%
==========================================
  Files         590      400     -190
  Lines       31152    12909   -18243
  Branches     3169     3174       +5
==========================================
- Hits        20497     9127   -11370
+ Misses      10477     3665    -6812
+ Partials      178      117      -61

Flag
Coverage Δ

#cypress
53.06% <ø> (?)

#javascript
59.62% <ø> (+0.06%)
:arrow_up:

#python
?

Impacted Files
Coverage Δ

superset/views/dashboard/views.py

superset/charts/api.py

superset/views/sql_lab.py

superset/views/database/forms.py

superset/viz.py

superset/connectors/sqla/__init__.py

superset/datasets/schemas.py

superset/datasets/commands/update.py

...migrations/versions/fb13d49b72f9_better_filters.py

superset/dashboards/filters.py

... and 321 more

Continue to review full report at Codecov.

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

I think I've addressed comments - ready for another pass.


[Enhancement/功能请求] momentum/speed also works when you jump

Checks/检查

[X] I confirm that I have searched for existing issues / pull requests before reporting to avoid duplicate reporting./我确认在报告之前我已经搜索了现有的问题或者拉取请求，以避免重复报告。
[X] I confirm that I noted that if I don't follow the instructions, the issue may be closed directly./我确认我已经检查，如果我不按照说明进行操作，该问题可能会被直接关闭。

Description/描述
Could you make it so that the momentum/speed also works when you jump? Currently, when you jump, you lose all momentum/speed boost. Thank you very much for this remake of the mod!

I would love to see this too, small thing but would be very nice.

I would love to see this too, small thing but would be very nice.
Thank you for the remake though!

now you can use ctrl to speed up, and the momentum/speed works when you jump at ctrl mode.


misalignment and unapropriate occurence of bx selector

bx bx-menu and bx bx-x bug issue
There are little misalignment and unapropriate appearance of bx bx-menu and bx bx-x selector on header. The bug occured in between the width of 769 to 1023 .
To Reproduce
Steps to reproduce the behavior:

Go to 'https://surpathhub.github.io/'
Inspect Element or press F12 on your keyboard
Click on 'Toggle device emulation'

Change the width and calibrate it in between 769 to 1023

See the bug

Expected behavior
The bx bx-menu and bx bx-x bug should be in an appropriate position and occur in specific position when the screen has been resized.
Working Environment
Browser (eg. Chrome): Microsoft Edge

Would you like to take this issue?

Would you like to take this issue?

Sure bro!

#57 fixed


MessageResolverArgs do not contain field value property

Environment

OS: Win 10
Node: 10.15.3
NPM: 6.4.1
react-advanaced-form: 1.7.1

What
MessageResolverArgs do not contain a value property of the field
Current behavior
MessageResolverArgs do not contain field's value property when a MessageResolver is executed.
As described in Docs MessageResolverArgs should contain the value prop. I used the code below and saw only fieldProps and form in the o's keys and no  value prop.
Although there is a needed value prop inside a fieldProps object the current behaviour doesn't match the one described in the Docs. As a result I get "The e-mail undefined has invalid format" after validation.
export const validationMessages = {
	generic: {
		missing: 'Please provide the required field',
		invalid: 'The value you have provided is invalid',
	},

	type: {
		email: {
			missing: 'Please provide the e-mail',
			invalid: o => {
				console.dir(o)
				return `The e-mail ${o.value} has invalid format`
			},
		},
	},

Expected behavior
o object contains the value prop

Hello, @nshaikhinurov. Thank you for the reporting the issue. I confirm this unexpected behavior is reproducible in 1.7.1. See more technical details below.
Cause
There is a resolverArgs object passed through the entire validation chain:
validateField -> validate -> reflectValidation -> getMessages -> resolveMessage

The issue was that the original input for validateField did not contain any [valuePropName]: fieldProps[valuePropName] pair in the resolver args. Since they are passed as-is down the validation chain, when it got to resolveMessage, it didn't contain that value pair either.
I've fixed that behavior by explicitly setting the dynamic value pair on message resolver arguments. This should eliminate the unexpected behavior you are describing. Will be published in the next patch release.

Tip: Note that based on the fieldProps.valuePropName the key name that represent a field's value will differ in the message resolver arguments. That said, if you are using a checkbox, you need to access its value like ({ checked }) => 'message'. This is an expected behavior.

Fix published under 1.7.2. Please update and let me know that message resolvers behave as described in the documentation. Thank you for contributing!

Fix published under 1.7.2. Please update and let me know that message resolvers behave as described in the documentation. Thank you for contributing!

Yep! Updating to 1.7.2 worked fine and solved the issue. The value prop is there 🎉


🔮 v8.0.0 alpha available

Hi all,
React Use Gesture v8.0.0 is now available on npm with the next tag. You can install it by typing the following command:
# using yarn
yarn add react-use-gesture@next

# using npm
npm install react-use-gesture@next

⚡Please test this version on your app and report any breaking behavior! ⚡
Internal changes
v8.0.0 is a major rework and refactoring of the code aiming at better structure and performance improvements across renders, thanks to @thephoenixofthevoid.
Breaking changes
Pointers (could be controversial)
The library now resorts to pointer events extensively: this simplifies some of the drag logic significantly, but has two main implications:

The { eventOptions: { pointer: true } } option is now gone. This means that react-use-gesture works out of the box with react-three-fiber 💁♂

Because scrolling cancels pointer events on touch screens, you will need to style your element with touch-action: <value> to make sure the dragging can work properly. The docs for touch-action.

domTarget option no longer requires useEffect in user land.
When adding events directly to the dom element using domTarget you no longer need to clean the effect yourself.
// before
const bind = useDrag(() => { /* your logic */ }, { domTarget: window })
React.useEffect(bind, [bind])

// after
useDrag(() => { /* your logic */ }, { domTarget: window })

Non intentional movements will always fire your handler
This aims at working with the threshold / filterTaps option.
In React Use Gesture v7, if you had set the drag threshold option to 10, your useDrag handler would only fire when the x or y displacement of the user gesture would be greater than 10. This is no longer the case in v8. Your handler will fire as soon as the drag is initiated.
useDrag(({ down, active, movement: [mx] }) => console.log({ down, active, mx }), { threshold: 10 })

// BEFORE
// mouse down        --> <no output>
// mouse moves 8px   --> <no output>
// mouse moves 10px  --> { down: true, active: true,  mx: 10 }

// AFTER
// mouse down        --> { down: true, active: false, mx: 0 }
// mouse moves 8px   --> { down: true, active: false, mx: 0 }
// mouse moves 10px  --> { down: true, active: true,  mx: 10 }

This means that if you have some complex logic in your handler, you may want to wrap it into like so:
useDrag(({ active }) => {
  if(active) {
    /* your complex logic */
  }
}, { threshold: 10 })

This changes makes it easy to access initial pointerdown and subsequent pointermove events in userland, and possibly stopPropagation or preventDefault.
Added features
v8.0.0 doesn't add many features but:

Drag and pinch now works on multiple dom elements at once #170.
Drag option { filterTaps: true } will also prevent unwanted taps on children elements #173.

Remaining to be done

[x] Make handlers extensible for react-three-fiber #182
[ ] Fix some types
[ ] Testing
[ ] Tree shaking

Happy testing 🕹

Hey there, I tried building a simple drag/pinch zoom-image component with these changes and I am struggling with the behaviour on an iPad. When the pinch-zoom has ended (I remove the two fingers from the display) the content is moved as if the drag event listener was invoked (for the one finger that is removed last) afterwards.
Additionally, I cannot comprehend how to correctly use pinch-zoom in the browser. "Natural" zoom is still happening despite the domTarget and passive event config being set.
Furthermore, I have a hard time understanding how I could implement pinch-zoom based on the center of the pinch-zoom gesture instead of the center of the component.
I would really appreciate any help regarding that 😅
I created this CodeSandbox: https://codesandbox.io/s/practical-shtern-e5qfy

Try to comment out the line 60:
// if (pinching || canceled) return;

On my Android it works perfectly then. Please, let us know if it helps.

@thephoenixofthevoid I am assuming you are commenting regarding:

Hey there, I tried building a simple drag/pinch zoom-image component with these changes and I am struggling with the behaviour on an iPad. When the pinch-zoom has ended (I remove the two fingers from the display) the content is moved as if the drag event listener was invoked (for the one finger that is removed last) afterwards.

That did not change anything in the behaviour on my iPad. I have no android phone so I cannot test that there. I am currently uploading a video that will show-case this issue.
https://drive.google.com/file/d/1-qp4thS95e2JEKLRmr7xWJfL6AdJc-hv/view?usp=sharing
Also the updated CodeSandbox (as a reference): https://codesandbox.io/s/magical-rgb-30gv5?file=/src/App.js

Please, record the same interactions with the following app: https://patrickhlauke.github.io/touch/tracker/multi-touch-tracker-pointer-hud.html
So that the debug information is clearly visible (you will get it when open the link).

@thephoenixofthevoid Here: https://drive.google.com/file/d/1IlKZaHf6dIvNUziKLA2ba9SlY2Di50xX/view?usp=sharing

Okay I did some more testing and on iPad Safari there is definitely no origin passed to the onPinch handler.

@n1ru4l we're working on this. The origin issue is related to #152.

We've just released 8.0.0-alpha.2 which should at least fix the origin problem I believe.

@dbismut I can confirm that the origin issue does no longer exist in 8.0.0-alpha.2 (https://codesandbox.io/s/react-three-fiber-react-use-drag-ux9w5?file=/src/App.js)

Is there any content on how to do nested useDrag/useGesture with react-three-fiber?
I wanna have a drag handler for changing the x/y coordinates of the outer element and one for the inner element. I do not understand how I can cancel the inner event in orde to not propagate to the outer drag handler.

@n1ru4l I'm on my phone atm but have a look at https://codesandbox.io/embed/old-shadow-uq7mt?codemirror=1. The inner orange square drag doesn't propagate to its parent.

@dbismut Thanks, the example works, fine. I also upgraded it to 8.0.0-alpha.2 it still works. However, when trying to do this locally (with the same dependencies) it works most of the time, but infrequently I have the issue that both elements are dragged at the same time. When adding onPointerDown callback to the outer element this confirms that sometimes the outer callback is invoked first. I will try to share a minimal reproduction tomorrow.

https://github.com/react-spring/react-use-gesture/issues/180#issuecomment-640911024
I solved this by using two event handlers. One attached the document via domTarget for the onPinch event and one attached to the element via bind() for the drag gesture. I have an additional ref that stores whether a drag is in process so that the two handlers do not interfere.
It seems to work quite well on iOS Safari, Chrome Desktop and Firefox desktop.
I get the following error on Safari Desktop for the pinch gesture:

TypeError: Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
_nonIterableRest
node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js:2
  1 | export default function _nonIterableRest() {
> 2 |   throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  3 | }
View compiled
onPinch
src/map-view.tsx:706
  703 |     isDragDisabledRef.current = false;
  704 |   }, 100);
  705 | },
> 706 | onPinch: ({ movement, event, origin, ctrlKey, last, cancel }) => {
      | ^  707 |   if (!viewport || !event || !dimensions) {
  708 |     return;
  709 |   }
View compiled
fn
src/hooks/useGesture.ts:86
  83 | const fn = (state: any) => {
  84 |   let memo: any = undefined
  85 |   if (state.first && startKey in handlers) handlers[startKey]!(state)
> 86 |   if (handlerKey in handlers) memo = handlers[handlerKey]!(state)
     | ^  87 |   if (state.last && endKey in handlers) handlers[endKey]!(state)
  88 |   return memo
  89 | }
View compiled
fireGestureHandler
src/recognizers/Recognizer.ts:192
  189 | } as FullGestureState<T>
  190 |
  191 | // @ts-ignore
> 192 | const newMemo = this.handler(state)
      | ^  193 |
  194 | // Sets memo to the returned value of the handler (unless it's not undefined)
  195 | this.state.memo = newMemo !== void 0 ? newMemo : this.state.memo
View compiled
onGestureChange
src/recognizers/PinchRecognizer.ts:121
  118 |     ...kinematics,
  119 |   })
  120 |
> 121 |   this.fireGestureHandler()
      | ^  122 | }
  123 |
  124 | onGestureEnd = (event: WebKitGestureEvent): void => {
View compiled
This screen is visible only in development. It will not appear if the app crashes in production.
Open your browser’s developer console to further inspect this error.  Click the 'X' or hit ESC to dismiss this message.

Hi @n1ru4l is it possible to provide a repro sandbox? I'll try to have a look over the week-end.

@dbismut Sorry, I will not be able to provide a reproduction on codesandbox this weekend. However you can find the complete code over here: https://github.com/dungeon-revealer/dungeon-revealer/pull/587/files#diff-a83c2e3bdae6f0939ac8bf099cca9466

@dbismut
Make my app with create-react-app
This version (v8.8.8a) works amazing in dev mode.
But in production does not work simply i get an empty view.
My deps:
"dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "lodash.clamp": "^4.0.3",
    "node-sass": "^4.14.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-hammerjs": "^1.0.1",
    "react-player": "^2.6.1",
    "react-router-dom": "^5.2.0",
    "react-router-transition": "^2.0.0",
    "react-scripts": "3.4.3",
    "react-spring": "^9.0.0-rc.3",
    "react-transition-group": "^4.4.1",
    "react-use-gesture": "^8.0.0-alpha.2",
    "use-sound": "^1.0.2"
  }

Hi @raop155 thanks for testing the alpha, much appreciated. Are there any error messages in your console? Are you positive this is because of react-use-gesture? Is there a way for you to create a minimal repro sandbox?

Hi @raop155 thanks for testing the alpha, much appreciated. Are there any error messages in your console? Are you positive this is because of react-use-gesture? Is there a way for you to create a minimal repro sandbox?

@dbismut
Make it work, it was a bug in my code, where i put some comment in my render function but it work in DEV, but in PROD it was just a blank page with no errors in console.
Solution: erased all comments
Thanks

The issues mentioned in https://github.com/pmndrs/react-use-gesture/issues/180#issuecomment-660050674 do no longer exist in 8.0.0-alpha.4 🎉
Would it be possible to type the event property passed into the onWheel handler of useGesture to WheelEvent | React.WheelEvent | undefined instead of UIEvent | React.UIEvent<Element, UIEvent> | undefined? In which case would event be undefined? Is the undefined typing even necessary?

@n1ru4l indeed you're right! I'll check about removing undefined, but 8.0.0-alpha.5 should have the correct event typing in the handlers, please let me know if this works?

Now 8.0.0-alpha.6 has event defined in handlers.

@dbismut I will test it sometime this weekend :) Thanks for the awesome work!

@dbismut Could it be possible that there is no longer a state.point passed into the onPointerDown useGesture argument? It was never documented or typed AFAIK. But I used it for convenience so I don't have to calculate the pointer coordinates on the plane via the clientX/Y of the event. Is this intended? (See https://github.com/dungeon-revealer/dungeon-revealer/blob/24b13ef992f8247606dfbf743ae5f8505b4db6bc/src/map-view.tsx#L576).
event is now defined everywhere and the typings are more correct! Awesome 🎉

@n1ru4l yes origin can be undefined when people are zooming with a trackpad, there's no origin in that case.
Regarding the event parameter, you're using it in a native handler, so at this time it's just an Event. That could be improved to match the event type of the handler, but that wouldn't solve the fact that there's no way the lib could guess you're using r3f and cast it to a ReactThreeFiber.PointerEvent all by itself!

@dbismut I am zooming with my MacBook trackpad and it seems like there is an origin 😅.
I understand the issue with the event parameter. Maybe it could be possible to have an isPointerEvent function exported from react-three-fibe with the signature (input: unknown) => input is ReactThreeFiber.PointerEvent.

@n1ru4l I should have been clearer sorry. You're probably zooming with Safari. But pinching also supports zooming with more standard trackpads, using the wheel while pressing the ctrl key. In that case, no origin 🤷♂ you can try with Chrome.
Regarding the typing issue with r3f, the user should be responsible for which event it expects from the handler, I think casting should be a better solution. I'll try to work on sth when I have time.

@n1ru4l I should have been clearer sorry. You're probably zooming with Safari. But pinching also supports zooming with more standard trackpads, using the wheel while pressing the ctrl key. In that case, no origin 🤷♂ you can try with Chrome.

Thanks for the clarification 👍 Would using clientY and clientX as the fallback origin make sense in that case? Because that's what I will be using as the fallback origin in my app. Maybe it makes sense to also provide those as the fallback origin on the react-use-gesture level. Let me know what you think.
Thanks for all the insights! All that information is quality content for the documentation!

You're right, I should add this to the doc :) I'll see about mouse coordinates as default.

Hey @n1ru4l type of origin is now defined in 8.0.0-alpha.7 (it actually was defaulted to mouse coordinates in the previous alpha, so I was wrong when I said it was undefined).
Regarding casting events to Three, have a look at this: https://github.com/pmndrs/react-use-gesture/issues/182#issuecomment-699669170
Hope that helps ;)

It seems like a new alpha is released but the code is not pushed on github yet 😅 (v8.0.0-alpha.9)

v8 is now released


Why do pie-chart and percentage-chart only allows 6 legend points?

Expected Behaviour
Pie-chart and percentage-chart should show as much legend-points as segments in the chart.
Actual Behaviour
Pie-chart and percentage-chart only show a max of 6 legend-points.
Steps to Reproduce:

just create a pie-chart or percentage-chart with more than 6 segments
as shown on the docu-page

Frappé Charts version:
v0.0.7

I have the same problem .

I could enable custom values for this.max_legend_points in pie-chart and percentage-chart constructor like this:
this.max_legend_points = args.max_legend_points || 6;
Should I create a pull-request for this enhancement or is there a reason why it shouldn't be more than 6?


Error: Failed to build function: Could not resolve "sst/node/config"

I started getting the following error while running sst deploy --stage production:
Error        Error: Failed to build function: Could not resolve "sst/node/config"
|  at file:///***/.sst/platform/src/components/aws/function.ts:1134:21
|  at processTicksAndRejections (node:internal/process/task_queues:95:5) {
|  promise: Promise { <rejected> [Circular *1] }

May be related, but I see this error 3x, and I have 3x functions in my code (1 queue handler, 1 cron handler, and 1 API handler).
I'm using aws provider.
Running sst dev --stage local works fine.

It looks like you are referencing SST2 SDK in your functions. Check your SST imports?

This seems to have solved itself. I will close this for now and re-open if it surfaces in the future.


Project DEPENDENCIES file

Following suggestion by @rsaxvc  I'm planning on adding a file containing a list of project's DEPENDENCIES. But that rises an interesting question:
Should we try and make the build as self-contained as possible ? And if so, how far should we go with that approach ? ( we can use CMake's external project support and actually download/configure/build boomerang dependencies )
Or maybe we should assume that all people building boomerang are smart enough to figure things out for themselves, and adding a simple DEPENDENCIES file will be enough ?
My personal opinion is that the less time it takes someone to get boomerang to actually build the better, and the project will 'feel' less clunky to the potential new developers :)
Thoughts ? Suggestions ?

LLVM IR is heavily used in source to source, and source to machine. We should at the least consider it.

@nemerle Wouldn't a rudimentary command-line UI aid in debugging?

Boomerang actually has such a command-line UI ? Just run ./boomerang -h


Death location listed multiple times

(ex Edwin Willard Deming) –the WebConGeography table identifies city and state for place of death See #33

Fixed.


Inception: Add warning if the output sizes are not equal.

Mentioned in https://github.com/cmusatyalab/openface/issues/142

@bamos Nice PR. Thanks!


👷 Add CI build

I don't really think this is necessary at this point in time as we have no tests and there is not much to build anyway


fix: support .json

Was getting this error importing json, despite esbuild having a built-in json loader.  So I just added the mapping in the switch statements.

Fixed more comprehensively in #20. Thanks for the PR.


Have SVE conflict the old SVE-Textures virtual module

This will help avoid, and closes https://github.com/KSP-CKAN/CKAN-meta/issues/1094

LGTM.
sigh I spent quite a bit of time getting those SVE-Textures netkans right, and now it's all irrelevant!


x/build/cmd/makemac: create macOS VMs in response to scheduler demand

The current x/build/cmd/makemac binary maintains a static number of macOS VMs of a fixed distribution of macOS versions. (at least, it queries the coordinator for the dashboard/builders.go-configured distribution of versions)
But now that we have the scheduler in the coordinator, makemac could instead create what's needed. This would let us use our limited 10 Macs betters. We currently strand a fair bit of our resources.
There's a TODO in the code:
// wantedMacVersionNext returns the macOS 10.x version to create next,
// or 0 to not make anything. It gets the latest reverse buildlet
// status from the coordinator.
func wantedMacVersionNext(st *State, rstat *types.ReverseBuilderStatus) int {
        // TODO: improve this logic now that the coordinator has a
        // proper scheduler. Instead, don't create anything
        // proactively until there's demand from it from the
        // scheduler. (will need to add that to the coordinator's
        // status JSON) And maybe add a streaming endpoint to the
        // coordinator so we don't need to poll every N seconds. Or
        // just poll every few seconds, perhaps at a lighter endpoint
        // that only does darwin.
        //
        // For now just use the static configuration in
        // dashboard/builders.go of how many are expected, which ends
        // up in ReverseBuilderStatus.

/cc @cagedmantis @dmitshur

Obsolete.


MAX_LONG crashes Realm

Goals
What do you want to achieve?
I have given a property the value of MAX_LONG
That property is the primary key
Expected Results
What did you expected to happen?
No crashes
Actual Results
I've received a crash:
What did happened instead?
2017-01-31 11:53:19.844 BB App [11187:107495] *** Terminating app due to uncaught exception 'RLMException', reason: 'Invalid value '9223372036854775807' for property 'userId'

userId is defined as follows:
@property (nonatomic, copy, nonnull) NSNumber<RLMInt>* userId;
Steps to Reproduce
We've simply sent MAX_LONG on a user ID via the remote server
Version of Realm and Tooling
Realm version: 2.4.1
Xcode version: 8.2
iOS/OSX version: 10.2
Dependency manager + version: CocoaPods + 1.2.0
More info:
After some research we've found out that:
2**59 ==<PHONE_NUMBER>03423488 still works.
2**60 ==<PHONE_NUMBER>606846976 doesn't work.

Hi @beloso! Thanks for reaching out. I'll have someone look into this and respond with a solution or follow-up questions as soon as we can. 😸

Thanks for reaching out to us, and sorry you're experiencing this problem.
I tried replicating this locally (creating a model as you described, and setting the MAX_LONG value on it). I wasn't able to reproduce this bug.
I don't quite understand your reproduction steps. When you say We've simply sent MAX_LONG on a user ID via the remote server, do you mean the remote server sent down the MAX_LONG value to your application, and the application then tried setting it on an object for a local Realm? Or are you using the Realm Object Server?
If you can provide a demo project or code listing that shows the crash, that would be extremely helpful. Thanks.

The value was being provided by our server via a JSON endpoint, no it's not Realm Object Server.
We are further investigating what the issue is. We saw an RLMException and assumed it was related to realm.

I have been able to reproduce it via a test case, it seems its due to our serializer parsing it as a decimal number instead of integer, then we get the exception in RLMUtil.mm when validating the type.
#import "Realm.h"

@interface TestRMLInt : RLMObject

@property (nonatomic, copy) NSNumber<RLMInt> *userId;

@end

@implementation TestRMLInt

+ (NSString *)primaryKey {

    return NSStringFromSelector(@selector(userId));
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    // this one works
    NSNumber *n = @(NSIntegerMax);
    // this one doesn't work
    NSDecimalNumber *dn = [[NSDecimalNumber alloc] initWithString:[n stringValue]];

    // switch the attribution between n and dn to test
    NSNumber<RLMInt> *key = (NSNumber<RLMInt> *)dn;

    NSLog(@"n is '%@' (objc type %c) and dn is '%@' (objc type %c)",n, [n objCType][0],dn, [dn objCType][0]);

    RLMRealm *realm = [RLMRealm defaultRealm];
    [realm beginWriteTransaction];

    TestRMLInt *del = [TestRMLInt objectForPrimaryKey:key];
    if(del){

        [realm deleteObject:del];
        [realm commitWriteTransaction];
        [realm beginWriteTransaction];
    }

    TestRMLInt *testObject = [[TestRMLInt alloc] init];
    testObject.userId = key;
    [realm addOrUpdateObject:testObject];

    [realm commitWriteTransaction];
}

@end

Maybe we could validate a decimal as integer if it has no decimal value and fits within an integer, somewhat like you are doing with float validation.

It turns out we don't support NSDecimalNumber right now unless you get the primitive value and then rewrap it in a regular NSNumber. You can use that as a workaround for now; I'm going to repurpose this ticket for tracking adding in that functionality. Thanks for reporting this, and best of luck with your future endeavors.

I've updated our documentation. We support assigning NSDecimalNumber values to properties marked as RLMDouble. If you need to assign to a RLMInt, the best thing to do is to unwrap and rewrap manually.


<IP_ADDRESS> Procedure (for Promotion)

What is the procedure after the Personnel committee?
Why isn't promotion procedure more clear as it is with tenure

See also <IP_ADDRESS> for more info on how the board of trustees approve this.


Create new cli library with a simplified interface

Description
This PR creates a new sov-cli library and a simple binary which combines the library and the demo-stf to create a simple CLI.
The new CLI allows you to generate and persist accounts, and switch between active accounts using a simple interface:
Usage: main keys <COMMAND>

Commands:
  generate  Generate a new key pair
  import    Import an existing key pair
  list      List the keys in this wallet
  activate  Set the active key
  help      Print this message or the help of the given subcommand(s)

It also provides an API for creating batches of transactions either by providing args on the command line (using clap) or by providing pre-generated JSON.
$ cargo run transactions
Commands:
  generate  Parse a transaction from command-line arguments
  import    Import a pre-formatted transaction from a JSON file or as a JSON string
  list      List the current batch of transactions
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

To keep this PR small, several changes are left as TODOs:

Add the ability to send transactions to a full node
Add the ability to drop/update the current batch of transactions
Add a command to generate json schemas
Add the ability to auto-fill nonces
Replace the old sov-cli binary in demo-stf with a new one based on this library.

Linked Issues

Related to #552

Doe the doc in https://github.com/Sovereign-Labs/sovereign-sdk/tree/nightly/examples/demo-rollup also require an update?

Question: Does the doc in https://github.com/Sovereign-Labs/sovereign-sdk/tree/nightly/examples/demo-rollup also require an update?

Good question! It will, but I'll make that update in the change where I remove the old cli.


Crash after change the dynamic font size by a mouse click+dragging

Operating system or device - Godot version:
Xubuntu 16.04.2 LTS x86_64, Godot version: master 52ddd9a, 2.1 branch 8ea4413, 2.1.1-2.1.2 stable
Issue description:

Godot crash when change a dynamic font size by a mouse click+dragging.
Some time a size value has changed to a negative value, like: -2500 or lower.

godot_backtrace.txt
Steps to reproduce:

Add a node with a font support like a btn or label.
New DynamicFont.
Enter inside(edit it).
Font --> New DynamicFontData or Load some font.  Without this step godot work correct.
Try to change font size by a mouse click+dragging, up - down, several times.
Crash.

Link to minimal example project:

bug_test.zip

Could confirm once (with some difficulty), but not when running inside gdb. Process was terminated by SIGSEGV (Arch linux, Godot 15c4d5006ee6982223777ababfbc2c040f3e344f)

First of all thank you for your report and sorry for the delay.
We released Godot 3.0 in January 2018 after 18 months of work, fixing many old issues either directly, or by obsoleting/replacing the features they were referring to.
We still have hundreds of issues whose relevance/reproducibility needs to be checked against the current stable version, and that's where you can help us.
Could you check if the issue that you described initially is still relevant/reproducible in Godot 3.0 or any newer version, and comment about its current status here?
For bug reports, please also make sure that the issue contains detailed steps to reproduce the bug and, if possible, a zipped project that can be used to reproduce it right away. This greatly speeds up debugging and bugfixing tasks for our contributors.
Our Bugsquad will review this issue more in-depth in 15 days, and potentially close it if its relevance could not be confirmed.
Thanks in advance.
Note: This message is being copy-pasted to many "stale" issues (90+ days without activity). It might happen that it is not meaningful for this specific issue or appears oblivious of the issue's context, if so please comment to notify the Bugsquad about it.

Reproducible in 2.1.5 a524cc9, not reproducible in stable 3.0.2, not reproducible in master a7f6e09.

The 2.1 branch is no longer actively worked on by engine developers, unless critical fixes are needed for current games in production. As such we are now closing non-critical bug reports affecting only the 2.1 branch.
Please comment if this was incorrectly triaged and is still relevant in 3.x versions.


Use sudo for setting sysctl config

This PR changes the part where the sysctl config for the bridge is set. All other parts/scripts in this documentation uses sudo expect for this part. For consistency we should use always sudo or write more obviously "these step must be executed as root' to make it easier for newcomers.

/sig cluster-lifecycle
instead of adding sudo everywhere a note on top of the document could indicate that some commands need super user, but on similar PRs we just added the sudo so LGTM:
https://github.com/kubernetes/website/pull/17139
/lgtm

I agree, @neolit123 👍 Thank you for your contribution, @johscheuer!
/approve


Archive User

Add the ability to remove a user, but not fully delete (aka "archive") from metrics and user table views. Also add the ability to toggle archived users on/off so that they can be included or excluded for tracking people that have completed training as an example.

:+1:


Nested routes in Pages Functions

It would be nice if the folder structure of Pages Functions could support multiple parameters. Currently, it seems that only one parameter is supported directly by folder structure.
The following route is difficult to express without writing logic to support it:
api/v1/person/[personId]/familyMember/[familyMemberId]
I had tried a directory structure like api -> v1 -> person-> [personId] -> familyMember -> [familyMemberId].js, but this (expectedly) doesn't work.
You can use the string[] version of params and a catch all route, but this quickly becomes unwieldy if you have GET/POST/PUT/DELETE routes that depend on the nested routes, and even more so if you have multiple child objects under the parent (in this case person). Add another layer of routes under the child object (familyMember) and this quickly gets out of control.

Nevermind, this does work correctly. I was using a POST instead of a GET.
smh, and closing


Rule documentation titles don't match rule names

The .MD file names in https://github.com/PowerShell/PSScriptAnalyzer/tree/development/RuleDocumentation do not match the rule names, even when you delete the PS prefix.
This error affects the following rules:
AvoidUsingCmdletAliases
AvoidDefaultValueSwitchParameter
AvoidDefaultValueForMandatoryParameter
AvoidUsingEmptyCatchBlock
ReservedCmdletChar
ReservedParams
AvoidUsingUserNameAndPassWordParams
MisleadingBacktick
ShouldProcess
UseUTF8EncodingForHelpFile
DSCDscExamplesPresent
DSCDscTestsPresent
DSCReturnCorrectTypesForDSCFunctions
DSCUseIdenticalMandatoryParametersForDSC
DSCUseIdenticalParametersForDSC
DSCStandardDSCFunctionsInResource
DSCUseVerboseMessageInDSCResource
I'm trying to write a function that opens these files based on the rule name, but it won't work unless the rule names are correct.
So, we either need to change the doc names to match the rules or change the rule names to match the docs.

Changing rule names will be a breaking change and so I think the other approach, i.e., to change the doc file names to correspond to that of rule names, is more appropriate here. Thanks for pointing out the discrepancy.

Fixed in #742


Support query stats

The original promql engine has builtin support for query stats https://github.com/prometheus/prometheus/blob/main/util/stats/query_stats.go#L112.
It has mainly 2 parts: timings and samples.
// queryTimings with all query timers mapped to durations.
type queryTimings struct {
	EvalTotalTime        float64 `json:"evalTotalTime"`
	ResultSortTime       float64 `json:"resultSortTime"`
	QueryPreparationTime float64 `json:"queryPreparationTime"`
	InnerEvalTime        float64 `json:"innerEvalTime"`
	ExecQueueTime        float64 `json:"execQueueTime"`
	ExecTotalTime        float64 `json:"execTotalTime"`
}

type querySamples struct {
	TotalQueryableSamplesPerStep []stepStat `json:"totalQueryableSamplesPerStep,omitempty"`
	TotalQueryableSamples        int64      `json:"totalQueryableSamples"`
	PeakSamples                  int        `json:"peakSamples"`
}

// BuiltinStats holds the statistics that Prometheus's core gathers.
type BuiltinStats struct {
	Timings queryTimings  `json:"timings,omitempty"`
	Samples *querySamples `json:"samples,omitempty"`
}

It would be nice to support capturing those stats in this query engine.

Since this query engine is different from the old engine in terms of the query execution stages, I feel we don't have to support query timings for now. But it would be nice to support query samples first.

Can we solve this through https://github.com/thanos-community/promql-engine/issues/106 ?

I think #106 has a larger scope than this one.
This issue is mainly to support Prometheus query stats in the engine because currently if I enable query stats the engine panics.

Got it, makes sense.

I would like to contribute to adding support for query stats in the engine.


How to use this code with private endpoints

Hi,
We tried to deploy it against an OKE running on private endpoint. We can't create public endpoint because of our company policies.
So, Resource manager stack is failing with the below error:
Error: Kubernetes cluster unreachable: Get "https://<PRIVATE_IP>:6443/version": dial tcp <PRIVATE_IP>:6443: i/o timeout
We tried with creating a reachable IP and no luck.
Kindly suggest.

The private endpoint support for installation through Resource Manager is not yet available, it would come in upcoming releases. You may try using the helm chart based installation as an alternative.

hi @santhoshkvuda Thanks a lot for your inputs.
Any tentative date for the upcoming release?

I believe this article describes the fix
https://docs.oracle.com/en/learn/logging-for-private-oke-cluster/index.html
It didn't worked for me, but I believe it is my Private Endpoint setup issues. In general seem to be the fix for your problem.


Issue #1485 Profile docs improvements

Adding output to the exmaple commands
Expanding on the example workflow
Clarify wording around active profile
Making docs more compact by removing unnecessary fillers

+1 for giving profiles higher priority in the topic map and for showing the output of commands.

thanks

Merged, Thanks.


does not remember audio and subtitles

Audio and subtitle are reset after reopening, it is possible to remember audio and subtitle which I choose?

it happens when I watch movie online in torrserv.
Start movie, choose audio and subtitle what you want , close movie, then again start, audio and subtitle set by default

+1


feat: Generate fake data with stream maps

Usage
The fake property (a Faker instance):
config:
  stream_maps:
    users:
      name: fake.name()

The Faker instance can be configured through faker_config:
Seed
config:
  faker_config:
    seed: 0

Locale
config:
  faker_config:
    locale: en_GB

Multiple locales
config:
  faker_config:
    locale:
    - en_GB
    - es_MX
    - ja_JP

Closes #1009

📚 Documentation preview 📚: https://meltano-sdk--2170.org.readthedocs.build/en/2170/

@edgarrmondragon Sure, we can go with the extra approach. A couple of questions:

Cons: Folks have to either install faker alongside the tap/target or install with the extra if it's supported, e.g. tap-github[faker].

Would that not mean that the tap developer just has to specify singer-sdk[faker] as a dependency (indirectly through the cookiecutter), and otherwise from a Meltano perspective the pip_url doesn't have to change for a plugin?

Are you happy with the stream_map_config approach for configuring the Faker instance? This does mean faker.seed and faker.locale become reserved config values for a tap using the faker extra. Alternatively, we could make it a top-level config option for taps with the stream-maps capability - like how the batch capability exposes all the batch_config options (although this might have to be a separate capability if faker becomes an extra.

@edgarrmondragon Sure, we can go with the extra approach. A couple of questions:

Cons: Folks have to either install faker alongside the tap/target or install with the extra if it's supported, e.g. tap-github[faker].

Would that not mean that the tap developer just has to specify singer-sdk[faker] as a dependency (indirectly through the cookiecutter), and otherwise from a Meltano perspective the pip_url doesn't have to change for a plugin?

Are you happy with the stream_map_config approach for configuring the Faker instance? This does mean faker.seed and faker.locale become reserved config values for a tap using the faker extra. Alternatively, we could make it a top-level config option for taps with the stream-maps capability - like how the batch capability exposes all the batch_config options (although this might have to be a separate capability if faker becomes an extra).

Would that not mean that the tap developer just has to specify singer-sdk[faker] as a dependency (indirectly through the cookiecutter), and otherwise from a Meltano perspective the pip_url doesn't have to change for a plugin?

That's correct, that'd also work 👍

2. Are you happy with the stream_map_config approach for configuring the Faker instance? This does mean faker.seed and faker.locale become reserved config values for a tap using the faker extra. Alternatively, we could make it a top-level config option for taps with the stream-maps capability - like how the batch capability exposes all the batch_config options (although this might have to be a separate capability if faker becomes an extra).

Yeah. I think I'd like them better as top-level configs.

@ReubenFrankel there seems to be a performance regression in setting up a mapper, reported by codspeed:

Do you think this drop in performance wouldn't be there if faker is not installed? (i.e. if users don't need fake and thus are not requesting faker be installed)

@ReubenFrankel there seems to be a performance regression in setting up a mapper, reported by codspeed:
Do you think this drop in performance wouldn't be there if faker is not installed? (i.e. if users don't need fake and thus are not requesting faker be installed)

When faker is not installed, both of these exceptions should be suppressed:
https://github.com/meltano/sdk/blob/3bad517a24588e73b4aa79a1dd9a1082cf1f464a/singer_sdk/mapper.py#L271-L272
https://github.com/meltano/sdk/blob/3bad517a24588e73b4aa79a1dd9a1082cf1f464a/singer_sdk/mapper.py#L336-L337
I would have thought that without faker installed, this would cause a very minimal performance delta for what is essentially two try-except statements.

@ReubenFrankel I've pushed 4e7ea15 to test performance without faker and it seems to get worse 😅. I confirmed by running locally with poetry run pytest --benchmark-only tests.
What do you think?

@edgarrmondragon This was a misunderstanding on my part. I think the performance overhead of actually catching and handling exceptions is what was causing the issue here. Seems to be fixed now.
https://docs.python.org/3/faq/design.html#how-fast-are-exceptions

A try/except block is extremely efficient if no exceptions are raised. Actually catching an exception is expensive.

Ah, thanks for looking into it @ReubenFrankel!
It's probably worth adding updating https://sdk.meltano.com/en/latest/stream_maps.html to instruct users on how to use the optional faker instance in their stream maps.

@edgarrmondragon What do you think of these docs additions?

Ah, yeah good call. I'll add both those. Regarding updating the capability:

Should we conditionally include the faker_config property on importlib.util.find_spec("faker"), or just add it regardless?
Is this documentation out-of-date? As a developer, I don't think I've ever defined those settings in a plugin I've built using the SDK, since they are automatically added given the stream_maps capability https://github.com/meltano/sdk/blob/fa888be4ba00f471f8c0a474800f9699a1ed3347/docs/stream_maps.md?plain=1#L93-L96

I'll also take a look at updating the cookiecutter tap and target templates to support singer-sdk[faker].

1. Should we conditionally include the faker_config property on importlib.util.find_spec("faker"), or just add it regardless?

@ReubenFrankel I think it's ok to just add it regardless. We can reiterate in the field description that it requires injecting faker.

2. Sort of unrelated, but is this documentation out-of-date? As a developer, I don't think I've ever defined those settings in a plugin I've built using the SDK, since they are automatically added given the stream_maps capability

Ah, good catch. Feel free to get rid of that!

@edgarrmondragon This is ready for another look. There is something wrong with the current duckdb version for CI checks - looks like it no longer exists on PyPI?
https://github.com/meltano/sdk/blob/63bb73bdeea6a40a94a691fa8fd8d24ad02f9f47/poetry.lock#L547

@edgarrmondragon This is ready for another look. There is something wrong with the current duckdb version for CI checks - looks like it no longer exists on PyPI?
https://github.com/meltano/sdk/blob/63bb73bdeea6a40a94a691fa8fd8d24ad02f9f47/poetry.lock#L547

Fixed on main by https://github.com/meltano/sdk/pull/2206 😮💨

@edgarrmondragon Thanks for finishing off the tests and docs. 👍


Confusion about repo URLs

First of all, dusty is godsend for using docker in OSX. Thanks for this.
I've had some confusions about repo urls (both for specs_repo and apps) while setting up dusty for the first time.
What format(s) worked:

github.com/gamechanger/dusty-example-specs
https://github.com/gamechanger/dusty-flask-example.git

I haven't seen use of no. 1 much anywhere else. It was hard to figure out that this'll work.
I had to use private repos so using no. 2 was not an option.
Didn't work:

git@github.com:gamechanger/dusty-example-specs.git

This is probably most widely used format. Surprised to find this not working.
I got this when trying dusty repos update:
Pulling latest updates for all active managed repos:
Updating managed copy of specs-repo before loading specs
ERROR: Git command failed. If you are trying to access a remote repository over SSH (e.g. GitHub), please make sure you have added your SSH key to the SSH agent using: ssh-add <SSH key filepath>.  If you specified to clone the repo using HTTP, the repo must be public; private repo access is only supported with ssh
ERROR: 'git clone -v ssh://git@git@github.com:gamechanger/dusty-example-specs.git /etc/dusty/repos/git@github.com:gamechanger/dusty-example-specs' returned with exit code 128
stderr: 'Cloning into '/etc/dusty/repos/git@github.com:gamechanger/dusty-example-specs'...
ssh: connect to host github.com:gamechanger port 22: Operation timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
'

I've run ssh-add <SSH key filepath> before installing dusty, as mentioned in the docs.
Is this expected behavior or I'm missing something? Also couldn't find anything about specific url format in the docs.

Hi there, thanks for writing in. Always happy to help out someone who takes the time to spell out their issue clearly. :smile:
We do have examples of the three types of formats we definitely support in our docs in the App Specs and Lib Specs sections. If you look here under the repo block, you can see the two types you mentioned plus the absolute file path. There might be improvements we could make here in terms of both explaining how the first format works (uses SSH under the hood, so should work with private repos) and exposing this better to the user. I'd be happy to hear any suggestions you had for making this more clear.
In addition, I believe we currently support a fully specified SSH path per this issue: https://github.com/gamechanger/dusty/issues/539. This is necessary if you need to specify a user other than git or an SSH port other than 22. We should verify whether this is working currently and add it to the docs. That's an oversight there, my apologies.
As for the<EMAIL_ADDRESS>form you give, I believe it should work if you tack ssh:// on to the front of it to make it a fully specified SSH path. Do you think that would meet your needs?

My bad, missed the repo block here. dusty-example-specs repo was so good I didn't have to take a look there. So I'm thinking maybe a comment in dusty-example-specs where specifying app repos will help future users? Also should be here in Specs Repo block.
Didn't know about adding ssh:// trick also. Thanks for this. Is it possible for dusty to prepend it if not present? Because most of the time users will just copy git url from github and it is not there.


⚠ Bofrost.lu has degraded performance

In 13afa1b, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1927 ms

Resolved: Bofrost.lu performance has improved in 24542a1 after 6 minutes.