Failed to make element sink of type kvssink

Hi
First, thank you for this great work
I was trying to stream from my laptop camera to KVS using following SDK code :
`import awstreamer

client = awstreamer.client()
client.start({
    "pipeline": {
        "source": "v4l2src",
        "videoconvert": "videoconvert",
        "source_filter": "capsfilter",
        "encoder": "x264enc",
        "encoder_filter": "capsfilter",
        "sink": "kvssink"
    },
    "source": {
        "device": "/dev/video0"
    },
    "source_filter": {
        "caps": "video/x-raw,framerate=10/1,format=I420"
    },
    "encoder": {
        "bframes": 0,
        "key-int-max": 40,
        "bitrate": 500
    },
    "encoder_filter": {
        "caps": "video/x-h264,stream-format=avc,alignment=au,profile=baseline"
    },
    "sink": {
        "name": "kvssink",
        "stream-name": "TestStream"
    },
    "debug": True
})`

Got this error " Failed to make element sink of type kvssink "
I tried to show stream on autovideosink and it worked correctly
So, is there anything missing ? or any problem on my installation ? or still this sink is not supported yet ?
Thanks in advance

Hi Omar,
Error shows that kvssink plug-in was not found. Have you built it? You can do that with:
./build.sh -DBUILD_KVS=ON
Let me know if that helps.

Thanks for your response
Yes I've built it
Is there any way to test if it built correctly or not ?

Did you see any errors in the console during the build? Upon success, you should see KVS libraries in the build folder: build/awstreamer_py/gst_plugins/kvs. File extensions depend on the OS, but you should see libgstkvssink.* and libKinesisVideoProducer.* files there.
If the files are there, check if they can be loaded with gst-inspect-1.0:
GST_PLUGIN_PATH=build/awstreamer_py/gst_plugins/kvs gst-inspect-1.0 kvssink
If files are missing then it means that KVS build didn't go well. Try cleaning the repo git clean -d -f -f -x and building again. For resolving KVS build errors, check this link: https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp

I'm really appreciate your time
I've checked all these steps, KVS libraries are existed and can be loaded.
anyway I tried to set GST_PLUGIN_PATH environment variable to "build/awstreamer_py/gst_plugins/kvs" directory inside my code and it is working . but if I export it from terminal it didn't work.
I've already "amazon-kinesis-video-streams-producer-sdk-cpp" downloaded before, so is this effect ?
and isn't it supposed that set_env_variables method is responsible to set this variable when using the client ?
Also if I want to use sdk in greengrass lambda how I can embed it with lambda package ?

I've commented on this issue immediately from phone, but apparently the comment went nowhere, apologies for that!
I think I know what went wrong for you: apparently you are importing awstreamer from source dir and not from the build dir. Please take a look at examples/ folder after the build, you will see that each subfolder contains compiled awstreamer in it. E.g. take a look at examples/test_app/app.py - import awstreamer imports the library from the current directory and not from the source dir.
As for greengrass, you can just zip the folder content with awstreamer folder and your lambda. Please have a look at examples/greengrass for a full-blown example including CloudFormation template.

No worries,
I got your point
now I have the following error :
ImportError: cannot import name '_gi_gst' from 'gi.overrides' (/home/baseet/.local/lib/python3.7/site-packages/gi/overrides/__init__.py)

Never seen this error. Did you install OS packages mentioned in the README?
You might have some python versioning / packages issues according to this thread: https://stackoverflow.com/questions/59838238/importerror-cannot-import-name-gi-from-partially-initialized-module-gi-mo

I think I solved conflict problem but returned to the previous issue:
Failed to make element sink of type kvssink
In general what are the reasons to not recognize  kvssink ?
and just to make sure that all installation process should be using python3.7 and newer right ?

What is the folder structure from which you execute the script? It should be something like this:
.
├── [your_script].py
└── awstreamer
├── init.py
├── client.py
├── gst_configurer
│   ├── README.md
│   ├── init.py
│   ├── configurer_client.py
│   └── templates
│       ├── init.py
│       ├── index.html
│       ├── new_config.json
│       └── new_request.json
├── gst_metadata
│   ├── init.py
│   └── gst_objects_info_meta.py
├── gst_pipeline
│   ├── init.py
│   ├── appsrc_pipeline.py
│   ├── cmd_pipeline.py
│   ├── cv_pipeline.py
│   ├── ds_pipeline.py
│   ├── dvr_pipeline.py
│   ├── pipeline_factory.py
│   ├── stream_client.py
│   ├── stream_config.py
│   ├── stream_graph.py
│   ├── stream_pipeline.py
│   └── video_pipeline.py
├── gst_plugins
│   ├── kvs
│   │   ├── libKinesisVideoProducer.dylib
│   │   └── libgstkvssink.so
│   └── python
│       ├── gaussian_blur.py
│       ├── metadata_test.py
│       ├── neodlr.py
│       └── osd.py
├── gst_viewer
│   ├── README.md
│   ├── init.py
│   ├── templates
│   │   ├── init.py
│   │   └── index.html
│   └── viewer_client.py
└── utils
├── init.py
├── aws.py
├── gst.py
├── gst_hacks.py
├── plugin.py
└── video.py
Package should internally set the GST_PLUGIN_PATH to the kvs binaries. If you still get the error, first check that kvs plug-in is built correctly:
GST_PLUGIN_PATH=awstreamer/gst_plugins/kvs gst-inspect-1.0 kvssink
Then execute your script this way:
GST_PLUGIN_PATH=awstreamer/gst_plugins/kvs python3 your_script.py

Image attached is what I found installed on /awstreamer/gst_plugins/kvs folder, so I guess there is a problem on my installation
also I noticed that gstreamer-1.0 is installed on /usr/lib/x86_64-linux-gnu/ instead of /usr/lib/ , is this effect ?

