Library resource returned by $data-requirements does not conform to Library StructureDefinition

This issue was encountered when running a TestScript that tests if the Library resource returned from a $data-requirements call confirms to the LIbrary Structure Definition, but it can be replicated in Postman without the TestScript.

Get the data requirements for measure-mrp: GET http://measure.eval.kanvix.com/cqf-ruler/baseDstu3/Measure/measure-mrp/$data-requirements?periodStart=2018-01-01&periodEnd=2018-12-31

Should get the following JSON as the response:
{
    "resourceType": "Library",
    "type": {
        "coding": [
            {
                "code": "module-definition"
            }
        ]
    },
    "dataRequirement": [
        {
            "type": "Patient",
            "profile": [
                "http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient"
            ]
        },
        {
            "type": "Encounter",
            "profile": [
                "http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"
            ],
            "codeFilter": [
                {
                    "path": "type",
                    "valueSetReference": {
                        "reference": "http://ncqa.org/hedis/ValueSet/2.16.840.1.113883.3.666.5.307",
                        "display": "Inpatient Encounter"
                    }
                }
            ],
            "dateFilter": [
                {
                    "path": "period",
                    "valueDuration": {
                        "value": 1,
                        "unit": "a"
                    }
                }
            ]
        },
        {
            "type": "Practitioner",
            "profile": [
                "http://hl7.org/fhir/us/davinci-deqm/StructureDefinition/practitioner-deqm"
            ]
        },
        {
            "type": "Task",
            "profile": [
                "http://ncqa.org/fhir/us/hedis/StructureDefinition/hedis-task"
            ],
            "codeFilter": [
                {
                    "path": "code",
                    "valueSetReference": {
                        "reference": "http://ncqa.org/hedis/ValueSet/2.16.840.1.113883.3.464.1004.1174",
                        "display": "Medication Reconciliation Value Set"
                    }
                }
            ],
            "dateFilter": [
                {
                    "path": "executionPeriod",
                    "valueDuration": {
                        "value": 1,
                        "unit": "a"
                    }
                }
            ]
        },
        {
            "type": "Observation",
            "profile": [
                "http://ncqa.org/fhir/us/hedis/StructureDefinition/hedis-observation"
            ],
            "codeFilter": [
                {
                    "path": "code",
                    "valueSetReference": {
                        "reference": "http://ncqa.org/hedis/ValueSet/2.16.840.1.113883.3.464.1004.1174",
                        "display": "Medication Reconciliation Value Set"
                    }
                }
            ],
            "dateFilter": [
                {
                    "path": "effectiveDateTime",
                    "valueDuration": {
                        "value": 1,
                        "unit": "a"
                    }
                }
            ]
        }
    ]
}

Validate the above JSON using the $validate operation for a Library resource: POST http://measure.eval.kanvix.com/cqf-ruler/baseDstu3/Library/$validate with the above JSON as the request body

The validation fails with HTTP 412 Precondition Failed
{
    "resourceType": "OperationOutcome",
    "text": {
        "status": "generated",
        "div": "

Operation Outcome

ERROR	[Library]
Profile http://hl7.org/fhir/StructureDefinition/Library, Element 'Library.status': minimum required = 1, but only found 0
	\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
"
    },
    "issue": [
        {
            "severity": "error",
            "code": "processing",
            "diagnostics": "Profile http://hl7.org/fhir/StructureDefinition/Library, Element 'Library.status': minimum required = 1, but only found 0",
            "location": [
                "Library"
            ]
        }
    ]
}

The error message status that "Library.status" is missing, and we can see in the structure definition that "status" does have cardinality 1..1 so it is required. When a "status" property is added to the JSON body for the $validate call, it does return 200 OK.

Closing as stale. The kanvix server has been retired. The lastest sandbox is here: https://cloud.alphora.com/sandbox/r4/cqm/


Coex support for all chips

[x] ESP32
[x] ESP32-C2
[x] ESP32-C3
[x] ESP32-C6 (*)
[ ] ESP32-H2 (is IEEE802.15.4 / Bluetooth co-existence possible at all?)
[x] ESP32-S3

(*) needs the big-heap feature (or configuring a big enough wifi heap)

This issue is quite old, and I'm not sure there's any work left to do here, so I will close this. @bjoernQ when you're back from vacation, if anything is actually required for the ESP32-H2 could you please open a new issue with some details?


support relative path in rich container mode

The PR is to support cmd path as relative path in rich container mode.

LGTM, thanks a lot for your work. @wangforthinker


How to upload to different Subtitle Tracks?

When I upload two subtitles how do I specify which one goes to Track 1 and which one goes to Track 2? Because I have different settings for each font (one for japanese subs and one for english subs). When I upload both subtitles I don't see a window that allows me to select which track goes to which subtitle. The three subtitle tracks always show as empty.

This is a commonly reported problem. I will prioritize this higher.


iOS 13 compatible?

Hey guys is NativeBase fully compatible with iOS 13?

Hi @chppatel , Yes, it is.


Homepage tutorial on OSX raises "can't open file 'app.py': [Errno 2] No such file or directory"

On my OSX (10.9, Docker 1.1.0, boot2docker 1.1.0) the tutorial that is on Fig homepage (http://orchardup.github.io/fig/) gives a following log resulting in exit code 2 (see end).
I'm not sure what to do, because I don't use python at all and I'm new to Docker..
It looks like the /code dir is not created, because docker run cdc18ed4ed6f ls /code results in cannot access /code: No such file or directory.
Downloading/unpacking flask (from -r requirements.txt (line 1))
  Running setup.py (path:/tmp/pip_build_root/flask/setup.py) egg_info for package flask

    warning: no files found matching '*' under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
    warning: no previously-included files matching '*.pyo' found under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'examples'
    warning: no previously-included files matching '*.pyo' found under directory 'examples'
    no previously-included directories found matching 'docs/_build'
    no previously-included directories found matching 'docs/_themes/.git'
Downloading/unpacking redis (from -r requirements.txt (line 2))
  Running setup.py (path:/tmp/pip_build_root/redis/setup.py) egg_info for package redis

    warning: no previously-included files found matching '__pycache__'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
Downloading/unpacking Werkzeug>=0.7 (from flask->-r requirements.txt (line 1))
  Running setup.py (path:/tmp/pip_build_root/Werkzeug/setup.py) egg_info for package Werkzeug

    warning: no files found matching '*' under directory 'werkzeug/debug/templates'
    warning: no files found matching '*' under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
    warning: no previously-included files matching '*.pyo' found under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'examples'
    warning: no previously-included files matching '*.pyo' found under directory 'examples'
    no previously-included directories found matching 'docs/_build'
Downloading/unpacking Jinja2>=2.4 (from flask->-r requirements.txt (line 1))
  Running setup.py (path:/tmp/pip_build_root/Jinja2/setup.py) egg_info for package Jinja2

    warning: no files found matching '*' under directory 'custom_fixers'
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no previously-included files matching '*.pyc' found under directory 'jinja2'
    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'jinja2'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
Downloading/unpacking itsdangerous>=0.21 (from flask->-r requirements.txt (line 1))
  Running setup.py (path:/tmp/pip_build_root/itsdangerous/setup.py) egg_info for package itsdangerous

    warning: no previously-included files matching '*' found under directory 'docs/_build'
Downloading/unpacking markupsafe (from Jinja2>=2.4->flask->-r requirements.txt (line 1))
  Downloading MarkupSafe-0.23.tar.gz
  Running setup.py (path:/tmp/pip_build_root/markupsafe/setup.py) egg_info for package markupsafe

Installing collected packages: flask, redis, Werkzeug, Jinja2, itsdangerous, markupsafe
  Running setup.py install for flask

    warning: no files found matching '*' under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
    warning: no previously-included files matching '*.pyo' found under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'examples'
    warning: no previously-included files matching '*.pyo' found under directory 'examples'
    no previously-included directories found matching 'docs/_build'
    no previously-included directories found matching 'docs/_themes/.git'
  Running setup.py install for redis

    warning: no previously-included files found matching '__pycache__'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
  Running setup.py install for Werkzeug

    warning: no files found matching '*' under directory 'werkzeug/debug/templates'
    warning: no files found matching '*' under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
    warning: no previously-included files matching '*.pyo' found under directory 'tests'
    warning: no previously-included files matching '*.pyc' found under directory 'examples'
    warning: no previously-included files matching '*.pyo' found under directory 'examples'
    no previously-included directories found matching 'docs/_build'
  Running setup.py install for Jinja2

    warning: no files found matching '*' under directory 'custom_fixers'
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no previously-included files matching '*.pyc' found under directory 'jinja2'
    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'jinja2'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
  Running setup.py install for itsdangerous

    warning: no previously-included files matching '*' found under directory 'docs/_build'
  Running setup.py install for markupsafe

    building 'markupsafe._speedups' extension
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c markupsafe/_speedups.c -o build/temp.linux-x86_64-2.7/markupsafe/_speedups.o
    x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/markupsafe/_speedups.o -o build/lib.linux-x86_64-2.7/markupsafe/_speedups.so
Successfully installed flask redis Werkzeug Jinja2 itsdangerous markupsafe
Cleaning up...
 ---> 98171080b029
Removing intermediate container f5c9f0ac9513
Successfully built 98171080b029
Attaching to figtest_redis_1, figtest_web_1
redis_1 | error: "Read-only file system" setting key "vm.overcommit_memory"
redis_1 | [10] 09 Jul 06:35:13.046 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
redis_1 | [10] 09 Jul 06:35:13.046 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
redis_1 | [10] 09 Jul 06:35:13.046 # Current maximum open files is 1024. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
redis_1 |                 _._
redis_1 |            _.-``__ ''-._
redis_1 |       _.-``    `.  `_.  ''-._           Redis 2.8.9 (00000000/0) 64 bit
redis_1 |   .-`` .-```.  ```\/    _.,_ ''-._
redis_1 |  (    '      ,       .-`  | `,    )     Running in stand alone mode
redis_1 |  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
redis_1 |  |    `-._   `._    /     _.-'    |     PID: 10
redis_1 |   `-._    `-._  `-./  _.-'    _.-'
redis_1 |  |`-._`-._    `-.__.-'    _.-'_.-'|
redis_1 |  |    `-._`-._        _.-'_.-'    |           http://redis.io
redis_1 |   `-._    `-._`-.__.-'_.-'    _.-'
redis_1 |  |`-._`-._    `-.__.-'    _.-'_.-'|
redis_1 |  |    `-._`-._        _.-'_.-'    |
redis_1 |   `-._    `-._`-.__.-'_.-'    _.-'
redis_1 |       `-._    `-.__.-'    _.-'
redis_1 |           `-._        _.-'
redis_1 |               `-.__.-'
redis_1 |
redis_1 | [10] 09 Jul 06:35:13.049 # Server started, Redis version 2.8.9
redis_1 | [10] 09 Jul 06:35:13.049 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1 | [10] 09 Jul 06:35:13.049 * The server is now ready to accept connections on port 6379
web_1   | python: can't open file 'app.py': [Errno 2] No such file or directory
figtest_web_1 exited with code 2
Gracefully stopping... (press Ctrl+C again to force)
Stopping figtest_redis_1...

Official instructions for fig now recommend to install boot2docker through the OSX Installer. Following the instructions and the tutorial gives the exact same error:
web_1 | python: can't open file 'app.py': [Errno 2] No such file or directory

I've tried both with the official Docker for OSX Installer and the Homebrew versions of boot2docker and docker. The result is the same.
 Test it with:
$ boot2docker ssh ls /Users

If the output doesn't list the /Users directory on your Mac, there's something wrong with your boot2docker installation - perhaps try an uninstall/reinstall.

The ls seems to work correctly:
$ boot2docker ssh ls /Users
...
panta
...

But your suggestion gave me a possible insight. My home directory /Users/panta is actually a symlink to a directory on a different volume:
$ echo $HOME
/Volumes/UsersHD/panta
$ ls -la /Users/panta
lrwxr-xr-x  1 panta  staff  22 Apr 10  2014 /Users/panta -> /Volumes/UsersHD/panta

So I tried
$ boot2docker ssh ls /Users/panta/
prj

it lists only the leading directory of the project. All the project path components can be listed, except the last:
$ boot2docker ssh ls `pwd`

which gives an empty output.
Could be the problem related to my home residing on a different volume? Is there a workaround in this case?

That's almost certainly the issue. You might be able to fix it by passing a custom share to boot2docker init with the --vbox-share option:
$ boot2docker destroy
$ boot2docker init --vbox-share="/Volumes/UsersHD/panta=/Users/panta"
$ boot2docker up
$ boot2docker ssh ls /Users/panta

Hi, I got the same problem when running flask example from docker-compose's tutorial.
The thing I don't understand is that if I run docker run --rm composeflask_web ls -l /code it shows all files as expected:
total 16
-rw-r--r-- 1 root root  78 Apr 28 15:16 Dockerfile
-rw-r--r-- 1 root root 313 Apr 28 15:16 app.py
-rw-r--r-- 1 root root 133 Apr 28 15:17 docker-compose.yml
-rw-r--r-- 1 root root  12 Apr 28 15:16 requirements.txt

That means web container is correctly built and app.py exists inside it. So command option inside docker-compose.yml is used for running command on docker's host not on docker container, right?
Currently the document said command is for "Override the default command." so I think it is used for overriding the default command of the container which means it should be run inside the container.
My environment is:
Mac 10.10.3, docker 1.6.0, boot2docker 1.6.0

@phuna Your container has built correctly, but if your home directory isn't mounting properly inside the VM, it'll overwrite /code inside the container with an empty directory. What happens if you run this command inside your project directory?
$ boot2docker ssh ls `pwd`

@aanand It returns only Work which is the leading directory of the project. I also put my home on another volume and link back to /Users/ like @panta so I think I got the same problem with him.
I've checked the docker-compose.yml and see that there is:
  volumes:
   - .:/code

I remove above 2 lines and expect it will use /code of the container, but it still complains that app.py is missing.

@phuna Make sure your old containers are gone first:
$ docker-compose kill
$ docker-compose rm

@aanand Thanks! It works now.


Filter dublicated webhooks by uuid

webhooks at gitea/github/? do have a uuid in header witch we could use to prevent dubble exec. since it look like there are edgecases who submit uuid twice

dupe #110


some objects use random string suffix

What type of PR is this?
feature
Fixes #645

Codecov Report

Merging #719 (35fd74f) into main (e2ffa5f) will decrease coverage by 0.60%.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #719      +/-   ##
==========================================
- Coverage   13.60%   13.00%   -0.60%
==========================================
  Files          66       76      +10
  Lines        7492     8711    +1219
==========================================
+ Hits         1019     1133     +114
- Misses       6391     7495    +1104
- Partials       82       83       +1

see 49 files with indirect coverage changes


Missing ifconfig

ifconfig seems to be replaced by ip a, so :

We can try to use ip a, but we should detect os type (ubuntu 18 actually)
We can install apt install net-tools -y on scripts install

Net tools have been added as core requirements and compatibility.


Fix/consider option version

Before submitting a pull request, please make sure the following is done...

Fork the repo and create your branch from master.
If you've added code that should be tested, do a sanity check on vim8 and neovim
If you've changed APIs, update the README and documentation ./doc/prettier.txt

Please use the simple form below as a guideline for describing your pull request.
Thanks for contributing to vim-prettier

Summary

Made the plugin consider the addition and deprecation versions of each option in relation to the version of the Prettier npm package being used when composing the CLI command so that only compatible CLI flags are used.
Fixes #346.

Test Plan
Tested the plugin in Vim 8.2, Vim 9.0, and Neovim 0.9. Wrote unit tests for some functions.

Awesome! Thank you! Assuming it all works happy to merge and do a new release!


add foreach_reverse to basics/foreach -  fixes #357

LGTM

(fixed small grammar mistake The -> A)


open mypy issue regardless of opt-in/out status

Mypy becomes a mandatory check in January. We need to flip a lot of libraries from opting out to getting mypy clean. This change ensures that a GH issue is opened if a library is failing next-mypy, regardless of their opt-in/opt-out status.

/check-enforcer override


Cluster Provisioning question(~azure)

My friend's startup has a Microsoft bizspark account. Microsoft offers 750 dollars of credits to five different developer accounts with each having 150USD worth of credits. They credits are not aggregated into one account.
Can we create an instance of a server in each of the accounts separately in the same region and provision the cluster? If it is possible, how would the installation process change?
A lot of start ups would be benefitted if this is possible.
I am a rails developer who mostly worked on Heroku.

I think the question about provisioning the servers in the same region is a question best suited for Azure, but assuming that it's all generally the same, it should be possible to modify https://github.com/deis/deis/blob/c3381a0cca1add9fd62535e74f8f885911d75c51/contrib/azure/parameters.json#L24 to deploy 1 node per account, re-using the same user data for each account deployment.

Thank you for taking the time to answer my question.

Extending this argument, could we use three machines one from digital ocean, one from AWS and the last one from Azure to create a cluster?  If not, what is preventing from this being possible(discovery url?). I am only asking this to make sure I understand what you are saying.

When we create a cluster, can all the machines be of different sizes as long as they meet the minimum system requirements?

The main issue here is that each use of the provision script will create a new Deis cluster. The Azure template will create a new private network for each cluster. Even if you use the script once per account, the hosts will be unable to communicate with each other.
The scenario you're describing is unsupported by using our provision scripts.

Extending this argument, could we use three machines one from digital ocean, one from AWS and the last one from Azure to create a cluster? If not, what is preventing from this being possible(discovery url?). I am only asking this to make sure I understand what you are saying.

Yes, the main requirement being that all of the hosts can communicate over a private network. This is something that you'd have to configure manually. Additionally, latency between hosts is an issue. If they are on different networks in different locations, you're likely going to run into issues.
In short, this topology probably isn't worth it. If you're trying to save money, perhaps deploying to Digital Ocean is a better bet.

When we create a cluster, can all the machines be of different sizes as long as they meet the minimum system requirements?

Yes.

@carmstrong - Thank you for very much for your clarifications. I have a few more questions.

Given that I can create the three nodes in the same location in Azure, would I be able to use the method suggested by @bacongobbler(modifying parameters.json and copying userdata) and provision a cluster even if it involves some manual work? (This would mean my friend could have 5 nodes with 7GB ram each on Azure ). Since they are in the same location, that would take care of the latency issue(?).

In the installation process for Bare metal servers it is mentioned I quote "the hosts running Deis must be able to communicate via a private network in one of the RFC 1918 or RFC 6598 private address spaces: <IP_ADDRESS>/8, <IP_ADDRESS>/12, <IP_ADDRESS>/16, or <IP_ADDRESS>/10". Will this be a problem if I create the nodes as I mentioned in step 1?

This is not something we'll be able to get to for the LTS release, and provisioning Deis v2 is done through installing a vanilla kubernetes cluster so I'm going to go ahead and close this.


Operator: Concat

Link to Rx.NET implementation

I needed this operator so I had a go at implementing it, specifically the overload ISubscribable<ISubscribable<'a>> -> ISubscribable<'a> (which isn't present in AsyncRx.NET).
I would have thought this operator existed in Reactor's version of Rx originally, so if there's a better implementation lying around @bartdesmet, I'll happily take that.
Otherwise, here's my attempt. Excuse the fsharp, but if this operator is wanted, I'd like to reimplement in csharp and contribute.

Implementation and tests
You can run this with dotnet fsi this.fsx.
#r "nuget: Reaqtive.Linq, 1.0.0-beta.24"
#r "nuget: Reaqtive.TestingFramework, 1.0.0-beta.24"
#r "nuget: Expecto"

open System
open System.Threading

open Reaqtive

module Subscribable =
  let concat (subscribable : ISubscribable<ISubscribable<'a>>) : ISubscribable<'a> = {
    new SubscribableBase<'a> () with
      override parent.SubscribeCore observer =
        let mutable context = Unchecked.defaultof<IOperatorContext>
        let mutable active = false
        let queue = System.Collections.Concurrent.ConcurrentQueue ()
        let subscriptions = new SerialSubscription ()
        let observe (thisDisposable : IDisposable) subscribe = {
          new IObserver<'a> with
            member i.OnNext value =
              observer.OnNext value
            member i.OnError error =
              observer.OnError error
              thisDisposable.Dispose ()
            member i.OnCompleted () =
              match queue.TryDequeue () with
              | false, _ ->
                // TOASK: lock around these ops?
                active <- false
                //// TOASK: Are we supposed to dispose after completions?
                thisDisposable.Dispose ()
              | true, next ->
                subscribe next
        }
        let rec subscribe (s : ISubscribable<_>) =
          // TOASK: lock around these ops?
          active <- true
          // TODO: Extract this as a type to work around this error and be able to use SubscribeInner
          // > Error FS0491 The member or object constructor 'SubscribeInner' is not accessible. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions.	LocalIndex	C:\Users\nickd\source\repos\local-index-prototype\LocalIndex\ext\Reaqtive.Linq.fs	55	Active
          // (It can't be done inside an object expression.)
          // let subscriptions = this.SubscribeInner (s, { new IObserver<_> with ... })
          let subscription = new SingleAssignmentSubscription ()
          subscription.Subscription <- s.Subscribe (observe subscription subscribe)
          SubscriptionInitializeVisitor.Subscribe subscription
          SubscriptionInitializeVisitor.SetContext (subscription, context)
          subscriptions.Subscription <- subscription
          SubscriptionInitializeVisitor.Start subscription
        {
          new HigherOrderInputStatefulOperator<_, 'a>(parent, observer) with
            override _.Name = "rcx:Concat"
            override _.Version = Version (1,0,0,0)

            override this.SetContext ctx =
              base.SetContext ctx
              context <- ctx

            override this.SaveStateCore writer =
              base.SaveStateCore writer
              writer.Write active
              if active then base.SaveInner (subscriptions.Subscription, writer)

            override this.LoadStateCore reader =
              base.LoadStateCore reader
              active <- reader.Read<bool> ()
              if active then
                let subscription = new SingleAssignmentSubscription ()
                subscription.Subscription <- base.LoadInner (reader, observe subscription subscribe)
                subscriptions.Subscription <- subscription

            override this.OnSubscribe () =
              let subscription = subscribable.Subscribe ({
                new IObserver<ISubscribable<'a>> with
                  member child.OnNext value =
                    if Volatile.Read &active
                    then queue.Enqueue value
                    else subscribe value
                  member child.OnError error =
                    observer.OnError error
                    this.Dispose ()
                  member child.OnCompleted () =
                    observer.OnCompleted ()
              })

              [ subscription; subscriptions ]
        }
    }

module Tests =
  open Expecto
  open type Reaqtive.Testing.ReactiveTest
  open Reaqtive.TestingFramework

  type Env () as this =
    inherit TestBase ()
    do this.TestInitialize ()
    member this.Scheduler = base.Scheduler
    interface IDisposable with
      member this.Dispose () =
          this.TestCleanup ()

  module TestableSubscribable =
    let inline asSubscribable (observable : Mocks.ITestableSubscribable<_>) =
      observable :> ISubscribable<_>

  let tests = testList "Subscribable.concat" [
    test "overlapped" {
      use env = new Env ()

      let xs = env.Scheduler.CreateHotObservable [|
        OnNext (100, 1)
        OnNext (120, 2)
        OnNext (160, 3)
        OnCompleted 220
      |]

      let ys = env.Scheduler.CreateHotObservable [|
        OnNext (140, 4)
        OnNext (240, 5)
        OnCompleted 260
      |]

      let work = env.Scheduler.CreateHotObservable [|
        OnNext(090, TestableSubscribable.asSubscribable xs)
        OnNext(120, TestableSubscribable.asSubscribable ys)
        OnCompleted 400
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 10, disposed = 500)

      Expect.sequenceEqual results.Messages [
        OnNext (100, 1)
        OnNext (120, 2)
        OnNext (160, 3)
        OnNext (240, 5)
        OnCompleted 400
      ] "results includes notifications after completion of prior subscribable"

      Expect.sequenceEqual xs.Subscriptions [
        Subscribe (090, 220)
      ] "`xs` should be subscribed when its emitted by outer till its completion"

      Expect.sequenceEqual ys.Subscriptions [
        Subscribe (220, 260)
      ] "`ys` should be subscribed on completion of `xs` till its completion"
    }

    test "non-overlapped" {
      use env = new Env ()

      let work = env.Scheduler.CreateHotObservable [|
        OnNext(090, TestableSubscribable.asSubscribable <| env.Scheduler.CreateHotObservable [|
          OnNext (100, 1)
          OnNext (120, 2)
          OnNext (160, 3)
          OnCompleted 180
        |])
        OnNext(190, TestableSubscribable.asSubscribable <| env.Scheduler.CreateHotObservable [|
          OnNext (200, 4)
          OnNext (220, 5)
          OnCompleted 280
        |])
        OnCompleted 400
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 10, disposed = 500)

      Expect.sequenceEqual results.Messages [
        OnNext (100, 1)
        OnNext (120, 2)
        OnNext (160, 3)
        OnNext (200, 4)
        OnNext (220, 5)
        OnCompleted 400
      ] "results includes all notifications"
    }

    test "inner error" {
      use env = new Env ()
      let err = ArgumentException ()
      let work = env.Scheduler.CreateHotObservable [|
        OnNext(100, TestableSubscribable.asSubscribable <| env.Scheduler.CreateHotObservable [|
          OnNext (120, 1)
          OnNext (140, 2)
          OnCompleted 190
        |])
        OnNext(200, TestableSubscribable.asSubscribable <| env.Scheduler.CreateHotObservable [|
          OnNext (220, 3)
          OnError (240, err)
          OnCompleted 290
        |])
        OnNext(300, TestableSubscribable.asSubscribable <| env.Scheduler.CreateHotObservable [|
          OnNext (320, 4)
          OnCompleted 390
        |])
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 10, disposed = 500)

      Expect.sequenceEqual results.Messages [
        OnNext (120, 1)
        OnNext (140, 2)
        OnNext (220, 3)
        OnError (240, err)
      ] "includes terminal error"
    }

    test "outer error" {
      use env = new Env ()
      let err = ArgumentException ()
      let work = env.Scheduler.CreateHotObservable [|
        OnNext(100, TestableSubscribable.asSubscribable <| env.Scheduler.CreateHotObservable [|
          OnNext (120, 1)
          OnNext (140, 2)
          OnCompleted 190
        |])
        OnError (200, err)
        OnNext(300, TestableSubscribable.asSubscribable <| env.Scheduler.CreateHotObservable [|
          OnNext (320, 4)
          OnCompleted 390
        |])
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 10, disposed = 500)

      Expect.sequenceEqual results.Messages [
        OnNext (120, 1)
        OnNext (140, 2)
        OnError (200, err)
      ] "includes terminal error"
    }

    test "early disposal" {
      use env = new Env ()

      let xs = env.Scheduler.CreateHotObservable [|
        OnNext (120, 1)
        OnNext (140, 2)
        OnCompleted 190
      |]

      let ys = env.Scheduler.CreateHotObservable [|
        OnNext (220, 3)
        OnNext (240, 4)
        OnCompleted 290
      |]

      let work = env.Scheduler.CreateHotObservable [|
        OnNext(100, TestableSubscribable.asSubscribable xs)
        OnNext(200, TestableSubscribable.asSubscribable ys)
        OnCompleted 400
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 10, disposed = 230)

      Expect.sequenceEqual results.Messages [
        OnNext (120, 1)
        OnNext (140, 2)
        OnNext (220, 3)
      ] "results includes notifications until disposal"

      Expect.sequenceEqual xs.Subscriptions [
        Subscribe (100, 190)
      ] "`xs` should be subscribed when its emitted by outer till its completion"

      Expect.sequenceEqual ys.Subscriptions [
        Subscribe (200, 230)
      ] "`ys` should be subscribed when its emitted by outer till outer disposal"

      Expect.sequenceEqual work.Subscriptions [
        Subscribe (10, 230)
      ] "`work` should be disposed when the scheduler is disposed"
    }

    test "late subscription" {
      use env = new Env ()

      let xs = env.Scheduler.CreateHotObservable [|
        OnNext (120, 1)
        OnNext (140, 2)
        OnCompleted 190
      |]

      let ys = env.Scheduler.CreateHotObservable [|
        OnNext (220, 3)
        OnNext (240, 4)
        OnCompleted 290
      |]

      let work = env.Scheduler.CreateHotObservable [|
        OnNext (100, TestableSubscribable.asSubscribable xs)
        OnNext (200, TestableSubscribable.asSubscribable ys)
        OnCompleted 400
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 160, disposed = 500)

      Expect.sequenceEqual results.Messages [
        OnNext (220, 3)
        OnNext (240, 4)
        OnCompleted 400
      ] "results includes notifications after subscription"
    }

    test "concurrent inners" {
      use env = new Env ()

      let xs = env.Scheduler.CreateHotObservable [|
        OnNext (120, 1)
        OnNext (140, 2)
        OnCompleted 190
      |]

      let ys = env.Scheduler.CreateHotObservable [|
        OnNext (120, 3)
        OnNext (140, 4)
        OnCompleted 190
      |]

      let zs = env.Scheduler.CreateHotObservable [|
        OnNext (120, 5)
        OnNext (140, 6)
        OnCompleted 190
      |]

      let work = env.Scheduler.CreateHotObservable [|
        OnNext (100, TestableSubscribable.asSubscribable xs)
        OnNext (100, TestableSubscribable.asSubscribable ys)
        OnNext (100, TestableSubscribable.asSubscribable zs)
        OnCompleted 400
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 10, disposed = 500)

      Expect.sequenceEqual results.Messages [
        OnNext (120, 1)
        OnNext (140, 2)
        OnCompleted 400
      ] "results includes notifications from first subscribable"
    }

    test "idk tail recursive" {
      use env = new Env ()

      let size = 20_000

      let xs x = env.Scheduler.CreateHotObservable [|
        OnCompleted (x + 1L)
      |]

      let work = env.Scheduler.CreateHotObservable [|
        for i in 1..size do
          OnNext (i, TestableSubscribable.asSubscribable (xs i))
        OnCompleted (int64 <| size + 1)
      |]

      let results = env.Scheduler.Start(
        create = (fun () -> Subscribable.concat work),
        created = 0, subscribed = 0, disposed = (int64 <| size + 2))

      Expect.sequenceEqual results.Messages [
        OnCompleted (int64 <| size + 1)
      ] "does not stack overflow"
    }
  ]

Expecto.Tests.runTests Expecto.Tests.defaultConfig Tests.tests

I have two questions for the maintainers before I could contribute this operator:

Are there any more tests I need to validate my operator maintains Reaqtive's invariants?
I'm guessing this, like the Switch operator, will need some locks around some of the operations in callbacks. Are there any tests I can to help guide me here?


Fix https://github.com/slog-rs/term/issues/8

Check support before term.attr(bold), use fallback term.fg(bright_white) when term.attr(bold) is not supported.

Awesome. Thank you!


Selfhost: Add shorthand '-p' for prettify-cpp-source

Adds back the '-p' argument the rust compiler had, as a shorter version of '--prettify-cpp-source'.

Hello!
One or more of the commit messages in this PR do not match the Jakt code submission policy, please check the lint_commits CI job for more details on which commits were flagged and why.
Please do not close this PR and open another, instead modify your commit message(s) with git commit --amend and force push those changes to update this PR.

Don't forget to update the help message


Resolve Jdbi artifacts with Quarkus Universe BOM

For most dependencies, we only need to declare implementation(enforcedPlatform("io.quarkus:quarkus-universe-bom:X.Y.Z")) only in Gradle in order to resolve all Quarkus dependencies released with the Quarkus version in question.
Currently, this doesn't work with io.quarkiverse.jdbi:quarkus-jdbi.
Would it be possible to align Jdbi releases in such way?

@gastaldi Do you know how to achieve this?

@gastaldi Thanks.
The main pom of the project contains a dependency management section, or separate bom package is needed?
Do you have a good example?
@vadimvera
Are you using other quarkus depenencies from quarkiverse? This plugin is not part of the main quarkus project.

@smil2k it must be a separate BOM module, see https://github.com/quarkiverse/quarkus-amazon-services/blob/main/bom/pom.xml for example


Invite (mailing) users of last year(s)

People should know we have a new version. Thank them for their past use and invite them this year. We do this for free, the only reward we have is users actually using the thing. Discuss with EMA team because we don't want to become spammers of course.

TODO:

CSV export email addresses for mailing
1 mailing to everyone to encourage people to start a new secretsanta

/export/entries downloads a csv export

@hvanoch

can you add an indication if the persons is the pool owner? We want to send different e-mails.
/export/entries returns 1 row in production :-) can you check?
if this is ready, send the page and credentials to Herman so he can do his thing

This is done.

super!! Thanks


Adding a file with the "+ File" button does not work

Describe the bug
When clicking the + File button, a dialog is presented to select a file(s), but nothing happens after the files are selected.
Expected behavior
Files that are selected are imported into the system

New IPC hook must be added to get file contents instead of file paths.


resource.filter for substring

        id: 1,
        name: 'John Evans',
        number: '01928 356115'
    },{
        id: 16,
        name: 'Murbinator',
        number: '053180 080000'
    }];```

lookup: function (name) {
var retrievedRecords = {};
var _this = this;
Record.findAll().then(function () {
var params = {
where: {
name: {
'in': name
}
}
};
retrievedRecords = Record.filter(params);
debugger;
_this.lookupSuccess(retrievedRecords);
}).catch(function (error) {
console.log(error);
});
},

Where `'in': name` name is "John" no record is found
Where `'in': name` name is "John Evans" one record is found.
Looking at [issue 238](https://github.com/jmdobry/angular-data/issues/238) that appears to be the way I should be filtering but is not the value I expect to be return for sub-string filtering.

angular-data : 1.5.3
angular : 1.3.8

I misspoke in that issue. You're looking for the contains operator, which is available in 2.0 (js-data-angular).

Thanks.

@stephen-murby Actually now that I take a closer look at the code, I'm not so sure the functionality you're looking for exists yet. Re-opening.

Please re-submit this issue to https://github.com/js-data/js-data/issues for discussion an implementation there.


[FEATURE] S3/Object Gateway Support - Experimental

Is your feature request related to a problem? Please describe (👍 if you like this request)
Longhorn will support provisioning and managing s3 object gateways over longhorn volume to become an opinionated storage solution for having block/fs/object interface/protocol support.
Describe the solution you'd like
Support vendor-neutral S3 backend integration based on COSI protocol, https://github.com/kubernetes-sigs/container-object-storage-interface-api/tree/v0.1.0/crds  (v1alpha1 has been released)
Describe alternatives you've considered
Users use S3 object storage solution by themselves
Additional context
N/A

does this feature could be related to this project ? : https://aquarist-labs.io/s3gw/

does this feature could be related to this project ? : https://aquarist-labs.io/s3gw/

Have u used that project? Any feedback?

does this feature could be related to this project ? : https://aquarist-labs.io/s3gw/

Have u used that project? Any feedback?

Not yet, but we are planning to test it (not in production).
We already use Longhorn volumes for most of our PV/PVC and we are really interested for an S3 gateway on top of Longhorn. We found this feature request here and that existing project (that seems to use Ceph S3 gateway capabilities on top of Longhorn volumes), and we were just wondering if this project could not cover the need for this feature ?

Thanks for the info :+1: . Yes, it would be a choice for our object backend.


Document @glint directives

Document the following directives in a new @glint Directives section:

@glint-ignore
@glint-expect-error
@glint-nocheck

@jamescdavis are you still planning on doing a round of revisions here at some point? I went to go link to these docs in #367 and then realized we'd never actually published it 🙂

Closing in favor of #401 – thanks for getting this up originally, @jamescdavis!


Remove unnecessary boxing of ASDL product children

It seems unnecessary to box the children of an ASDL product type for the same reason that it’s unnecessary to box the elements of a Vec.
(Refs #2399, where the ASDL converter was introduced.)

Maybe this is boxed to reduce the type size. Do we need benchmark about it?

@andersk I am sorry, but could you rebase it? I will merge if @charliermarsh doesn't decline it.


Three-dimensional detrending

I added the option to apply detrending over 3 dimensions simultaneously, instead of just a 2D plane.

I also refactored to windowing function a bit.

Codecov Report

Merging #22 into master will increase coverage by 0.64%.
The diff coverage is 93.33%.

@@            Coverage Diff             @@
##           master      #22      +/-   ##
==========================================
+ Coverage    89.9%   90.55%   +0.64%
==========================================
  Files           1        1
  Lines         218      233      +15
  Branches       75       80       +5
==========================================
+ Hits          196      211      +15
  Misses         11       11
  Partials       11       11

Impacted Files
Coverage Δ

xrft/xrft.py
90.55% <93.33%> (+0.64%)
:arrow_up:

Continue to review full report at Codecov.

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


Add a snippet byteSize

Description
Add a snippet byteSize to calculate the byte-count of a string
What does your PR belong to?

[ ] Website
[x] Snippets
[ ] General / Things regarding the repository (like CI Integration)

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (non-breaking improvement of a snippet)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have checked that the changes are working properly
[x] I have checked that there isn't any PR doing the same
[x] I have read the CONTRIBUTING document.

I can't see this file in snippets/


Remove semantically identical data in TransactionsManager

Describe the feature
for the purpose of rate limiting tx requests to max inflight requests per tx hash at any given time, we can remove this
https://github.com/paradigmxyz/reth/blob/add3c6a3a2ae0cecd8627533bbc5688a456435ad/crates/net/network/src/transactions/mod.rs#L206-L210
in favour of active_peers and inflight_requests in TransactionFecther that already handle this.
in order to do so, we need to execute the code for creating transaction import futures from here https://github.com/paradigmxyz/reth/blob/add3c6a3a2ae0cecd8627533bbc5688a456435ad/crates/net/network/src/transactions/mod.rs#L935-L935
...to somewhere here, where we have got unknown previously unseen hashes (new hashes)
https://github.com/paradigmxyz/reth/blob/add3c6a3a2ae0cecd8627533bbc5688a456435ad/crates/net/network/src/transactions/mod.rs#L593
makes sense to complete after https://github.com/paradigmxyz/reth/issues/6289
Additional context
No response

But transactions_by_peers still could be used to penalize peers on on_bad_import() ? 😄

But transactions_by_peers still could be used to penalize peers on on_bad_import() ? 😄

very true, we have given transactions_by_peers a lot of new purpose since this issue was opened. well spotted.


"Buciumeni", "Hănțești", "Tecucelu Sec" and "Vizurești" are listed in the drop-down menu

Description:
"Buciumeni", "Hănțești", "Tecucelu Sec" and "Vizurești" are listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Buciumeni" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Buciumeni, GALAȚI (Buciumeni)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Type "Hănțești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Hănțești, GALAȚI (Buciumeni)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Type "Tecucelu Sec" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Tecucelu Sec, GALAȚI (Buciumeni)".

Step 6
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 7
Type "Vizurești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Vizurești, GALAȚI (Buciumeni)".


Wrong ECML-PKDD deadline

Changed the timezone from UTC-8 to UTC-12.
Issue raised in #167.

Thanks!


adding a check for the phylogenies directory

I came to prefer more declarative data validation like:
@attr.s
class Society(UnicodeMixin):
    id = attr.ib()
    xd_id = attr.ib()
    pref_name_for_society = attr.ib()
    glottocode = attr.ib()
    ...
    Lat = attr.ib(convert=float, validator=partial(valid_range, -90, 90))
    Long = attr.ib(convert=float, validator=partial(valid_range, -180, 180))
    ...

This provides data validation upon access, which I think is good. It may take a bit more scaffolding to turn errors into meaningful messages, including line numbers and filenames and the like. But overall, I think this is a good model.
So once we settle on a schema for taxa.csv (?), I'd propose to turn this into a class, and add a taxa property to Phylogeny, which reads the rows from the csv into Taxon objects.

I guess, taxon,xd_ids,soc_ids,glottocode would cover all we have now in xdid_socid_links.csv and languages.csv.

Ok -- this sounds good. The check function I've written will get unwieldy quickly when we add more checks, and having this done at the point at which the data enters the system makes sense. Are you able to implement this please?

Yes, will do. Later tonight, I guess.


Zoom animation

The Zoom animation mode allows click-throughs before the HUD is completely hidden.
This is due to the fact that a transform is applied in order to scale the HUD. This transform scales the the HUD's invisible background and thereby allows touches to be received by views that are not covered anymore.
The best solution would probably be to separate the actual HUD from the invisible background (a new view) and do animations just on the HUD. This should also produce a better autoresizing  behavior.

Should be fixed in the latest version.


Make test flags configurable

By default this doesn't change anything, but it allows you to pass args to the build to change the language level of the test classes. For example to run the tests in Java 8 mode you would run
mvn clean test -Djava.test.version.source=1.8 -Djava.test.version.target=1.8

(this produces 5 test failures)
Or to see if the tests pass with the new Java 8 parameter name reflection flag you would run
mvn clean test -Djava.test.version.source=1.8 -Djava.test.version.target=1.8 -Djava.test.compiler.argument=-parameters

(this produces 15 test failures)
Related to issue #33, I was going to write a small Java 8 test but I figured it would be much more robust to run the entire test suite against Java 8. Unfortunately this type of testing would have to be manual, I could try making it part of the build but the result would probably be pretty nasty.

I updated the build to compile test classes twice, once as 1.5 and once as 1.8 (with -parameters flag) and to run the test phase against both. As expected its ugly but it seems to work

Might be easier to just activate a profile based on jdk version for testing java 8

Updated to use a profile for Java 8 so the travis build fails when running on JDK8

Thanks for this, @HiJon89.
A few questions:

Are the test failures because of -parameters?  Or because of other stuff?

First, background: When we initially added java7, the build failed with a VerifyError (see https://travis-ci.org/cglib/cglib/jobs/26752743).  Ultimately, we tracked this down to the use of 'stack map frames' added in java7, which cglib doesn't create bytecode for.  In #23 we realized that the ant builds failed because they compiled the code with target=1.6, but the tests didn't have a specific target set so it used the JDK's target.  The maven POMs used the same target for code & test, which let the tests pass.  So by setting the target to <= 1.6, java didn't care about the stack map frames, and everything was great.
The question:  The patch looks like it's setting the target to >= 1.7 for tests, so why don't I see the verify error anymore?  Is java8 more lenient?  Is there a new asm dependency that's better?

I get strictly more test failures with -parameters so it does make a difference, but I still get test failures just by compiling the tests with Java 8.
Those stack frame errors are still there, but the JDK6 and JDK7 builds still target 1.5 for test compilation so they don't manifest themselves. The JDK8 build targets 1.8 and gets the stack frame errors. It looks like there's a ClassWriter flag that will tell ASM to automatically compute the stack map frames, do you know of a reason not to pass this flag?
Also, do you want to merge this PR and have a failing travis build on master or do you want me to try to fix the tests on Java 8 as part of this PR?

If possible I'd prefer to have it all working before merging.  IIRC, @raphw did some measurements and found that passing the COMPUTE_FRAMES flag measurably slowed things down (see https://github.com/cglib/cglib/pull/11#issuecomment-45090419).  I don't know exactly how that was measured though.  If it turns out to be strictly necessary on java8, then so be it... but if there was some way we could avoid it whenever possible, that'd be much nicer.

I wonder if that's referring to the time spent generates the classes or the performance of the generated class. If the former, I'm not sure how big of a concern it is; if you're generating classes in a tight loop you're already in trouble

The tests are passing on JDK6/7 as well as JDK8 (targeting 1.8 with -parameters flag). The changes were:

Pass Opcodes.ASM5 and ClassWriter.COMPUTE_FRAMES everywhere bee1096bd1b1052735640a3627cee94d1f142519
Switch to non-deprecated version of MethodVisitor#visitMethodInsn that takes an additional boolean flag 5f67e9fa0fcc718f625986eedb4e89ef9ab9f244 c9b4f0dc7240ae1c6d64726057c460794ae5186e

This looks great (though haven't looked at the new 'tees' commit yet.. it'd be great to get a test that would have failed w/o that change).  One remaining question:  do actually need COMPUTE_FRAMES everywhere?  Is ASM smart enough to elide the frames in places they aren't required?  For example, not every feature of cglib apparently needed the stackmap frames on java7/java8... as evidenced by frameworks like guice & mockito and such using cglib successfully on code targeted to java7+java8.
If having frames in the bytecode does slow down runtime, then it'd be better to elide the frames where-ever we're allowed to elide them.

From looking at the tees it seems like the goal is to override every method from the super class and delegate it to a pair of visitors. The ASM 5 upgrade added a bunch of methods to the superclass that weren't being overridden so it definitely seems more correct to override and delegate these as well

I'm not sure about the stack frames stuff, I'll try to run some benchmarks to see if its worth worrying about

Thanks @HiJon89!

You can find a benchmark in the ASM documentation, computing the frames doubles runtime for creating a class. It is not too bad but since we could hypothetically know when we create stack maps we could implement something cleaner. However, I do not think that this should hold us off doing it the "quick" way to get a new version running.

Ok if this is only a potential slowness in creating the classes (not in using the classes), then I'm happy.  It's pretty unlikely that creation would be in a critical fast path that happens frequently, since creating classes has a lot of permanent overhead.
@HiJon89, would it be hard to expand the tee test in java8 to make sure the new methods are overridden?  If so, no worries.  If not, it'd be great to add tests for that to make sure it doesn't regress.

Hmm, that might require writing tests using Java 8 features which would mean you couldn't build cglib on anything less than JDK8

I guess I could put the Java 8 tests in a separate module activated by a profile

Yeah a separate profile would be best because then we can commit tests that actually use java8 language features and make sure cglib works properly over them.  For example, we do this for Guice: https://github.com/google/guice/tree/master/jdk8-tests

Unless I'm missing something, it seems like ClassVisitorTee, FieldVisitorTee, and MethodVisitorTee are only used by ClassTransformerTee which is unused

ClassTransformerTee is a public class so it's part of the API that others can use (AFAICT?).  Although it does look like it's missing any tests. :-(

Yeah, I was hoping to test the tee fixes indirectly by using CGLIB on a Java 8 class, but since those classes aren't used internally it wouldn't work. Do you want me to just add somewhat trivial tests that verify the methods are overridden?

Nah if there's no tests already, no need in this PR to add some.  If you want to do a followup that makes sure java8 language features work in general (e.g, cglib works if there's default methods on interfaces, lambdas in code, etc..), that'd be really awesome and a good step in making sure cglib really works on java8.
This PR looks good to me as-is, though, so I'll merge it in.  Thanks very much!


LSTM baseline classifier code.

I have made 3 files. I have assumed the locations for the files. Please let me know if this is not up to your expectations.

I have made the code cleaner and more modular. Please let me know if this still changes.
Thank you for your time.


validations and model specs

In this PR I did the following:

Added the following validations:

For the User model:

Name must not be blank.
PostsCounter must be an integer greater than or equal to zero.

For the Post model:

Title must not be blank.
Title must not exceed 250 characters.
CommentsCounter must be an integer greater than or equal to zero.
LikesCounter must be an integer greater than or equal to zero.

Added unit specs for all of your models' methods and validations.

Hi @OLIPLICHE,
Can you please be specific on which unit tests I have not worked on and which one is wrong?

@Pazzo97 . Sorry, I am not at home, and I am using my phone to reply this. The test wasn't completely working when I run at my end. if you see that something is wrong, please feel free to send a screenshot and submit again. The next reviewer will definitely check on it. Thanks

Hi @OLIPLICHE
Thanks for your reply, the tests are working well on my end according to this screenshot


Research dataset licenses

From making FREME assets available
Does the licensing allow to re-distribute the datasets? Research for each dataset.

done, see the "license" column of the "List of FREME datasets" table.

I see that you added the license to each dataset but I cannot find the information if the license allows re-distribution or not.

while it is clear for CC licenses, some dataset use "custom" licenses. E.g.

cordis - https://ec.europa.eu/info/legal-notice_en - its not clear if we can or cannot re-distribute.
geopolitical ontology - http://www.fao.org/contact-us/terms/en/ - probably we can re-distribute.
global airports - quite unclear, here they write that there is fee for commercial use (http://openflights.org/data.html#license) but the data is publised under ODL license (http://opendatacommons.org/licenses/odbl/1.0/) which says "allow users to freely share, modify, and use this Database while maintaining this same freedom for others".
VIAF - https://datahub.io/dataset/viaf - under Open Data Commons Attribution license - which means we can re-distribute (http://opendatacommons.org/licenses/by/summary/)
the license for Europeana is still unclear

So we can re-distribute CC licenses. I just read about geopolitical ontology, the readme you posted says:
Content may be adapted, translated, copied, printed and downloaded for private study, research and teaching purposes, and for use in commercial and non-commercial products or services, provided that appropriate acknowledgement of FAO as the source s given and that FAO's endorsement of users' views, products or services is not stated or implied in any way.
So we just need to add in a readme file a link to the source. We need to research the other datasets as well.

the issue is fixed, licensing info has been collected and documented. closing the issue


Deprecate Azure Blockchain definition

This PR deprecates the Azure Blockchain definition given it will be shut down in Sept 2021. The README includes migration details and a pointer to the last version of the definition.
https://www.onmsft.com/news/microsoft-announces-shutdown-of-its-azure-blockchain-service

//cc: @cmendible as FYI

Is the pluging also being deprecated? If not the container definition is valid for OSS Ethereum development.
Other option would be adding the Solidity plugin and renaming.
Thoughts?

@cmendible That I don't know.  Mainly didn't want to have a service that is being deprecated in the list in VS Code.  Right now the extension is looks like it was renamed to "Blockchain Development Kit for Ethereum".
Mainly didn't want anything encouraging use of the deprecated service, so certainly renaming it is an option if you think that makes sense.

@Chuxel I also saw this today: https://azure.microsoft.com/en-us/updates/action-required-migrate-your-azure-blockchain-service-data-by-10-september-2021 so we are now partnering with ConsenSys and offering the Quorum Blockchain Service.
I think renaming from Azure Blockchain (Community) to: Blockchain Development Kit for Ethereum (Community) would make sense.
Then also add a PR to update the plugin dependencies.


Snapshots can be inconsistent, any ETA on a beta release?

We've been using the 2.0 snapshot for a while and for our usage it's been very stable and the minor issues that we've reported have been resolved very promptly so thanks for this.
As we near a public release of the phase of our application that uses the library it raises some concerns with continuing to use snapshots.
Unfortunately as there is no mechanism within Gradle to specify a specific snapshot build, we're either at the mercy of the Gradle cache (or have to ensure we regularly clear it to ensure the latest build) or we can set the changing flag but at the risk of potentially introducing breaking changes automatically.
Of course we can fork and/or use our own Maven repository, but if a more predictable release is on the horizon in the near future we'd prefer to use that.

+1

+1

I'll look into this as soon as I can. Most probably within the next couple of weeks.

It turns out that something was added to use a specific snapshot in Gradle 2.4:
https://docs.gradle.org/current/release-notes#depending-on-a-particular-maven-snapshot-version
I'll give this a try and see if it works, might solve the problem in the short term.

Can confirm that this works with Gradle 2.4:
    compile 'com.mobsandgeeks:android-saripaar:2.0-20150608.165549-1'
Also this works if you just want the latest (it forces the cache to be refreshed, which doesn't happen by default):
    compile group: 'com.mobsandgeeks', name: 'android-saripaar', version: '2.0-SNAPSHOT', changing: true

@Philio This is good. Thanks for posting this tip. Would be beneficial to others in a similar situation :) I'll expedite this as much as I can.

v2 has been released. Must take a while for it to appear on Maven Central. The release version is 2.0.0
Release commit ID f8e96e8493a310a2a07d78e122bf88c29b2f9764


Deprecate cache parameter in favour of seed

Functionality for cache stays the same, the more generic name is better suited for when your app needs to set custom keys.
requested in #55

closes #25

Codecov Report

Merging #57 into master will increase coverage by 0.36%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #57      +/-   ##
==========================================
+ Coverage   89.28%   89.65%   +0.36%
==========================================
  Files           2        2
  Lines          56       58       +2
==========================================
+ Hits           50       52       +2
  Misses          6        6

Impacted Files
Coverage Δ

lib/plugin.js
89.47% <100%> (+0.38%)
:arrow_up:

Continue to review full report at Codecov.

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

@a-x- @zuzusik @gmac Does initValue make sense to you (I had no idea how to name it so I just looked at the doc for Array.reduce :D )

Hey @gmac, I agree.
I've updated the PR, unit tests and readme to reflect the move to seed (mentioned here).
Cheers

@gmac are you ok with those changes?
Or shall we output a deprecation warning using util.deprecate?

Thinking about further improvements here: is there a way to detect that we are in multi-compiler mode inside of a plugin and then switch to seeding mode?
This would be really great and convenient - no need to specify seed as {} - it will just work out of the box.

Sure, it's possible to detect multi-compiler mode... you just look at the number of compilers configured. Off the top of my head, I think that's managed by an array called compilers on the root Webpack compiler object.
This sounds like a potentially useful feature, although beyond the scope of this PR. There's definitely some nuances there that would need to be solved for. The way I'd see it working would be to pass an option like universalManifest: true. When enabled, a plugin instance would configure around an internal singleton and mixin any provided seeds onto that. Otherwise, it would configure around the provided seed object itself. The nuance would be in tracking the right object identity.

Thanks all. Updated the readme with @gmac's suggestion 👍🏼

👍  I will release that tonight


Complete unit test coverage for Bundler::Fetcher::Index

:+1:

@homu r+

:pushpin: Commit 53d56c2 has been approved by segiddins

Quick ?, does homu run the full test suite in Travis CI and if so, do we have access to see it as it's running?

It will run it on travis, yeah

:hourglass: Testing commit 53d56c2 with merge a2d40cd...

:sunny: Test successful - status


Link model with two relations

Hi. I have model with two relations
class Model extends \yii\db\ActiveRecord
{
  public function getFirst()
  {
    return $this->hasOne(First::className(), ['id' => 'first_id']);
  }

  public function getSecond()
  {
    return $this->hasOne(Second::className(), ['id' => 'second_id']);
  }
}

Now I want to save this model. I do so
$model = new Model;
$model->setAttributes([...]);
$model->link('first', $firstModel);
$model->link('second', $secondModel);

But I get the constraint violation error in MySQL, because the link method tries to save model after first call. How to solve this problem ?
Thanks.

can you supply more information about this constraint violation error?

@dynasource, yes, sure. My mysql table have two foreign keys. In my code I want to save new record to mysql table. I try to link my model with relations through the link method, but the link method saves the record to database after first call. Thus only first foreign key is satisfied, but second foreign key not.
That is I can save the model only with one foreign key. If the foreign keys more than one, then the link method does not solves this problem.

I see. Well, the current implementation of link() does not support your usecase. Its just for linking 2 models. If you want to link more models, than you have to write your own script, without using link()

@dynasource thanks for answer. Is it possible to offer this improvement to yii core team? I am hardly able to do it, because my level written english is very bad.


Output to reveal.js

[First of all, congrats on the release]
Would it be possible, like nbconvert --to slides, to output slides in reveal.js format?
I know it would add a lot of complexity to define slides boundaries, but still...
On of the biggest advantages of Stitch, is that it plays nice with DVSC. With slides, it would become an awesome environment to collaborate on presentations and courses.

It kind of works now, if you take the template from https://gist.github.com/paultopia/0c57899407aed81f6932 and use
stitch slides.md -o slides.html -t html5 --template=revealjs.html --standalone --section-divs --variable theme="beige"

You'd need to disable syntax highlighting, since reveal handles that, which isn't an option yet.

Oh cool, pandoc has a --no-hightlight option, so
stitch slides.md -o slides.html -t html5 \
    --template=revealjs.html --standalone \
    --section-divs --variable theme="beige"

should work, assuming you're in the root of reveal.js git repo so that the links in the template work out. Do you have a somewhat complex example to try it out on?

Hi Tom,
Very cool. Yes, I do have an example, I will try it out today.
When is a new slide inserted btw?

Sorry, I see that |n is the new slide command

There's also the --slide-level=n option, so you can configure that.
I'm  going to close this for now, but let me know if you hit any issues.

Actually, going to reopen this as a reminder to document this, as I think it'll be pretty common.

Closed by https://github.com/pystitch/pystitch.github.io/commit/70bd0010e94f8a3122162d1b07f9d5fc1fa752f8
https://pystitch.github.io/faq.html, https://pystitch.github.io/_downloads/ex_revealjs.txt, and https://pystitch.github.io/_downloads/ex_revealjs.html#/


fix: typos in real_agents/adapters/data_model/

This pull request fixes typos in Python files under the directory real_agents/adapters/data_model/, which includes function definition helper text. I request the repository maintainers to review and merge it. Thanks! :heart:

Hi, thanks for your correction. I have checked and merged it.


fixes for header timestamp and error reason

Codecov Report

Merging #634 (62759bc) into main (35a1f5e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #634   +/-   ##
=======================================
  Coverage   33.05%   33.05%
=======================================
  Files           6        6
  Lines         357      357
=======================================
  Hits          118      118
  Misses        229      229
  Partials       10       10


Building pyilmbase 1.0.0 issues

Hi, everyone!
I'm trying to build pyilmbase library on osx 10.9 and face some problems. I've boost 1.48, configured and installed it with these options:
export CXXFLAGS="-fPIC"
export CFLAGS="-fPIC"
export LDFLAGS="-fPIC"
./bootstrap.sh --with-libraries=program_options --with-libraries=thread --with-libraries=python
sudo ./bjam install --layout=versioned link=static threading=multi cxxflags=-fPIC

it has installed successfully. After that I cd-ed to pyilmbase folder and ran
export CPPFLAGS="-I/usr/local/lib/python2.7/site-packages/numpy/core/include/"
./configure --with-boost-include-dir=/usr/local/include/boost-1_48/ --with-boost-lib-dir=/usr/local/lib --with-boost-python-libname=boost_python-mt-1_48

Output (with no errors):
---------------------------------------------
Summary for PyIlmBase features:

Python version                                  2.7
boost::python libname                           boost_python-mt-1_47
---------------------------------------------

but when I try to make it i get these errors:
PyImathStringTable.cpp:47:46: error: expected expression
    const StringSet &strings = _table.get<1>();
                                             ^
PyImathStringTable.cpp:62:45: error: expected expression
    const IndexSet &indices = _table.get<0>();
                                            ^
PyImathStringTable.cpp:77:46: error: expected expression
    const StringSet &strings = _table.get<1>();
                                             ^
PyImathStringTable.cpp:105:46: error: expected expression
    const StringSet &strings = _table.get<1>();
                                             ^
PyImathStringTable.cpp:114:45: error: expected expression
    const IndexSet &indices = _table.get<0>();
                                            ^
PyImathStringTable.cpp:47:22: error: declaration of reference variable 'strings' requires an initializer
    const StringSet &strings = _table.get<1>();
                     ^~~~~~~
PyImathStringTable.cpp:121:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<char> >::lookup' requested here
template class PYIMATH_EXPORT StringTableT<std::string>;
                              ^
PyImathStringTable.cpp:62:21: error: declaration of reference variable 'indices' requires an initializer
    const IndexSet &indices = _table.get<0>();
                    ^~~~~~~
PyImathStringTable.cpp:121:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<char> >::lookup' requested here
template class PYIMATH_EXPORT StringTableT<std::string>;
                              ^
PyImathStringTable.cpp:77:22: error: declaration of reference variable 'strings' requires an initializer
    const StringSet &strings = _table.get<1>();
                     ^~~~~~~
PyImathStringTable.cpp:121:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<char> >::intern' requested here
template class PYIMATH_EXPORT StringTableT<std::string>;
                              ^
PyImathStringTable.cpp:105:22: error: declaration of reference variable 'strings' requires an initializer
    const StringSet &strings = _table.get<1>();
                     ^~~~~~~
PyImathStringTable.cpp:121:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<char> >::hasString' requested here
template class PYIMATH_EXPORT StringTableT<std::string>;
                              ^
PyImathStringTable.cpp:114:21: error: declaration of reference variable 'indices' requires an initializer
    const IndexSet &indices = _table.get<0>();
                    ^~~~~~~
PyImathStringTable.cpp:121:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<char> >::hasStringIndex' requested here
template class PYIMATH_EXPORT StringTableT<std::string>;
                              ^
PyImathStringTable.cpp:47:22: error: declaration of reference variable 'strings' requires an initializer
    const StringSet &strings = _table.get<1>();
                     ^~~~~~~
PyImathStringTable.cpp:122:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<wchar_t> >::lookup' requested here
template class PYIMATH_EXPORT StringTableT<std::wstring>;
                              ^
PyImathStringTable.cpp:62:21: error: declaration of reference variable 'indices' requires an initializer
    const IndexSet &indices = _table.get<0>();
                    ^~~~~~~
PyImathStringTable.cpp:122:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<wchar_t> >::lookup' requested here
template class PYIMATH_EXPORT StringTableT<std::wstring>;
                              ^
PyImathStringTable.cpp:77:22: error: declaration of reference variable 'strings' requires an initializer
    const StringSet &strings = _table.get<1>();
                     ^~~~~~~
PyImathStringTable.cpp:122:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<wchar_t> >::intern' requested here
template class PYIMATH_EXPORT StringTableT<std::wstring>;
                              ^
PyImathStringTable.cpp:105:22: error: declaration of reference variable 'strings' requires an initializer
    const StringSet &strings = _table.get<1>();
                     ^~~~~~~
PyImathStringTable.cpp:122:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<wchar_t> >::hasString' requested here
template class PYIMATH_EXPORT StringTableT<std::wstring>;
                              ^
PyImathStringTable.cpp:114:21: error: declaration of reference variable 'indices' requires an initializer
    const IndexSet &indices = _table.get<0>();
                    ^~~~~~~
PyImathStringTable.cpp:122:31: note: in instantiation of member function 'PyImath::StringTableT<std::__1::basic_string<wchar_t> >::hasStringIndex' requested
      here
template class PYIMATH_EXPORT StringTableT<std::wstring>;
                              ^
15 errors generated.
make[1]: *** [PyImathStringTable.lo] Error 1
make: *** [all-recursive] Error 1

Using osx 10.9, Boost 1.48, pyilmbase 1.0.0 and python 2.7 installed with brew
Hope for your assistance.
Thanks in advance!

Looking into the OpenEXR issue backlog.  Is this still an issue?

This version of boost is off the radar for vfxplatform. Please re-open if issues recur.


Fix branch name for push/pr

Addresses issue https://github.com/starfixdev/starfix/issues/121

@maxandersen can you please review this and if ok merge it. This change basically target the trigger of gh-actions on a pull request which isn't working currently due to the changed branch name(which was originally "master" and now "main").


unary mode exit unexpectedly when I use python client to request a c++ server

I am using linux os, my server is c++ built from source, and my client is python installed with pip, the proto file is like this:
syntax = "proto3";

package comm;

service ImageService {
    rpc get_img_by_idx (IdxRequest) returns (ImgReply) {}
}

message IdxRequest {
}

message ImgReply {
    bytes data = 1;
    repeated int32 shape = 2;
    string dtype = 3;
    int64 label = 4;
}

The c++ server is like this:
#include <iostream>
#include <string>
#include <vector>
#include <memory>
#include <chrono>
#include <array>

#include <grpcpp/grpcpp.h>

#include "comm/interface.grpc.pb.h"
#include "comm/interface.pb.h"

using std::string;
using std::vector;
using std::unique_ptr;
using std::cout;
using std::endl;
using std::array;

using grpc::Status;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::ServerWriter;

class ImageServiceImpl final: public comm::ImageService::Service {
    public:
        ImageServiceImpl();
        void read_annos();
        Status get_img_by_idx(ServerContext *context,
                const comm::IdxRequest *request,
                comm::ImgReply* reply) override;
};

ImageServiceImpl::ImageServiceImpl() {
}

Status ImageServiceImpl::get_img_by_idx(ServerContext *context,
        const comm::IdxRequest *request,
        comm::ImgReply* reply) {

    int bytes_len = 3 * 224 * 224 * sizeof(4);
    string im;
    im.resize(bytes_len);

    array<int, 3> shape{224, 224, 3};
    for (auto& el : shape) {
        reply->add_shape(el);
    }
    reply->set_data(im.data(), bytes_len);
    reply->set_data(im);
    reply->set_dtype("float32");
    reply->set_label(100);

    return Status::OK;
}

int main() {
    string addr("<IP_ADDRESS>:50001");
    ImageServiceImpl service;
    ServerBuilder builder;
    builder.AddListeningPort(addr, grpc::InsecureServerCredentials());
    builder.RegisterService(&service);
    builder.SetMaxSendMessageSize(1L << 31);
    builder.SetMaxReceiveMessageSize(1L << 31);
    grpc::ResourceQuota rq;
    rq.SetMaxThreads(1280);
    builder.SetResourceQuota(rq);

    std::unique_ptr<grpc::Server> server(builder.BuildAndStart());
    std::cout << "service started, listening to: " << addr << std::endl;

    server->Wait();

    return 0;
}

And the python client code is like this:
import sys
sys.path.insert(0, './commpy')
from multiprocessing import Pool, Queue

import grpc
import numpy as np

from commpy.interface_pb2 import IdxRequest
from commpy.interface_pb2_grpc import ImageServiceStub

mq = Queue(2048*2)
n_get = 0

def run_get_by_idx(idx):
    with grpc.insecure_channel(
            'localhost:50001',
            options=[
                ('grpc.max_receive_message_length', 1 << 30),
                ('grpc.max_send_message_length', 1 << 30),
            ]
        ) as channel:
        stub = ImageServiceStub(channel)

        req = IdxRequest()
        reply = stub.get_img_by_idx(req)

        res = np.frombuffer(
                reply.data, dtype=reply.dtype
                ).reshape(reply.shape)[None, ...]
        mq.put(res)

def start_prefetcher():
    batchsize = 1024 * 100
    indices = list(range(1024)) * 100
    pool = Pool(32)
    print('pool')
    pool.map_async(run_get_by_idx, indices)

def get_queue_batch():
    global n_get
    batchsize = 1024
    ims = []
    for i in range(batchsize):
        n_get += 1
        ims.append(mq.get())
    ims = np.concatenate(ims, axis=0)
    print('queue size: ', mq.qsize())

if __name__ == "__main__":
    start_prefetcher()
    for _ in range(1300):
        get_queue_batch()
        print('n_get: {} x 1024'.format(n_get//1024))

The problem is that after about 27 iter of the for loop, the program just get blocked. From server side, I observed that no request comes, and from the client side, it seems that the client just stops sending request. Where is the problem comes from please?

@CoinCheung Thanks for the report! It looks like this is a hermetic reproduction case. Is this pushed to a repo we can build from for analysis?

Yes, I have just created a docker image. You can pull it from dockerhub:
docker pull coincheung/debug:grpc1

And start it like this:
docker run -it --rm coincheung/debug:grpc1 bash

I downloaded grpc and protobuf to /build and compiled them there, and my test code is at /test, you can try it like this:
cd /test/build
./main & # start the server
cd /test
python3 call.py

Then you are likely to observe that the program get stucked at around 27 iters.

No, they are not noticing this ...

@CoinCheung Thank you for the repro docker image! However, I'm unable to reproduce. The client-server pair seems to work as expected. As written, the process doesn't exit because get_queue_batch is run 1300 times, while start_prefetcher doesn't produce nearly that many entries on the queue. I'm not seeing any problems on the gRPC side.
Any other particulars of your setup I can use to reproduce?

That is weird, I still have the problem of getting stuck at some iteration of the for loop. My docker configuration(output of docker info is:
Containers: 22
 Running: 6
 Paused: 0
 Stopped: 16
Images: 101
Server Version: 18.09.7
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: nvidia runc
Default Runtime: runc
Init Binary: docker-init
containerd version:
runc version: N/A
init version: v0.18.0 (expected: fec3683b971d9c3ef73f284f176672c44b448662)
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-116-generic
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 72
Total Memory: 125.5GiB
Name: me-dev-td01.lo-cq-lcidc.host.cloudwalk.work
ID: KNEL:WD6R:LD5K:OTYH:LZKM:ZCPB:RR6Y:7AUD:MF6O:SBUB:QRCE:RO3L
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: coincheung
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Registry Mirrors:
 https://hub-mirror.c.163.com/
 http://f1361db2.m.daocloud.io/
 https://registry.docker-cn.com/
 https://dockerhub.azk8s.cn/
 https://docker.mirrors.ustc.edu.cn/
 https://reg-mirror.qiniu.com/
 https://mirror.ccs.tencentyun.com/
Live Restore Enabled: false

WARNING: No swap limit support

And my container start with command docker run -it --rm <image_id> bash.
My linux system information given by lsb_release is:
LSB Version:	core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch

Does these configurations impact the functions of grpc ?

@CoinCheung I wouldn't expect any of the info that you just posted to cause an issue like you've described. The fact that we have different behavior from the same container image suggests a difference in the kernel (though we certainly should support 4.4.0). Can you check if the problem persists on a more recent kernel?

It's been more than 30 days since "disposition/requires reporter action" was added. Please feel to re-open/create a new issue if the issue persists.


NOx binning false fails issued by the tool

WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12459, NOx Tracking Stored 100 Hour Engine Output Energy Bin 3 : 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12460, NOx Tracking Stored 100 Hour Engine Output Energy Bin 4: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12461, NOx Tracking Stored 100 Hour Engine Output Energy Bin 5: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12462, NOx Tracking Stored 100 Hour Engine Output Energy Bin 6: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12463, NOx Tracking Stored 100 Hour Engine Output Energy Bin 7: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12464, NOx Tracking Stored 100 Hour Engine Output Energy Bin 8: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12465, NOx Tracking Stored 100 Hour Engine Output Energy Bin 9: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12466, NOx Tracking Stored 100 Hour Engine Output Energy Bin 10: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12467, NOx Tracking Stored 100 Hour Engine Output Energy Bin 11: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12468, NOx Tracking Stored 100 Hour Engine Output Energy Bin 12: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12469, NOx Tracking Stored 100 Hour Engine Output Energy Bin 13: 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12470, NOx Tracking Stored 100 Hour Engine Output Energy Bin 14 : 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12471, NOx Tracking Stored 100 Hour Engine Output Energy Bin 15 (NTE BIN) : 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12472, NOx Tracking Stored 100 Hour Engine Output Energy Bin 16 (Regen Bin) : 0.000 kWh
WARN: <IP_ADDRESS>.i - Active 100 hr EOE bin1 and bin2 received is <= 0.5kW-hr from Engine #1 (0) for SPN 12473, NOx Tracking Stored 100 Hour Engine Output Energy Bin 17 (MIL On Bin) : 0.000 kWh
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12340, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 3 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12341, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 4: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12342, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 5: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12343, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 6: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12344, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 7: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12345, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 8: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12346, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 9: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12347, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 10: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12348, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 11: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12349, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 12: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12350, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 13: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12351, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 14 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12352, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 15 (NTE BIN) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12353, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 16 (Regen Bin) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12354, NOx Tracking Active 100 Hour Engine Out NOx Mass Bin 17 (MIL On Bin) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12323, NOx Tracking Active 100 Hour System Out NOx Mass Bin 3 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12324, NOx Tracking Active 100 Hour System Out NOx Mass Bin 4: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12325, NOx Tracking Active 100 Hour System Out NOx Mass Bin 5: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12326, NOx Tracking Active 100 Hour System Out NOx Mass Bin 6: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12327, NOx Tracking Active 100 Hour System Out NOx Mass Bin 7: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12328, NOx Tracking Active 100 Hour System Out NOx Mass Bin 8: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12329, NOx Tracking Active 100 Hour System Out NOx Mass Bin 9: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12330, NOx Tracking Active 100 Hour System Out NOx Mass Bin 10: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12331, NOx Tracking Active 100 Hour System Out NOx Mass Bin 11: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12332, NOx Tracking Active 100 Hour System Out NOx Mass Bin 12: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12333, NOx Tracking Active 100 Hour System Out NOx Mass Bin 13: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12334, NOx Tracking Active 100 Hour System Out NOx Mass Bin 14 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12335, NOx Tracking Active 100 Hour System Out NOx Mass Bin 15 (NTE BIN) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12336, NOx Tracking Active 100 Hour System Out NOx Mass Bin 16 (Regen Bin) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12337, NOx Tracking Active 100 Hour System Out NOx Mass Bin 17 (MIL On Bin) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12442, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 3 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12443, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 4: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12444, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 5: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12445, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 6: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12446, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 7: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12447, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 8: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12448, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 9: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12449, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 10: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12450, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 11: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12451, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 12: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12452, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 13: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12453, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 14 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12454, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 15 (NTE BIN) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12455, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 16 (Regen Bin) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12456, NOx Tracking Stored 100 Hour Engine Out NOx Mass Bin 17 (MIL On Bin) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12425, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 3 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12426, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 4: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12427, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 5: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12428, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 6: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12429, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 7: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12430, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 8: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12431, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 9: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12432, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 10: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12433, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 11: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12434, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 12: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12435, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 13: 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12436, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 14 : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12437, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 15 (NTE BIN) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12438, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 16 (Regen Bin) : 0.000 g
WARN: <IP_ADDRESS>.k - Active 100 hr system out Nox bin1 and bin2 received is = 0 seconds from Engine #1 (0) for SPN 12439, NOx Tracking Stored 100 Hour System Out NOx Mass Bin 17 (MIL On Bin) : 0.000 g

This issue appears to be resolved in v3.1.3.

TY Anthony.

Corrected in 3.1.3