This is exactly what I was talking about before, it looks like a source repository and not the output build. You can only use python scripts if you import from source dir, must import from build dir in order to have binaries in it.
From: Omar Turkmani @.>
Reply to: awslabs/aws-streamer @.>
Date: Thursday, 29 April 2021 at 8:21 PM
To: awslabs/aws-streamer @.>
Cc: Bartek Pawlik @.>, Comment @.***>
Subject: Re: [awslabs/aws-streamer] Failed to make element sink of type kvssink (#4)
Image attached is what I found installed on /awstreamer/gst_plugins/kvs folder, so I guess there is a problem on my installation
also I noticed that gstreamer-1.0 is installed on /usr/lib/x86_64-linux-gnu/ instead of /usr/lib/ , is this effect ?
[Screenshot from 2021-04-29 15-14-25]https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F71002987%2F116549244-e9f0d980-a8fd-11eb-80e8-24a19cdad36f.png&data=04|01||b80778e209b246dd9dcd08d90b093f91|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637552956605096045|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=a%2F%2B27DN3RuPIY8QC4v7iIFPToFvSmYnXXZ6Cik%2FacuA%3D&reserved=0
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fawslabs%2Faws-streamer%2Fissues%2F4%23issuecomment-829192093&data=04|01||b80778e209b246dd9dcd08d90b093f91|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637552956605106045|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=UuoO2mkp4%2Babgejsra79J0NNxuyd952O4Og8yTjwfCk%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABV5PHQLJW6YNNMLGBYT6QLTLFFKXANCNFSM43MN5L6A&data=04|01||b80778e209b246dd9dcd08d90b093f91|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637552956605116037|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=TmIBnH6JIgJWtx1LDuGJZZZB7IdzSV8js80YMQUFHmw%3D&reserved=0.

Sorry it was an old project
This is what the folder contain

regards of the second point :
"I noticed that gstreamer-1.0 is installed on /usr/lib/x86_64-linux-gnu/ instead of /usr/lib/ , is this effect ?"
and is this folder should contain kvs binaries ?

You would get this kind of warning if that was the case: "libgstreamer-1.0 not found! Please export LIB_GSTREAMER_PATH env var manually."
Otherwise it’s not the case here. You can set LIB_GSTREAMER_PATH if you want to be double sure.
From: Omar Turkmani @.>
Reply to: awslabs/aws-streamer @.>
Date: Thursday, 29 April 2021 at 8:39 PM
To: awslabs/aws-streamer @.>
Cc: Bartek Pawlik @.>, Comment @.***>
Subject: Re: [awslabs/aws-streamer] Failed to make element sink of type kvssink (#4)
Sorry it was an old project
This is what the folder contain
[Screenshot from 2021-04-29 15-34-14]https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F71002987%2F116551348-85834980-a900-11eb-84ec-e1146a936ea8.png&data=04|01||fb7133f1f4664daec5ad08d90b0be5f9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637552967987300886|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=LvJ5XymsTslnrBxx91KrHF9CMDOZ5lcPQJF1lGCLlhM%3D&reserved=0
regards of the second point :
"I noticed that gstreamer-1.0 is installed on /usr/lib/x86_64-linux-gnu/ instead of /usr/lib/ , is this effect ?"
and is this folder should contain kvs binaries ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fawslabs%2Faws-streamer%2Fissues%2F4%23issuecomment-829203983&data=04|01||fb7133f1f4664daec5ad08d90b0be5f9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637552967987310886|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=5nhupRK1puI5zj180vDgJbT1hltjTV9RPLoiyKwtk64%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABV5PHRIEZTKF4TGSDUJ2ADTLFHR3ANCNFSM43MN5L6A&data=04|01||fb7133f1f4664daec5ad08d90b0be5f9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637552967987320875|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=BMe9Lk9JsthQEvxO0UOPZ4e%2B1fGzvv7hlOollFb58ZQ%3D&reserved=0.

And yes, content of the folder above looks very correct, meaning that KVS plug-in build went without errors. What's the output of GST_PLUGIN_PATH=awstreamer/gst_plugins/kvs gst-inspect-1.0 kvssink?

The output
`kvs gst-inspect-1.0 kvssink
Factory Details:
Rank                     primary + 10 (266)
Long-name                KVS Sink
Klass                    Sink/Video/Network
Description              GStreamer AWS KVS plugin
Author                   AWS KVS<EMAIL_ADDRESS>Plugin Details:
Name                     kvssink
Description              GStreamer AWS KVS plugin
Filename                 awstreamer/gst_plugins/kvs/libgstkvssink.so
Version                  1.0
License                  Proprietary
Source module            kvssinkpackage
Binary package           GStreamer
Origin URL               http://gstreamer.net/
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstKvsSink
Pad Templates:
SINK template: 'video_%u'
Availability: On request
Capabilities:
video/x-h264
stream-format: avc
alignment: au
width: [ 16,<PHONE_NUMBER> ]
height: [ 16,<PHONE_NUMBER> ]
video/x-h265
alignment: au
width: [ 16,<PHONE_NUMBER> ]
height: [ 16,<PHONE_NUMBER> ]
SINK template: 'audio_%u'
Availability: On request
Capabilities:
audio/mpeg
mpegversion: { (int)2, (int)4 }
stream-format: raw
channels: [ 1,<PHONE_NUMBER> ]
rate: [ 1,<PHONE_NUMBER> ]
audio/x-alaw
channels: { (int)1, (int)2 }
rate: [ 8000, 192000 ]
audio/x-mulaw
channels: { (int)1, (int)2 }
rate: [ 8000, 192000 ]
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
none
Element Properties:
name                : The name of the object
flags: readable, writable
String. Default: "kvssink0"
parent              : The parent of the object
flags: readable, writable
Object of type "GstObject"
stream-name         : Name of the destination stream
flags: readable, writable
String. Default: "DEFAULT_STREAM"
retention-period    : Length of time stream is preserved. Unit: hours
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 2
streaming-type      : Streaming type
flags: readable, writable
Enum "GstKvsSinkStreamingType" Default: 0, "realtime"
(0): realtime         - streaming type realtime
(1): near-realtime    - streaming type near realtime
(2): offline          - streaming type offline
content-type        : content type
flags: readable, writable
String. Default: null
max-latency         : Max Latency. Unit: seconds
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 60
fragment-duration   : Fragment Duration. Unit: miliseconds
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 2000
timecode-scale      : Timecode Scale. Unit: milliseconds
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 1
key-frame-fragmentation: If true, generate new fragment on each keyframe, otherwise generate new fragment on first keyframe after fragment-duration has passed.
flags: readable, writable
Boolean. Default: true
frame-timecodes     : Do frame timecodes
flags: readable, writable
Boolean. Default: true
absolute-fragment-times: Use absolute fragment time
flags: readable, writable
Boolean. Default: true
fragment-acks       : Do fragment acks
flags: readable, writable
Boolean. Default: true
restart-on-error    : Do restart on error
flags: readable, writable
Boolean. Default: true
recalculate-metrics : Do recalculate metrics
flags: readable, writable
Boolean. Default: true
framerate           : Framerate
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 25
avg-bandwidth-bps   : Average bandwidth bps
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 4194304
buffer-duration     : Buffer duration. Unit: seconds
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 120
replay-duration     : Replay duration. Unit: seconds
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 40
connection-staleness: Connection staleness. Unit: seconds
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 60
codec-id            : Codec ID
flags: readable, writable
String. Default: "V_MPEG4/ISO/AVC"
track-name          : Track name
flags: readable, writable
String. Default: "kinesis_video"
access-key          : AWS Access Key
flags: readable, writable
String. Default: "access_key"
secret-key          : AWS Secret Key
flags: readable, writable
String. Default: "secret_key"
aws-region          : AWS Region
flags: readable, writable
String. Default: "us-west-2"
rotation-period     : Rotation Period. Unit: seconds
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 3600
log-config          : Log Configuration Path
flags: readable, writable
String. Default: "./kvs_log_configuration"
storage-size        : Storage Size. Unit: MB
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 128
credential-path     : Credential File Path
flags: readable, writable
String. Default: ".kvs/credential"
iot-certificate     : Use aws iot certificate to obtain credentials
flags: readable, writable
Boxed pointer of type "GstStructure"
stream-tags         : key-value pair that you can define and assign to each stream
flags: readable, writable
Boxed pointer of type "GstStructure"
file-start-time     : Epoch time that the file starts in kinesis video stream. By default, current time is used. Unit: Seconds
flags: readable, writable
Unsigned Integer64. Range: 0 -<PHONE_NUMBER>3709551615 Default:<PHONE_NUMBER>
disable-buffer-clipping: Set to true only if your src/mux elements produce GST_CLOCK_TIME_NONE for segment start times.  It is non-standard behavior to set this to true, only use if there are known issues with your src/mux segment start/stop times.
flags: readable, writable
Boolean. Default: false
`

Then execute your script this way:
GST_PLUGIN_PATH=awstreamer/gst_plugins/kvs python3 your_script.py

And what about this one?

Yes it is worked

But if I want to run it in greengrass lambda function how would I solve this problem ?

But if I want to run it in greengrass lambda function how would I solve this problem ?

You can specify env vars in greengrass lambda configuration, but honestly this shouldn't be needed.
For debugging purposes, could you post here the console output when your just 'python3 your_script.py?

here the output :
INFO:awstreamer.gst_pipeline.stream_client:GST_PLUGIN_PATH: awstreamer/gst_pipeline/../gst_plugins:/usr/lib/gstreamer-1.0/
INFO:awstreamer.gst_pipeline.stream_client:Gstreamer version: <IP_ADDRESS>
INFO:awstreamer.gst_pipeline.stream_client:LIB_GSTREAMER_PATH: /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
INFO:awstreamer.gst_pipeline.stream_client:GST_PLUGIN_PATH: awstreamer/gst_pipeline/../gst_plugins:/usr/lib/gstreamer-1.0/
>>>>>>>>>>>>>>awstreamer/gst_pipeline/../gst_plugins:/usr/lib/gstreamer-1.0/
INFO:awstreamer.gst_pipeline.stream_client:{'callback': None,
 'debug': True,
 'enabled': True,
 'encoder': {'bframes': 0, 'bitrate': 500, 'key-int-max': 40},
 'encoder_filter': {'caps': 'video/x-h264,stream-format=avc,alignment=au,profile=baseline'},
 'env': None,
 'id': 'default_0',
 'info': None,
 'pipeline': {'encoder': 'x264enc',
              'encoder_filter': 'capsfilter',
              'sink': 'kvssink',
              'source': 'v4l2src',
              'source_filter': 'capsfilter',
              'videoconvert': 'videoconvert'},
 'sink': {'access-key': '***********************',
          'aws-region': 'us-west-2',
          'name': 'kvssink',
          'secret-key': '******************',
          'storage-size': 512,
          'stream-name': 'TestStream'},
 'source': {'device': '/dev/video0'},
 'source_filter': {'caps': 'video/x-raw,framerate=10/1,format=I420'},
 'timeout': None}
INFO:awstreamer.gst_pipeline.pipeline_factory:PipelineFactory: creating a pipeline from path: .stream_pipeline.StreamPipeline
INFO:awstreamer.gst_pipeline.pipeline_factory:python_version: 3.7.5
INFO:awstreamer.gst_pipeline.stream_pipeline:Initializing StreamPipeline for default_0..
INFO:awstreamer.gst_pipeline.stream_graph:Initializing StreamGraph...
INFO:awstreamer.gst_pipeline.stream_pipeline:source: v4l2src
INFO:awstreamer.gst_pipeline.stream_pipeline:videoconvert: videoconvert
INFO:awstreamer.gst_pipeline.stream_pipeline:source_filter: capsfilter
INFO:awstreamer.gst_pipeline.stream_pipeline:encoder: x264enc
INFO:awstreamer.gst_pipeline.stream_pipeline:encoder_filter: capsfilter
INFO:awstreamer.gst_pipeline.stream_pipeline:sink: kvssink
ERROR:awstreamer.gst_pipeline.stream_graph:Failed to make element sink of type kvssink
Traceback (most recent call last):
  File "streamer.py", line 41, in <module>
    "debug": True
  File "/home/baseet/videoStreamer/awsStreamer/awstreamer/gst_pipeline/stream_client.py", line 197, in start
    pipeline = self.add(config_or_filename)
  File "/home/baseet/videoStreamer/awsStreamer/awstreamer/gst_pipeline/stream_client.py", line 162, in add
    pipeline = PipelineFactory.createPipeline(pipeline_config)
  File "/home/baseet/videoStreamer/awsStreamer/awstreamer/gst_pipeline/pipeline_factory.py", line 47, in createPipeline
    return class_(config) or None
  File "/home/baseet/videoStreamer/awsStreamer/awstreamer/gst_pipeline/stream_pipeline.py", line 49, in __init__
    self.build(self.config)
  File "/home/baseet/videoStreamer/awsStreamer/awstreamer/gst_pipeline/stream_pipeline.py", line 77, in build
    self.graph.add(v, k)
  File "/home/baseet/videoStreamer/awsStreamer/awstreamer/gst_pipeline/stream_graph.py", line 43, in add
    raise Exception(msg)
Exception: Failed to make element sink of type kvssink

INFO:awstreamer.gst_pipeline.stream_client:GST_PLUGIN_PATH: awstreamer/gst_pipeline/../gst_plugins:/usr/lib/gstreamer-1.0/

awstreamer/gst_pipeline/../gst_plugins:/usr/lib/gstreamer-1.0/

These '>>>' characters above look weird, do you get them every time? GST_PLUGIN_PATH path should be just this way awstreamer/gst_pipeline/../gst_plugins:/usr/lib/gstreamer-1.0/. Maybe that's the problem.
Another thought, try to clean GStreamer cache: rm -rf ~/.cache/gstreamer-1.0/

I'm printing these characters on my code,
and unfortunately cleaning cache didn't work also

Could you checkout bpawlik-kvs-path branch or just cherry pick this commit https://github.com/awslabs/aws-streamer/pull/5/commits/5f050371aec4021dd43d1583fe94ce04fb186d4c and let me know if that works for you? If so, then it means that for some reason gstreamer plugin manager in your system is not able to recursively search for plug-ins. I can then modify the codebase accoringly.

Its not working
I don't know if that will help but if I set GST_PLUGIN_PATH from my code to the same set path from module awstreamer/gst_pipeline/../gst_plugins:awstreamer/gst_pipeline/../gst_plugins/kvs:/usr/lib/gstreamer-1.0/ or awstreamer/gst_pipeline/../gst_plugins:/usr/lib/gstreamer-1.0/ it worked regardless if I disable setting from module or not
also exporting from terminal worked.
But I'm confused because I can print it's value from my code, so what is the different between setting it from my code and setting it from module?

But I'm confused because I can print it's value from my code, so what is the different between setting it from my code and setting it from module?

There is no difference as far as I know. If you could provide docker image with the code that you run then perhaps it would be easier for me to debug, otherwise it's just guessing on my part..
Nevertheless, I think setting GST_PLUGIN_PATH explicitly in your code or in terminal is a decent solution and can qualify to close this issue.

Okay
Thank you for your time


Laravel DI in controller constructor

I've tried to use interface in constructor, but was faced an issue that it couldn't be instantiated.
This wouldn't work:
public function __construct(ExampleInterface $example)
{
    dd($example);
}

This works:
public function __construct()
{
    $example = app(ExampleInterface::class);
    dd($example);
}

Any ideas how to solve it without vendor lock?

I assume you are using the hears command in combination with the 'Controller@method' syntax?
This will not work because BotMan only uses call_user_func_array with the class and method name.
https://github.com/mpociot/botman/blob/master/src/Mpociot/BotMan/BotMan.php#L206-L207
As BotMan tries to be as framework independent as possible, this can not be achieved otherwise I guess.
Maybe this can somehow be done in the botman-laravel-starter package?

@mpociot I just thought about ability to set somehow strategy of building controller classes. If not set - use default. This will give an ability to extend it for any framework I suppose.


Where can I find Panoptic baseline performance for models such as MaskRCNN?

As the title describes.

https://github.com/open-mmlab/mmdetection/tree/master/configs/panoptic_fpn


add documentation for choice variables

The documentation follows the following outline (#600):

basic usage describing how to use choice variables in templates
providing default values using .cookiecutterrc

Current coverage is 99.21%

Merging #611 into master will not affect coverage as of d501f93

@@            master    #611   diff @@
======================================
  Files           12      12
  Stmts          511     511
  Branches         0       0
  Methods          0       0
======================================
  Hit            507     507
  Partial          0       0
  Missed           4       4

Review entire Coverage Diff as of d501f93

Uncovered Suggestions

+0.39% via ...ookiecutter/utils.py#27...28
+0.39% via ...okiecutter/config.py#19...20

Powered by Codecov. Updated on successful CI builds.

thanks for the fast feedback, I'll integrate the feedback when I am back home.


Are externalRules still supported in v0.9.1?

I tried configuring external rules and the Prometheus Adapter doesn't complain but when I query the api or just show all the apis i don't see the api (/apis/external.metrics.k8s.io/v1beta1/) is available.
configuration follows:
rules:
<stuff here>
externalRules:
- seriesQuery: '{__name__:'my_metric_name'}
  resources:
    namespaced:  false
  metricsQuery: sum(<<.Series>>{<<.LabelMatchers>>}) by (<<.GroupBy>>)

You can close this.  I didn't create the external artifacts on initial install.


Eliminate variable elements from page generation

The problem
Every page includes the commit with which it was generated. This is not the last commit that changed the page, but the last commit that changed anything. This means that every time you change anything, every single page changes. This breaks havoc on caches, and does not really help with hosting pages in a repo as we do with perl6docs.github.io
Suggestions
Many options

Just eliminate it. It's not really an information that the user needs to know, and developers can find out in many different ways.
Put the information in a JSON file somewhere, add a link from the page.
Put the information in a JSON file, use JS magic so that the aspect of the page does not really change (but the source code stays the same).

I think we could simply eliminate it. I am not sure about if it's useful or even someone actually uses it.

This is not the last commit that changed the page, but the last commit that changed anything.

+1 for eliminating.
I suspect that Generated on 2019-07-23T08:53:05Z [Debug: off] line brings us the same outcome and I wonder what's its worth.


Contact page - Custom field chart is not showing correct number

Describe the bug

custom field chart is not showing correct number
there is only single value in added but it showing 8/8

Screenshots

Custom Filed Record Update Every Week


fix(dropdown): fix behavior when we have the error prop

Was noticed that the last version of the dropdown component has a weird behavior when we pass an error text to it.
This PR fixes it.
Changes:

Fix arrow Icon behavior
Change label color

Screenshots
Before:

After:

@frgiovanna I noticed that you changed the color of the label and the arrow inside the dropdown in case of error, when according to the original component only the helper is orange as we can see here
we cannot change the original styles of the component in the implementation when the specification on figma says otherwise, please, can you review with your PD along with yoga pd's?

Sorry, I noticed that I was following a non-official spec. I'm changing back and keeping only the arrow position fix

Hi @frgiovanna! Thanks for your contribution!
How about using conventional commits? We have a script that helps us with this
yarn commit

Hi @frgiovanna! Thanks for your contribution!
How about using conventional commits?


Cant build under Ubuntu 12.04.5 LTS

I ve got the following error
phantomjs/src/qt/qtbase/plugins/bearer -lqgenericbearer -lQt5Network -lssl -lcrypto -lQt5Core -lz -licui18n -licuuc -licudata -lm -ldl -lrt -lpthread
collect2: ld returned 1 exit status

Thank you for submitting this ticket!
This issue tracker primarily serves as the tool to report and track bugs, defects, and development tasks.
For general question, code review request, build problem, or other related discussion, please post it to either:

the official PhantomJS users mailing-list
Stack Overflow (with phantomjs tag)

If you have not read it yet, please check also a few tips on Effective Q&A.


Update listdir() in sample code docs to take correct args

Executing this code (Python 3.11, MacOS) returns error TypeError: listdir: path should be string, bytes, os.PathLike, integer or None, not TemporaryDirectory Using the string name of the dir works better.

Why are these changes needed?
The code sample in the tutorial doesn't run successfully
Related issue number

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 36.11%. Comparing base (6c3d779) to head (6c75e76).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2261      +/-   ##
==========================================
- Coverage   37.94%   36.11%   -1.84%
==========================================
  Files          77       77
  Lines        7784     7784
  Branches     1667     1667
==========================================
- Hits         2954     2811     -143
- Misses       4580     4734     +154
+ Partials      250      239      -11

Flag
Coverage Δ

unittests
36.11% <ø> (-1.83%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Godot 4 compatibility

I'm trying to get this project working in Godot 4 but getting ... Error while loading file 'main.tscn'.
I can get the player scene to open but that is also having an error when I try to play the scene.
Are there any plans to upgrade this project for Godot 4 ?

bumping


[Issue 4601,5215][pulsar-io-jdbc]Support   postgresql，sqlserver，mariadb，clickhouse jdbc source sink

Support  jdbc source sink,Including  postgresql，sqlserver，mariadb，clickhouse
Fixes #4601 #5215
Motivation
Support  almost all  jdbc source sink。
Modifications
Describe the modifications you've done.
add JdbcDriverMapping class，and modify the getDriverClassName method.

Do we provide driver package  ? Isn't it supposed to be provided by users?

Do we provide driver package ? Isn't it supposed to be provided by users?

How do users provide the driver package? For example, if I have a Postgres database, how do I run the JDBC connector?

I think if java's classloader mechanism can be used to load these packages, then the user should provide a driver parameter for the connector to load this jar package. Of course, for different databases, add, delete, update and the query should also be somewhat different, which may require separate processing and additional tests. This is only my idea, and I have not tested it yet.

my question is - as a user, how do I upload the driver or configure the driver in order to use this JDBC connector? This is the first question we have to answer for the users. but I don't see how does this pull request address it. So can you show me an example?

I think add the YAML file and the  Related packages  to the connectors  folder，Isn't working now？May be i got it wrong。

@huangdx0726

I think add the YAML file and the Related packages to the connectors folder，Isn't working now？May be i got it wrong。

Not sure if it can work or not.

We need a tutorial or an example to show this approach can work.
We need documentation to let users know how to configure it.

I don't see this pull request cover any of them.

em，I see the documentation ，may be add dependency of driver packages in pom.xml file in current  approach  of pulsar source。

I have added the dependency of driver packages in pom.xml file.

@huangdx0726 I don't think it is a good idea to put all drivers together. 1) it will make the NAR package very large; 2) it becomes very difficult to manage the dependencies.

@sijie  I think so, May I can try loading the driver package before functionworker starting。

The approach still has a couple of problems.

it only works if you run function worker as part of broker or as separate process. It doesn't work if you run connectors in Kubernetes.

it is going to be hard to ensure people place the right jar in the connector directory. especially when you scale up the clusters, how do you ensure people add the right jar in the connector directory?

I think a better approach is to have different type of connectors with different drivers.

create a parent module of pulsar-io-jdbc
create sub modules. each module inherits the parent module and add different types of drivers. we generate a connector for each module. Thus one connector bundles one driver. Hence we will have pulsar-io-jdbc-mysql for mysql driver, pulsar-io-jdbc-sqlite for sqlite, and etc.

Move this to 2.6.0 since the solution is still unclear and the discussion is still ongoing.

The approach still has a couple of problems.
1. it only works if you run function worker as part of broker or as separate process. It doesn't work if you run connectors in Kubernetes.

2. it is going to be hard to ensure people place the right jar in the connector directory. especially when you scale up the clusters, how do you ensure people add the right jar in the connector directory?

I think a better approach is to have different type of connectors with different drivers.
* create a parent module of pulsar-io-jdbc

* create sub modules. each module inherits the parent module and add different types of drivers. we generate a connector for each module. Thus one connector bundles one driver. Hence we will have `pulsar-io-jdbc-mysql` for mysql driver, `pulsar-io-jdbc-sqlite` for sqlite, and etc.

Ok,I'll try by the approach .

@sijie this pulls request can be closed because it was integrated into #6835 that was merged to the master branch.

Closed this issue since #6835 was already merged.


save_current_best functionality

It might be nice to have a command that saves the current best fully fit model to a pickle file for later use.

If one does multiple iterations of CV, would it just randomly choose the last one done? For example, if I find my best model by doing five iterations of 50/50 shuffle-split, which iteration- i.e. which randomly chosen 50% of the data gets modeled? If I were telling someone how to Osprey I would say that they should use CV to choose the best model, which by definition involves fitting to a subset of the data, but then should use those parameters to construct the best model on the entire dataset. So maybe something that would make sense would be a sort of ConstructBestModel command that grabs the current_best parameters and fits all the data to a model, then saves it.

Yup, that's I had in mind!

done in #232


Fixing index selection in spike_triggered_phase (see issue #381)

This fixes replaces the mechanism of finding the indices of the array of sample times left to each spike.
Previously, this was done by calculating the spike position in the times-array via the sampling rate, rounding, and checking if the sampling point is actually to the left of the spike. This approach is a bit convoluted and may cause errors in some conditions (issue #381).
The PR replaces this with the numpy function searchsorted() which fixes the bug, is more straightforward, and computes faster.

Hello @rgutzen! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file elephant/phase_analysis.py:

Line 134:1: W293 blank line contains whitespace

What problem do you mean with inserting 2.9 ms spike into [0,3,6]? The new code has the same behaviour as the previous to select the sample point to the left. There is an optional additional step if interpolate=True in the function to relate to better relate it to it's right sample point.
The alternative to searchsorted() would be
ind_at_spike = ((spiketrain - hilbert_transform.t_start) / hilbert_transform.sampling_period).simplified.magnitude.astype(int)

which yields the same results, and is a bit slower.
Corner cases are anyway excluded in the function (line 125/126)
# Take only spikes which lie directly within the signal segment -
        # ignore spikes sitting on the last sample
        sttimeind = np.where(np.logical_and(
            spiketrain >= start[phase_i], spiketrain < stop[phase_i]))[0]

Coverage decreased (-0.003%) to 89.912% when pulling 7763175f647709b2924236a4ec333a4be4500cda on INM-6:fix/spike_triggered_phase_indices into a6a085466f1d821cb9ef83c34db05a0f32e8f166 on NeuralEnsemble:master.

I switched back to using the calculation via the sampling period and fixed an additional bug as the phases we stored slightly differently when interpolating or not.
In the previous unhandled case that there is a spike occurring after the last sample time and t_stop, and interpolate=True, the interpolation for this spike time is now skipped since there is no right-hand sample point to interpolate between.

Yes, floating-point errors like this would lead to a shift in the corresponding sample point. However, just rounding (even with a low tolerance factor) can again introduce the issue of trying to access the last+1 sample point. So, there is some further thinking required. I agree, let's do this one at a time.


Adding Auth

How to use the Auth:

Create a new steam account or use an already existing alt account
Open Fiddler
Open MultiVersus
Search in Fiddler for the following request (should show up after the multiple epic requests)

Get the steam ticket

Close MultiVersus and logout from your steam account
==> If you login into that steam account again the steam ticket will change and you have to do the first 5 points again
Enter the steam ticket into your code and execute the auth() function in the beginning

For me this version of authentication has worked the past 4 days with only one time getting the steam ticket in the beginning, after that set the auth() function into an interval of 24h and your done. I don't really know if this steam ticket really works forever (what i doubt) but it seems to work for a long time.
(I also use it for this API, the pendant to the valorant edition

You can generate a steam ticket if you have the username and password of the steam user. This would make worrying about it not lasting forever go away.
There's an example which isn't suitable for this repo on my cjs branch. I'm using it right now for a personal project which is why the branch has stuff that aren't suitable for most, but it may help:
https://github.com/steven4547466/multiversus.js/blob/cjs/index.js#L8-L9
https://github.com/steven4547466/multiversus.js/blob/cjs/index.js#L19-L32
https://github.com/steven4547466/multiversus.js/blob/cjs/index.js#L295-L310

Implemented as of 1.0.6.


Feature/nav 70 gtfs reader only required fields

implement gtfs reader strategy
setup unit tests
setup benchmark
in a next step the data has to be prepared for the raptor algorithm

use this as a reference for vcpkg https://www.jetbrains.com/help/clion/package-management.html


HTML Component loses Context

When working with HTML component you loose all the React contexts, breaking libraries like MaterialUI that relies on theming.
It's possible to find another solution that doesn't involve calling ReactDOM.render, maybe using portals?

i would love that, but it's hard to do i guess. portal cant render from one reconciler into another, if you create a portal inside canvas, it expects threejs elements, not divs and spans. and even if, context wouldnt even go into . i hope the react team will figure this out at some point, because mixing reconcilers quite jarring.


SNI.

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/8588/

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/8595/

Two tests have been green already in Jenkins. However, I have only added a test for SNI in the latest two commits. New test is running.

Final decision about whether this is an enterprise feature or not is not yet taken. PLEASE DO NOT MERGE. See also: https://github.com/arangodb/enterprise/pull/394

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/8617/ new run necessary because previous was ruined by a jslint failure due to a merge from devel.

This test run only has the known hotbackup problem. So it is considered to be green.

http://jenkins.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/8862/

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/8915/

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/8929/


Add timing extension

Name of the extension you are adding
Timing
Why do you think this extension is awesome?
It eases timestamp conversion. It enhances productivity when you have to deal a lot with database or log file timestamps.
Just hover over an epoch timestamp and it shows you the corresponding UTC one.
Make sure that:

[x] Screenshot/GIF included (to demonstrate the plugin functionality)

[x] ToC updated

The CI pipeline unfortunately fails due to other broken links. The timing-links work as expected.


Use GIProbe with CSG

Godot version:

Godot 3.1 master
Issue description:
I noticed that currently the ability to use CSG meshes and primitives in baked lighting seems to be lacking. Is this a general technical limitation of CSGs or is this something that might likely get added eventually? Since I found myself using CSG a lot lately even beyond simple prototype/placeholder assets, it would be really nice to be able to effectively use GIProbes in scenes using (mostly) CSG shapes.

It appears to work for me, maybe it's bakedlighting that doesn't?


Question about tmuxinator (help needed)

Hey,
I have looked arround and found finally tmuxinator to easylie setup my tmux but I am a bit confused and know I think that I can't get waht I want/need.
What I want/What I need is the following:
Having setuped two klickable bars when in the tmux session (if this is a feature from tmuxinator, then sry for this mistake).
The bottem line should have one window for each of the following:
root, minecraft server/factorio server/ts3 music bot
The line above should then contain the windows for this user/system as followed:
root: splited window where I have on teh left side a root shell and on the right side htop and nmon
minecraft/factorio server/ts3 music bot: Here comes the first problem. My Server has restarttimes and it also runs in screen sessions which I can only acces if I am logged in with the correct user (not over "su" cmd, it must be a direct login like a fresh opned putty shell).
Also, as long as tmux(inator) is not killed the windows should automaticly trying to reattach to the terminated screen when the software behind it restarts (I hope that this is possible).
Means at first that the window is splitted like the root window but on the left side there should be the attached screens and on the right side shoult be htop on the top right and the prefered user shell on the bottom right.
I hope that this is possible because I have seen this but I don't know if this only works if I use the PubkeyAuthentication or if this also works with user+pw (if not then I must change this to get this work).
Finally I should then be ablte to can click on each tab/window for easy switch to use then the correct tmux cmd to switch through the panes.
If this isn't possible then forgett about those panes and use for each one window.
Well, since the secound part will be multiplied only one pice of the required code is needed.
I hope you can help me because even with up to 4 monitors it is horrible to have over 5 putty terminals open.

Push

Push

@chaos234, it is not really necessary to push issues on github, it won't get answered faster.
Moreover, would you mind putting a more explicit title for the issue?

@NicolasWebDev Maybe this should be a better titel?

@chaos234 I'm not sure what you're going for here, but it doesn't sound to me like this is an issue (i.e. a problem with tmuxinator), but one of understanding how to get it to (maybe) do what you'd like.  For something like that, I'd suggest the tmuxinator gitter room in order to ask questions and get feedback; what's here is not very understandable.
I'm going to close this as an issue until (if/when) we figure out there is an actual problem.

@adamstrickland - Ähm ... if this will be an issue why I should then state it with Question/Help needed? This would make no sence and sorry but my text is fully understandable since I have written it detailed.
Closing this since it isn't resolved, is not the right way. Especialy then when you have no understanding what I want (then leave it to other ones).


Annual water budget maps incorrect

The 'Annual Water Budget' maps, defined as ppt-AET, are not producing realistic values. In Lake Tahoe runs they produce integers of very low values (e.g. 1), where in reality the numbers are in the high hundreds (e.g. 800mm). I'm not sure where the error in calculation occurs, but monthly AET should be summed to create AnnualAET, which is then subtracted from annual precip. Alternatively, I guess it could calculate monthly ppt-monthly AET and then sum them for a given year

@mslucash I included an individual year's monthly climate data from Tahoe (1980LTB.csv) in the Test_SpatialIgnitions folder in your main scheller_lab directory. I also replaced the climate generator text file. They should be functional to use for monthly testing of these maps

Alec, has this been resolved?

Not yet, still looking into it

I said I'd look through the SoilWater code this week, but I just got waylaid with the single cell problem.

These look much better! They're in the right order of magnitude now, so I am going to consider this issue closed, unless further testing warrants its re-opening. Thank you!


Netstandard fix dependencies

Just a little update to your pull request by fixing dependencies (NewtonSoft.Json and Microsoft.Extensions.Logging are not required here).
Also sets the SDK to preview2 in global.json.

@clegendre a pull request over another pull request is really confusing. You could just comment the original one. That's why the comment section is there.

@jaime-olivares  Sorry, just wanted to contribute. You can integrate these changes into your pull request and I will close this one.


Update CI.yml

Description
Codecov should now work without specifying keys as the GHA API is now stable and updated!
Changelog description

Status

[x] Code base linted
[x] Ready to go

Huzzah!


upgrade-react-scripts

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues,
Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the
changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.

Current dependencies on/for this PR:

main

PR #863   (this PR)

This comment was auto-generated by Graphite.


First draft of simplified Manifest fact structures.

This commit creates the Datalog data structures and relationships to be used in specifying input facts to the dataflow analysis. In many cases, these are simplified, mostly by omitting type information. The goal here is to be able to represent a simple manifest containing a few particle specs that only read and write handles, claim a label on some handle connection, and check it later.
This commit assumes that the manifest facts we provide to the dataflow analysis will have a structure that is matched closely to the original manifest protobuf. Eventually, we will be creating a tool that translates manifest protobufs to be analyzed into facts. Having a structure that matches the original protobuf as closely as possible in Datalog will allow this translation tool to be simple and insulate it from knowledge about the inner workings of the Datalog dataflow analysis.
This is in first-draft state; I am not certain that this even compiles at this point. Nonetheless, it is probably worth putting it up so others can see what I'm thinking at this point.

Gogul and I discussed this, we need to send a more abstracted version of this to Datalog. Closing this.


proposed solution for dimension filtering configuration notation

this is just config proposal; implementation itself will need to come :)

Hi @pawelsiwek - Sorry to push, but do you know what the timelines are for this feature? We are hitting our dimension tuple limit and are banking on this feature to avoid it

@jackstuart92 it is being implemented currently in branch https://github.com/dynatrace-oss/dynatrace-gcp-function/tree/APM-294693-introduce-metrics-dimension-filters

@sq2gxo thank you

Implemented in https://github.com/dynatrace-oss/dynatrace-gcp-function/pull/98


Add WENO5 Variants

Description
This PR adds WENO-Z (Borges, et al., 2008) and TENO (Fu et al., 2016) options on top of the existing WENO-JS and WENO-M schemes. WENO-Z is less dissipative and less costly than WENO-M, and is much less dissipative than WENO-JS while being similar in speed. TENO has even better spectral properties than WENO-Z, but can be less robust in extreme scenerios.
Please refer the the updates documentation for more details.
Type of change

[x] New feature (non-breaking change which adds functionality)

Scope

[x] This PR comprises a set of related changes with a common goal

How Has This Been Tested?

[x] 1D Shu-Osher Comparison at Nx=200
The 1D Shu-Osher test results are compared against those of Fu et al. (2016). Note that $C_T = 10^{-6}$ is used for TENO in our test as opposed to $C_T = 10^{-5}$ stated in the paper. The 'exact' solution is calculated using WENO-JS at Nx=2000, as suggested by Fu et al. (2016). The case files are included in the updated examples folder.

Fu et al. (2016)

[x] 1D Shu-Osher Comparison at Nx=1000
The same test but at higher resolution to show convergence.

[x] 2D Riemann Problem
The case files are the same as those in the example folder, with WENO-JS changed to WENO-M, WENO-Z, and TENO. The results show slight differences due to the chaotic nature of the simulation, and the better spectral properties are evident in the more prominent swirls at the same resolution (TENO > WENO-Z > WENO-M > WENO-JS).

WENO-JS (on MFC Website - Example Cases)

WENO-M

WENO-Z

TENO

[x] 2D Shock-Droplet Interaction
The case files are the same as those in the example folder, with WENO-M changed to WENO-Z and TENO respectively. The results are simliar to each other and to the original result using WENO-M on the MFC website within expectations.

WENO-M (on MFC Website - Example Cases)

WENO-Z

TENO

Test Configuration:

What computers and compilers did you use to test this:

1D tests: Ubuntu 22.04.4 LTS; GNU v11.4.0
2D tests: Richardson

Checklist

[x] I have added comments for the new code
[x] I added Doxygen docstrings to the new code
[x] I have made corresponding changes to the documentation (docs/)
[x] I have added regression tests to the test suite so that people can verify in the future that the feature is behaving as expected
[x] I have added example cases in examples/ that demonstrate my new feature performing as expected.
They run to completion and demonstrate "interesting physics"
[x] I ran ./mfc.sh format before committing my code
[x] New and existing tests pass locally with my changes, including with GPU capability enabled (both NVIDIA hardware with NVHPC compilers and AMD hardware with CRAY compilers) and disabled (Note: not for AMD hardware)
[x] This PR does not introduce any repeated code (it follows the DRY principle)
[x] I cannot think of a way to condense this code and reduce any introduced additional line count

If your code changes any code source files (anything in src/simulation)
To make sure the code is performing as expected on GPU devices, I have:

[x] Checked that the code compiles using NVHPC compilers
[ ] Checked that the code compiles using CRAY compilers
[x] Ran the code on either V100, A100, or H100 GPUs and ensured the new feature performed as expected (the GPU results match the CPU results)
[ ] Ran the code on MI200+ GPUs and ensure the new features performed as expected (the GPU results match the CPU results)
[x] Enclosed the new feature via nvtx ranges so that they can be identified in profiles
[x] Ran a Nsight Systems profile using ./mfc.sh run XXXX --gpu -t simulation --nsys, and have attached the output file (.nsys-rep) and plain text results to this PR nsys_report_wenoz.txt
[ ] Ran an Omniperf profile using ./mfc.sh run XXXX --gpu -t simulation --omniperf, and have attached the output file and plain text results to this PR.
[x] Ran my code using various numbers of different GPUs (1, 2, and 8, for example) in parallel and made sure that the results scale similarly to what happens if you run without the new code/feature

16M points

Comments

New tests are generated for WENO-Z and TENO, for weno_order=3,5 and dim=1,2,3 where applicable. The golden files for WENO-M and MP_WENO are regenerated due to an improvement in how cases files are generated (the parameters are now optional), but all tests are performed before and after the regeneration to ensure that the results match. All tests before and after are passed on CPU (locally on Ubuntu and on Richardson), and on GPU (Delta).
The current implementation for WENO-M (if statement within WENO-JS) is improved using case-optimization, which is necessary for adding new WENO variants without affecting the performance. The attached performance report shows that the performance of the new code is virtually identical to the original code for WENO-JS and WENO-M, and marginally better at 8 GPUs. The performance of WENO-Z and TENO matches the expectations according to the theory and other papers (WENO-JS ~ WENO-Z > TENO >> WENO-M).
I only have access to Delta, which has Nvidia GPUs, but the changes to the GPU code are minimal and have very simple logic. Extensive tests have been performed on those GPUs to ensure the results are correct and the performance is as expected.

This is an example of a great PR! Good use of added tests, toolchain involvement, proof that it works as intended, and only the required minimal code additions. Will review it a bit more thoroughly tomorrow.


Refactor the way aggregated are being collected and passed to consumers

It has become rather hard to with this, hence the refactor.

@all-contributors please add @iridakos for ideas


consistent MidiPlayer implementation

Right now the unit tests don't consistently complete, involves a handful of delay() hacks to probably workaround blocking issues, and time calculation is not consistent while it should be. We need a solid implementation based on coroutines.

Also, what we're doing right now is to launch an async delay(forever) and wait for cancel() every time it has to wait, which is compleltely nonsense compared to AutoResetEvent.Wait() in managed-midi. There should be decent alternative in kotlinx-coroutines.

delay+cancel is replaced by Semaphore as of 6690e5.

At this state, the overall design is not great. MiidPlayerTimer's proceedBy() is "fire and forget" style, and after calling this method we are not sure if the bound MidiPlayer actually proceeded to next event (or stuck at Semaphore) or not.
A possible solution: rewrite the actual playback engine (MidiEventLoop) while keeping MidiPlayer API as is.

The MidiPlayerTimer test failure seemed caused by the order of tester's TimeSource.Monotonic.markNow() vs. SimpleAdjustingMidiPlayerTimer() (constructor) which calls its own TimeSource.Monotonic.markNow(). Reordering the code seems to fix the issue, or made it more successful than before.
We could replace TimeSource.Monotonic with TestTimeSource but that makes testing quite pointless.
Since consistent MidiPlayer should rather be implemented in native non-GC non-JIT languages, we would not try to make extra effort for it for now.


fix: update unit tests to work without any additional dependencies

Coverage decreased (-0.9%) to 87.684% when pulling 3a6c8660761d1654c28e0295f94397a64d8ee3e7 on fix/unit_tests into 9a73d652cc0bbd82d82dcf6ac746a1f4616debef on master.


feat(coral): Topic messages: Add topic message list #1235

User is able to view topic content

"5" is hardcoded as the offset (always 5 latest messages) for the message request. The filter + button to consume has it's own ticket.
selected env is hardcoded for the message request, needs a follow up pr when the env is selectable and available through useTopicDetails
partition and timestamp are not available as metadata
The "notdefined" for consumer group is copied over from the old ui. I assume it is a magic value that shifts the responsibility for making up the consumer group id in the client to the server side.

If consuming messages is succesful, the api returns messages as: { 0: 'HELLO', 1: 'WORLD' } where key = offset. If there is no topic content or consuming failed, the endpoint returns { "status": false }. Currently, the deviating response is handled with a typeguard.

Resolves:  #1235

@mathieu-anderson Thank you for the review! 👍🏼


dev: remove package tools as clean up

Currently for packages tools it mostly used by test package.
Hence remove function from tools to test package, and remove package tools as refactor.
in further if we want to replace fabric cli, we'd better create a cmd package and put implementation there?

if we want to replace fabric cli, we'd better create a cmd package and put implementation there?

There is already a hyperledger/fabric-cli project. It's currently based on the legacy Go SDK. If the CLI there looks good, perhaps we could rework that project and base it on this admin SDK. It might be a good discussion to have on a Fabric contributor call.

if we want to replace fabric cli, we'd better create a cmd package and put implementation there?

There is already a hyperledger/fabric-cli project. It's currently based on the legacy Go SDK. If the CLI there looks good, perhaps we could rework that project and base it on this admin SDK. It might be a good discussion to have on a Fabric contributor call.

en, maybe we can ask them to switch to our package to avoid duplication works?


Getting AppList with handler: Handler block not run

I recently switched from AppList to libSparkAppList because AppList had too many features that I didn't need. I attempted to get an NSArray of SparkAppItems using
[[[NSClassFromString(@"SparkAppList") alloc] init] getAppList:^(NSArray* apps){
        RLog(@"AppList: %@", apps);
}];

inside of my viewDidLoad for my preferences list controller.
But I have found that the handler block is never being run. I am not %100 sure that this is the proper usage of getAppList but I could not find any examples for it, so this was my best attempt. Is this not the proper usage or is there something else wrong, like improper installation or a bug? Thank you!

It’s not necessary at all, it means you aren’t linking the library properly.
That’s why it won’t be working as the library isn’t actually getting loaded. Make sure you follow the instructions, include the library in the make file, include the header, and try running a make clean.

Okay, It is working perfectly now. I had to also add it to the libraries section of my preferences makefile as well. Thank you for the help!


PoC of dynamically loaded golang provider

This PoC shows that we can use a raw golang sourcefile as a plugin
source.
Limitation might revolve around imports but the basic functionality seems to be there
Use: curl -x http://localhost:8080 http://sgnn7.org
2019/08/30 13:38:33 Initializing health check on :5335...
2019/08/30 13:38:33 Initialization of health check done. You can access the endpoint at `/live` and `/ready`.
2019/08/30 13:38:33 Starting all listeners and handlers...
2019/08/30 13:38:33 Attaching filesystem notifier onto ./secretless.yml
2019/08/30 13:38:33 Registering reload signal listeners...
2019/08/30 13:38:33 http listener 'http_auth' listening at: [::]:8080
2019/08/30 13:38:33 Shutting down 'http' listener...
2019/08/30 13:38:33 Shutting down listener's handlers...
2019/08/30 13:38:33 Starting all listeners and handlers...
2019/08/30 13:38:33 http listener 'http_auth' listening at: [::]:8080
2019/08/30 13:38:48 Got request / sgnn7.org GET http://sgnn7.org/
2019/08/30 13:38:48 Matching handler pattern .* to request http://sgnn7.org/
2019/08/30 13:38:48 Instantiating provider 'interpreterenv'
2019/08/30 13:38:48 Started literalenv provider
2019/08/30 13:38:48 Getting variable value of PASSWORD from literalenv...
2019/08/30 13:38:48 Reading source file ./resolver.go...
2019/08/30 13:38:48 Provider file read
2019/08/30 13:38:48 Creating interpreter...
2019/08/30 13:38:48 Evaluating source code...
2019/08/30 13:38:48 Finding resolve function...
2019/08/30 13:38:48 Invoking resolve function...
2019/08/30 13:38:48 Got variable value of PASSWORD from literalenv: PASSWORD with dynamically-provided text
2019/08/30 13:38:48 Getting variable value of USERNAME from literalenv...
2019/08/30 13:38:48 Reading source file ./resolver.go...
2019/08/30 13:38:48 Provider file read
2019/08/30 13:38:48 Creating interpreter...
2019/08/30 13:38:48 Evaluating source code...
2019/08/30 13:38:48 Finding resolve function...
2019/08/30 13:38:48 Invoking resolve function...
2019/08/30 13:38:48 Got variable value of USERNAME from literalenv: USERNAME with dynamically-provided text
2019/08/30 13:38:48 Authenticating...

Closing this since we won't be using this approach (at least on the current roadmap)


Smarts map coordinate system

Problems
I noticed that smarts map is not centered but rather started at left bottom corner? I am wondering whether I can center the map, or get the bounding box of the map so I can convert the agent location into a centered map.
I need to figure this out to get a third part library to generate actions for some custom agents I implemented. They centered the map, so I need to do the conversion.
Let me know if my question is not clear or you need more information. Thanks!

Hello @yuant95, if you have access to the underlying SMARTS instance you can use it to get the map:
smarts_instance = hiway_env._smarts
hiway_env.reset()
## the current road map is available after SMARTS.reset(scenario) or HiwayEnv.reset()
center = smarts_instance.road_map.bounding_box.center

another option is to get the road map centers beforehand
scenario_roots = smarts.core.Scenario.get_scenario_list(scenarios_or_scenarios_dirs)
for root in scenario_roots:
    map_spec = smarts.core.Scenario.discover_map(scenario_root, 1.0, None)
    road_map, road_map_hash = map_spec.builder_fn(map_spec)
    center = road_map.bounding_box.center

Another option is to use the metadata from the glb https://github.com/huawei-noah/SMARTS/pull/1716/files.
meta = road_map.map_glb_metadata
bounding_box = meta["bounding_box"]


add a second creatable option

Adding a second newOptionCreator so that we can pass in two different options when a user types something unique.
src/Creatable.js is the precompliation source file that contains the main changes.
lib/Creatable.js is the compiled version
examples/src/components/Creatable.js is the example on the doc page that's useful for testing / demoing the change.
The rest of the files were compiled by running npm run build.
https://app.asana.com/0/281605278266465/374433993661621/f

@jmondo you reviewed the compiled code


PreProcess input means and how to modify them

Hi,
In preprocess I need to make inputs between 0 to 1 just by dividing it to 255 in order to use yolo model.
	else if( IsModelType(MODEL_ONNX) )
	{
		// SSD (PyTorch / ONNX)
		if( CUDA_FAILED(cudaTensorNormMeanRGB(input, format, width, height,
									   mInputs[0].CUDA, GetInputWidth(), GetInputHeight(),
									   make_float2(0.0f, 1.0f),
									   make_float3(0.5f, 0.5f, 0.5f),
									   make_float3(0.5f, 0.5f, 0.5f),
									   GetStream())) )
		{
			LogError(LOG_TRT "detectNet::Detect() -- cudaTensorNormMeanRGB() failed\n");
			return false;
		}
	}

I guess this is the function that I should modify.
What does these inputs mean?
I Guess make_float2 decides the min and max values.
But I did not understand the rest?
How can I just map my image data to 0-1 without and normalizing operations?

Hi @sezer-muhammed, the pre-processing functions you can call are found here:  https://github.com/dusty-nv/jetson-inference/blob/master/c/tensorConvert.h
That first float2 argument is the range of the values - it's already configured to map the image data to [0,1]
The float3 is the mean pixel value which is subtracted from each pixel (set this to make_float3(0,0,0) to disable it).  The second float3 is the std deviation.   If you want to disable these you can just use the other cudaTensorNormRGB() function instead which doesn't have mean/stddev

Thanks!


Provide API to check whether a project can be deleted or not

I have some concerns please hold this.

Done


[FEA] Enhance unsupported operator analysis with schema type details

To allow for more accurate analysis when qualifying workloads, we want to enhance the qualification tool to have more details about unsupported operators by type and also to parse the event log for available schema details to analyze supported operators by type.
CC @kuhushukla
### Tasks
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/769
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/793
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/782
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/781
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/749
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/696
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/645
- [ ] https://github.com/NVIDIA/spark-rapids-tools/issues/715

One request before we have databricks supported opreators.csv, could we mark ephemeralsubstring as supported since this feature is added as per https://github.com/NVIDIA/spark-rapids/pull/7797? thx


Add support for systemd

As a Sysadmin
I want Kong to support systemd init scripts
So that I can start Kong using default init system on Ubuntu 16

Closed by #5


In Solarized themes, some things aren't visible in powershell

Environment
Platform ServicePack Version      VersionString
-------- ----------- -------      -------------
 Win32NT             10.0.18363.0 Microsoft Windows NT 10.0.18363.0

Steps to reproduce

Set theme to Solarized Dark or Solarized Light and run Powershell.
Expected behavior

For Solarized Light, I expect to be able to see numbers and members.  For Solarized Dark, I expect to be able to see operators and parameters.
Actual behavior
I cannot.

In Solarized Light, bright white is set to the same color as the background.  So any token set to bright white becomes invisible.  This is from get-psreadlineoptions:
Member             "$([char]0x1b)[97m" # bright white
Number             "$([char]0x1b)[97m" # bright white

In Solarized Dark, bright black is set to the same color as the background.  So any token set to bright black becomes invisible.  This is from get-psreadlineoptions:
Operator           "$([char]0x1b)[90m" # bright black
Parameter          "$([char]0x1b)[90m" # bright black

A workaround for Solarized Light (console colors and ansi colors have slightly different names):
if (test-path env:wt_session) { set-psreadlineoption -colors @{member =
  'darkblue'; number = 'red'}}

I didn't understand how the themes "redefine" colors like black, red, green, etc.    People are less likely to search closed issues and pull requests.

For anyone coming here from googling, #14859 is an ongoing issue tracker for light themes overall.


[Bug] "Player Placeholders" and "Group Placeholders" not working

Describe the bug
"Player Placeholders" and "Group Placeholders" do nothing.
To Reproduce
Parse any "Player Placeholders" or "Group Placeholders". They can be found here:
https://promcteam.com/wiki/index.php?title=Proskillapi:Placeholders
Parsing them does nothing:

Versions (please complete the following information):

Spigot Version: Paper version git-Paper-777 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
Server Version: 1.16.5
Plugin Version 1.1.5-dev
PAPI Version: PlaceholderAPI-2.10.9.jar

Our wiki appears to be a little inaccurate at the moment. A couple of those placeholders are group placeholders and should start with %sapi_group... instead of %sapi_player... That still doesn't explain why the player ones are not working properly though. We'll have to look into that.

Describe the bug
"Player Placeholders" and "Group Placeholders" do nothing.
To Reproduce
Parse any "Player Placeholders" or "Group Placeholders". They can be found here:
https://promcteam.com/wiki/index.php?title=Proskillapi:Placeholders
Parsing them does nothing:

Versions (please complete the following information):

Spigot Version: Paper version git-Paper-777 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
Server Version: 1.16.5
Plugin Version 1.1.5-dev
PAPI Version: PlaceholderAPI-2.10.9.jar

I confirmed this is fixed in the latest dev builds


Validate bundleID to match requirements for Android.

Using this library I renamed my app and changed bundleID to com.example.mobile-app. This bundleID works for iOS but not for Android.
Check Android applicationId for more details

@ajcrites, any chances this will be merged?

@junedomingo, any chances this to be merged?


Change main click

Hello ! any way to change the main left click to something else like right click please ?

i want to know this

It doesn't work for me, but as far as I remember from YT comments, it works for some people. I don't know the reason why such inconsistency. Try it by yourself by changing "L" to "R" in all commands in the code: "ControlClick, x%xCenter% y%yCenter%, A,, L, 1, NA" -> "ControlClick, x%xCenter% y%yCenter%, A,, R, 1, NA"

yes i already tried it doesnt work its like this script doesnt work even if you change mouse clicks

i m trying to use it for league of legends, also changed appid correctly i also hear sounds but it doesnt work.
for diablo 4 the default settings works very good for me.


If form or page has more than one upload field

This line of code is not going work. This only works when there's only one upload field present at a time.

Can you provide an example? It's template level subscription so it should work as each field is separate instance.

Yeah but it's the same subscription name. You can't run multiple identical subscriptions at the same time.


failed to create vault backup: rangeerror: array buffer allocation failed

failed to create vault backup: rangeerror: array buffer allocation failed, why this error occured?

Pls share the content of data.json in <Your Vault>/.obsidian/plugins/obsidian-local-backup, if your vault is in a large size, I suggest you setup the file archiver settings, the archive file will created by calling 7-Zip:

Hi @cgcel , I encountered same issue. I am using macOS, what should I do?

Hi @cgcel , I encountered same issue. I am using macOS, what should I do?

Install 7-zip and fill the file archiver path (Unix), then you can create an archive file by calling 7-zip, and your issue may be resolved.

Thanks. Got it working now though I downloaded using sevenzip install via brew. Found brew install sevenzip will install the package still maintained by the original developers that explain that the 7zz will maintain by the original developers.


[release/1.7] bump github.com/containerd/continuity from 0.4.2 to 0.4.4

Cherry-picked from https://github.com/containerd/containerd/pull/9410 and https://github.com/containerd/containerd/pull/10901
This fix includes a bug in the CRI plugin where calling fs.CopyDir() would fail on layers without xattr support (ref: https://github.com/containerd/continuity/issues/244).
Aside from fixing issues on older filesystems, any FUSE-based filesystems (e.g. SOCI snapshotter's snapshots) experience notable performance benefits without having to use expensive xattr operations. Thus, it would be helpful to have this bugfix backported to 1.7.
If desired, I can also backport the bump to v0.4.5 (i.e. https://github.com/containerd/containerd/pull/11025).

Well, that was a doozy...
I ended up having to do a lot more backporting than anticipated. It's worth noting — some of the cherry-picked commit titles are misleading, as we only take an indirect dependency on golang.org/x/mod and when just doing go get<EMAIL_ADDRESS>this dependency didn't update, only the x/mod, x/sys, and protobuf ones updated, so I only took those. I can change the PR titles to be more accurate if desired, but as it's a cherry-pick I'd rather change as little as possible.

@sondavidb for future note, we aren't as strict about dependency bumps being cherry-picked from the same commit as main and its fine to just bump the deps and recreate. As long as the PR points to one from main so we can easily verify the version doesn't go ahead of main, the vender check already does the rest of the validation.

If desired, I can also backport the bump to v0.4.5 (i.e. https://github.com/containerd/containerd/pull/11025).

release/2.0 should go first, at v0.4.4 is fine for this PR

As long as the PR points to one from main so we can easily verify the version doesn't go ahead of main, the vender check already does the rest of the validation.

Oh ok, thanks!  Currently without a computer so I'll need some time to get access to one but I'll get around to it when possible.


Flexible task collection

Moving the slack discussion into this issue:
Joel:

Given discussions around python version dependencies and thoughts about running Fractal server on a VM at FMI (1016), while submitting all the jobs to the main cluster (which has slightly different hardware and OS versions), there may come a few requirements on flexibility of task collection (or about doing it manually to start with?).
Is manual task collection something that can be easily achieved or will this be a more complex undertaking?

Tommaso:

It depends on what is "manual task collection" :zwinkern:
Something which is not implemented but could be added relatively easily is the following feature:
A user provides:

A folder with all tasks and a manifest (could be a local clone of the tasks-core repo, with some changes in there)
A custom environment (that is, the absolute path to the python interpreter, which should be visible to the user who wants to run tasks), that includes whatever is needed to run the tasks.
and then Fractal imports those tasks and uses that specific environment.

This is very similar to the pypi install, but the user is fully responsible for the environment. If anything happens to that env (e.g. it is modified or removed), that's on them.
Does this match with what you'd need? If not, what kind of manual collection would you need?
If you only need to change the environment, then perhaps you can install the tasks in the standard way, and then we can put fractal task edit command to good use..

We should test whether it's already possible to use fractal task edit to change the default environment for a given task on the fractal server that was installed via normal fractal task collect :) Could be useful to get to run things on the main FMI cluster (different hardware, GPUs only available on the cluster, not on the VM running the server).

Should be possible via task add or task edit now. Something the superuser would do for the task.


fix camera image orientation

Details

fix react-native-image-picker camera image orientation
Fixed Issues

$ https://github.com/Expensify/App/issues/11854
$ https://github.com/Expensify/App/issues/11854#issuecomment-1301793683
Tests

click 'Add Attachment'
click 'Take photo', then make sure the selected image has the correct orientation
click 'Choose from gallery', then make sure the selected image has the correct orientation

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

Offline tests

QA Steps

click 'Add Attachment'
click 'Take photo', then make sure the selected image has the correct orientation
click 'Choose from gallery', then make sure the selected image has the correct orientation

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

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above

[x] I wrote clear testing steps that cover the changes made in this PR

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

[x] I included screenshots or videos for tests on all platforms

[x] I ran the tests on all platforms & verified they passed on:

[x] iOS / native
[x] Android / native
[x] iOS / Safari
[x] Android / Chrome
[x] MacOS / Chrome
[x] MacOS / Desktop

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

[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product was added in all src/languages/* files
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers

[x] I followed the guidelines as stated in the Review Guidelines

[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)

[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)

[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such

[x] If a new component is created I verified that:

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

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

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

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)

[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.

[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

PR Reviewer Checklist
The reviewer will copy/paste it into a new comment and complete it after the author checklist is completed

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

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

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

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

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

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots

Web

https://user-images.githubusercontent.com/20135674/202128763-bc0898bf-2091-4d8c-b66f-87254d34d5c4.mov
Mobile Web - Chrome

https://user-images.githubusercontent.com/20135674/202128795-3393719b-18ab-429d-835a-c4968c2257b9.mp4
Mobile Web - Safari

https://user-images.githubusercontent.com/20135674/202128839-78412dd8-aa13-4236-9609-1326b99f1bfd.mp4
Desktop

https://user-images.githubusercontent.com/20135674/202128913-0ad9ad92-9b85-42de-aa6f-494e926c2bd5.mov
iOS

https://user-images.githubusercontent.com/20135674/202129083-686faed0-f7cc-4290-8c3a-ab7bab59b8ca.mp4
Android

https://user-images.githubusercontent.com/20135674/202129104-27ba416c-0137-477c-9e2a-61003d49c54d.mp4
More about iOS image picker demo
https://user-images.githubusercontent.com/20135674/202129326-d41137ba-09e3-4c5e-ba8d-a5652280a1ce.mp4
More about android image picker demo
https://user-images.githubusercontent.com/20135674/202129301-795fa530-a006-493c-b760-323f6daa9ec0.mp4

@hellohublot Thank you! Please make sure to always link the issue like so: $ https://github.com/Expensify/App/issues/11854 then the correct persons will be assigned for review.

@mountiny  Sorry, I forgot the issue link format, I re-edited, this new format maybe be correct, I also have added the QA steps, Thank You.

@hellohublot no problem, i have updated it for ya before. This is just to keep in mind your next PRs 🎉

@hellohublot Let's make sure https://github.com/Expensify/App/issues/9424 issue is not reintroduced.

@sobitneupane Yes, it also works fine
https://user-images.githubusercontent.com/20135674/202173117-e2a79aa8-e36b-4902-98bb-6824a52125b7.mp4

I am unable to upload videos in native devices. But it looks like it was pre-existent issue.

I am unable to upload videos in native devices. But it looks like it was pre-existent issue.

@sobitneupane like on your normal account or just dev?

@sobitneupane like on your normal account or just dev?

@mountiny It is reproducible on prod as well.
https://user-images.githubusercontent.com/25876548/202214553-f01c2488-04a3-48e4-896a-9ae0cbc4d264.mp4

Thank you both @hellohublot @sobitneupane 🙇
This was not Emergency, tests were passing.

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

🚀 Deployed to staging by @mountiny in version: 1.2.29-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

Just as a heads up, we should have done a pod install and committed the diff in Podfile.lock as part of this PR

Sorry, I forgot, because I use different cocoapods version, it changes COCOAPODS: 1.11.3 by pod install every time, now I have updated to the same cocoapods version, I have submitted another PR: https://github.com/Expensify/App/pull/12876, please help merge, thanks

@roryabraham oooh, I havent realized this, I thought since this only touches package.json we should be good with just npm install. Thanks!


=gearstats elder bow all 0s.

🐛 Bug Report
I'm not sure if elder bow is ment to have stats or not, but just incase, when I do =gearstats elder bow it brings up a empty gear screen with 0s all across the board.
(yes I know I have a elder bow (u), but I wanted to see what the stats were of a elder bow to see if it's worth making or not, being my fletching isn't 105 yet)

its not supposed to be useful, just for fletching xp

its not supposed to be useful, just for fletching xp

gotcha! makes sense now thank you for clearing up the confusion for me


Too many invocation of method proteced by HystrixCommand

Hello,
since we activated HystricCommand our code ends up in a mass.
We have a bean in Wildfly 10 with following declaration:
@Stateless
@Remote
public class Bean implements BeanInterface {
	@Inject
	private Adapter adapter;

	@Override
	public Result getDebitData(Request request) {
		return adapter.getDebitData(request);
	}
}

The adapter was protected by the HystrixCommand:
public class Adapter {
 	@Inject
	private RestConnector connector;

        @HystrixCommand
	@Interceptors({ HystrixInterceptor.class })
	public Result getDebitData(Request request) {
		Response clientResponse = connector.connect().getDebitData(request);
		checkHttpStatusCodeWasSuccess(clientResponse);
		return clientResponse.readEntity(Result .class);
	}
}

Without the HystrixCommand annotation the code runs correctly.
Since we activated the command we see that immideately that the command is exectued many times:
2017-09-27 15:32:41,971 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-6) execute command: getDebitData
2017-09-27 15:32:41,971 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-9) execute command: getDebitData
2017-09-27 15:32:41,972 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-1) execute command: getDebitData
2017-09-27 15:32:41,974 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-8) execute command: getDebitData
2017-09-27 15:32:41,974 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-10) execute command: getDebitData
2017-09-27 15:32:41,974 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-2) execute command: getDebitData
2017-09-27 15:32:41,975 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-3) execute command: getDebitData
2017-09-27 15:32:41,975 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-5) execute command: getDebitData
2017-09-27 15:32:41,975 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-7) execute command: getDebitData
2017-09-27 15:32:41,976 DEBUG [com.netflix.hystrix.contrib.javanica.command.GenericCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-4) execute command: getDebitData
2017-09-27 15:32:41,976 DEBUG [com.netflix.hystrix.AbstractCommand] (hystrix-Adapter$Proxy$_$$_WeldSubclass-4) HystrixCommand execution REJECTED_THREAD_EXECUTION and fallback failed.: java.lan
g.RuntimeException: No fallback available.
[...]
Caused by: java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@6ad88423 rejected from java.util.concurrent.ThreadPoolExecutor@797ba7e8[Running, pool size = 10, active threads = 10, queued tasks = 0, completed tasks = 180]

The code is now in a bad situation because the pool is fuel. Exception are thrown. The code of the adpater is never executed.
Do you have an idea what happened? How can I get a correct behaviour?
In System properties of Wildfly the only property which is set is:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds 60000
Thank you for your help.
Markus

Hi,
I investigated now further this issue and find out if I remove the "@HysterixCommand" from the adapter class and add it to the bean it works.
So far as I understand there is a use of CDI and WELD but I'm not able to solve it as expected.
Cheers,
Markus


Reduce memory consumption of collectors

same context as https://github.com/TomasVotruba/unused-public/pull/131

:+1:


Manage codebase releases and testing

Goal Title
What will this work achieve?
Support for deployments of the Data Safe Haven at Turing and beyond
Description

Ensure that all aspects of code are working before tagging a release
Run manual deployment tests
Run penetration tests as needed

Manage codebase releases and testing and Codebase maintenance are closely related but the first one is specifically around fixes/testing of our current code before tagging a release while the second one is generic updates/bug-fixes that aren't tied to us being about to release something
Definition of Done
When will this be considered as succesfully completed?
Ongoing
Details

RACI

Accountable team or person: @jemrobinson
Responsible team or person: Data Safe Haven team
Informed and consulted people: TRESA team, Data Safe Haven community

Estimated effort in total FTE: 0.1 (approximately 2 weeks work, 3 times annually)

Resourcing
August

REG: 0.5

References

Versioning documentation
GitFlow model and release branch process

Task and issue breakdown
Breakdown in specific tasks of maximum a month duration, tasks and issues may be added as necessary
Issues may span across repositories when necessary

https://github.com/alan-turing-institute/data-safe-haven-team/issues/21

Checklist

[ ] This Story have been agreed with project members, it tackles prioritised work

[ ] If not: Label as ForPrioritisation so it discussed in the next monthly meeting, do not set a status

[x] I have filled in the Team Accountable field
[ ] I have included this Story in the agreed upon Milestone, set status as Planned

[ ] If not: set status as Backlog, to be Planned via weekly meetings or async discussions

[x] The work to be done is likely to span over a month
[x] I have broken down the work in monthly issues and added them above
[ ] I have labeled this issue according to its main project: SATRE, TRESA, CORE DSH (ELA) or other (please agree and create a new label if necessary)
[ ] If known: sum the total effort (points) of tracked issues and add it on the body
[ ] Select a Story level of effort in the project fields

Report progress
14 August to 18 Septmber

Penetration tested arranged and will be done in September
Preparation for release v4.1.0: Deployment of different SRE variants, Security checklist
Reviewing v4.1.0:  No significant problems is deployment logs, Problems found in security checklist relating to MSRDS

10 July to 14 August 2023

Working on Release 4.1.0: fixes bugs and introduces necessary updates

@jemrobinson what would be the headline of what 4.1 release delivers?

Release notes here: https://github.com/alan-turing-institute/data-safe-haven/releases/tag/untagged-559a72d3d8bbb76d2aeb

September was heavy with pen test and release, October may be quieter

Dec planning
Working on a series of issues associated the last release

February action for @Davsarper , verify budget for another pen test and get in contact with iStorm

Needs to be a priority, work belongs to march but there will be follow up things. for exmaple:

announcement: do we want to be loud about a last powershell version?
No more support once the next release is out.

Patch release this month by @jemrobinson (please add issue)

Similar to last month there is a bug that needs fixing and making an associated patch release, not made yet because focus on development but will happen.
Priority yes, not a lot of time spent on it.
We are in patch mode, doing what needs done but not focusing on new releases.

Hoping to release 5.0.0 this month so this is a priority, work will happen late august after pen test tells us what to fix change

No longer using this story to track this work, instead tracked within specific milestones/releases