Make it work with Jitsi Meet apps

As explained here https://github.com/jitsi/jitsi-meet-electron#using-it-with-your-own-jitsi-meet-installation
Probably the nginx needs to be edited for it to work. Currently the nginx looks like so:
root /var/www/jitsi/jitsi-meet-web;

# ssi on with javascript for multidomain variables in config.js
ssi on;
ssi_types application/x-javascript application/javascript;

index index.html index.htm;
error_page 404 /static/404.html;

location = /config.js {
    alias /etc/jitsi/meet/call.trom.tf-config.js;
}

location = /external_api.js {
    alias /var/www/jitsi/jitsi-meet-web/libs/external_api.min.js;
}

#ensure all static content can always be found first
location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$
{
    more_set_headers "Access-Control-Allow-Origin: *";
    alias /var/www/jitsi/jitsi-meet-web/$1/$2;

    # cache all versioned files
    if ($arg_v) {
        expires 1y;
    }
}

# BOSH
location = /http-bind {
    proxy_pass  http://<IP_ADDRESS>:5280/http-bind?prefix=$prefix&$args;
    proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
}

# xmpp websockets
location = /xmpp-websocket {
    proxy_pass http://<IP_ADDRESS>:5280/xmpp-websocket?prefix=$prefix&$args;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    tcp_nodelay on;
}

# colibri (JVB) websockets for jvb1
location ~ ^/colibri-ws/default-id/(.*) {
    proxy_pass http://<IP_ADDRESS>:9090/colibri-ws/default-id/$1$is_args$args;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    tcp_nodelay on;
}

location ~ ^/([^/?&:'"]+)$ {
    try_files $uri @root_path;
}

location @root_path {
    rewrite ^/(.*)$ / break;
}

location ~ ^/([^/?&:'"]+)/config.js$
{
   set $subdomain "$1.";
   set $subdir "$1/";

   alias /etc/jitsi/meet/call.trom.tf-config.js;
}

# BOSH for subdomains
location ~ ^/([^/?&:'"]+)/http-bind {
    set $subdomain "$1.";
    set $subdir "$1/";
    set $prefix "$1";

    rewrite ^/(.*)$ /http-bind;
}

# websockets for subdomains
location ~ ^/([^/?&:'"]+)/xmpp-websocket {
    set $subdomain "$1.";
    set $subdir "$1/";
    set $prefix "$1";

    rewrite ^/(.*)$ /xmpp-websocket;
}

#Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
location ~ ^/([^/?&:'"]+)/(.*)$ {
    set $subdomain "$1.";
    set $subdir "$1/";
    rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
}

Feel free to do a Pull Request

Ok. As soon as I'll know how I'll try.

Ok so we are trying to figure this out. For it to work it needs Access-Control-Allow-Origin: * . I suppose the Nginx file for YNH Jitsi is  /etc/nginx/conf.d/call.trom.tf.d/jitsi.conf . My instance is call.trom.tf. That config file seems to allow that origin. Here it is:
root /var/www/jitsi/jitsi-meet-web;

# ssi on with javascript for multidomain variables in config.js
ssi on;
ssi_types application/x-javascript application/javascript;

index index.html index.htm;
error_page 404 /static/404.html;

location = /config.js {
    alias /etc/jitsi/meet/call.trom.tf-config.js;
}

location = /external_api.js {
    alias /var/www/jitsi/jitsi-meet-web/libs/external_api.min.js;
}

#ensure all static content can always be found first
location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$
{
    more_set_headers "Access-Control-Allow-Origin: *";
    alias /var/www/jitsi/jitsi-meet-web/$1/$2;

    # cache all versioned files
    if ($arg_v) {
        expires 1y;
    }
}

# BOSH
location = /http-bind {
    proxy_pass  http://<IP_ADDRESS>:5280/http-bind?prefix=$prefix&$args;
    proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
}

# xmpp websockets
location = /xmpp-websocket {
    proxy_pass http://<IP_ADDRESS>:5280/xmpp-websocket?prefix=$prefix&$args;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    tcp_nodelay on;
}

# colibri (JVB) websockets for jvb1
location ~ ^/colibri-ws/default-id/(.*) {
    proxy_pass http://<IP_ADDRESS>:9090/colibri-ws/default-id/$1$is_args$args;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    tcp_nodelay on;
}

location ~ ^/([^/?&:'"]+)$ {
    try_files $uri @root_path;
}

location @root_path {
    rewrite ^/(.*)$ / break;
}

location ~ ^/([^/?&:'"]+)/config.js$
{
   set $subdomain "$1.";
   set $subdir "$1/";

   alias /etc/jitsi/meet/call.trom.tf-config.js;
}

# BOSH for subdomains
location ~ ^/([^/?&:'"]+)/http-bind {
    set $subdomain "$1.";
    set $subdir "$1/";
    set $prefix "$1";

    rewrite ^/(.*)$ /http-bind;
}

# websockets for subdomains
location ~ ^/([^/?&:'"]+)/xmpp-websocket {
    set $subdomain "$1.";
    set $subdir "$1/";
    set $prefix "$1";

    rewrite ^/(.*)$ /xmpp-websocket;
}

#Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
location ~ ^/([^/?&:'"]+)/(.*)$ {
    set $subdomain "$1.";
    set $subdir "$1/";
    rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
}

And yet when debugging the Jitsi Meet App we clearly see that the origin is set to "sameorigin".
chrome-error://chromewebdata/:1 Refused to display 'https://call.trom.tf/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
So something is either wring with the nginx config for jitsi or it is getting re-written by something else.
Any help?
We re discussing it here too https://github.com/jitsi/jitsi-meet-electron/issues/710

Shouldn't the individual nginx files for individual apps, rewrite the main one?

nope individual nginx files are just a part of the global nginx config file

hmm...ok...so how can one force a setting like more_set_headers "Access-Control-Allow-Origin: *"; for just 1 single app? That's for sure a useful setting for apps like Jitsi, Nextcloud and the like...

i don't know

Apps nginx config are included after security config, so apps config can "force" a setting.

chrome-error://chromewebdata/:1 Refused to display 'https://call.trom.tf/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

The browser seems to complain about X-Frame-Options.
You can remove this header by adding more_clear_headers X-Frame-Options; in the nginx conf.

Sounds encouraging @tagadda !
I have added it as such and in the file /etc/nginx/conf.d/call.trom.tf.d/jitsi.conf :
#ensure all static content can always be found first
location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$
{
    more_set_headers "Access-Control-Allow-Origin: *";
    more_clear_headers "X-Frame-Options";
    alias /var/www/jitsi/jitsi-meet-web/$1/$2;

    # cache all versioned files
    if ($arg_v) {
        expires 1y;
    }
}

Or without the "".
Seems not to work. I restarted the nginx.

Oh it worked when I added it to the top of nginx config. Thanks a ton!


Could you public a sample of docker-compose.yml?

Could you public a sample of docker-compose.yml?
I read some about docker-compose.yml, but seems no sample document about it.
Like
https://github.com/hyperledger/fabric/blob/f7d932108d1e339d3371b6e8e922d09ecf913e9a/docs/Setup/Network-setup.md
https://github.com/hyperledger/fabric/blob/89d570470573c6cfb2faebe7b38832256de2e8c3/pub/fabric-peer.md
https://github.com/hyperledger/fabric/blob/dab545d0ae91389e92561945992fe14bdcdcd13a/docs/Setup/Chaincode-setup.md
They wrote a lot about "docker-compose.yml file"........

Look in fabric/bddtests .

As @iiiLiQuiDiii said https://github.com/hyperledger/fabric/tree/v0.5-developer-preview/bddtests and also in the documentation for setting up a network. There are an abundance of examples.


TS, lerna monorepo and ts-jest@beta Error: Unable to compile TypeScript Module was resolved to 'index.tsx', but '--jsx' is not set.

Issue :
Trying to test React component is failing
Have read:
Troubles using it with TS3 and composite project
Guide to use Jest with Lerna
and set up my lerna typescript monorepo.
without importing React components - test is passed^ but when I try to import React componet I get the error:
 FAIL   @budarin/simple-button  packages/simple-button/__tests__/iindex.test.tsx
  ● Test suite failed to run

    Unable to compile TypeScript (add code(s) in `[jest-config].globals.ts-jest.diagnostics.ignoreCodes` to ignore):
    packages/simple-button/__tests__/iindex.test.tsx:3:20 - error TS6142: Module '../src/index' was resolved to '/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx', but '--jsx' is not set.

    import Button from '../src/index';

although build command builts the component
Expected behavior :
pass tests without errors
Output from debug log :
{"context":{"logLevel":20,"namespace":"Importer","package":"ts-jest","version":"23.10.0-beta.3"},"message":"creating Importer singleton","sequence":2,"time":"2018-09-06T16:32:29.721Z"}
{"context":{"allowJs":false,"logLevel":20,"namespace":"jest-preset","package":"ts-jest","version":"23.10.0-beta.3"},"message":"creating jest presets not handling JavaScript files","sequence":3,"time":"2018-09-06T16:32:29.726Z"}
{"context":{"actualVersion":"23.5.0","expectedVersion":">=22 <24","logLevel":20,"namespace":"versions","package":"ts-jest","version":"23.10.0-beta.3"},"message":"checking version of jest: OK","sequence":4,"time":"2018-09-06T16:32:29.729Z"}
{"context":{"baseOptions":{},"logLevel":20,"namespace":"jest-transformer","package":"ts-jest","transformerId":1,"version":"23.10.0-beta.3"},"message":"created new transformer","sequence":5,"time":"2018-09-06T16:32:29.730Z"}
{"context":{"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","logLevel":20,"namespace":"jest-transformer","package":"ts-jest","transformOptions":{"instrument":false,"rootDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text"},"transformerId":1,"version":"23.10.0-beta.3"},"message":"computing cache key for /Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","sequence":6,"time":"2018-09-06T16:32:29.731Z"}
{"context":{"logLevel":30,"namespace":"jest-transformer","package":"ts-jest","transformerId":1,"version":"23.10.0-beta.3"},"message":"no matching config-set found, creating a new one","sequence":7,"time":"2018-09-06T16:32:29.731Z"}
{"context":{"config":{"automock":false,"browser":false,"cache":true,"cacheDirectory":"/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["(tests/.*.mock).(jsx?||ts?|tsx?)$"],"cwd":"/Users/vadim_budarin/projects/ui-kit-bootstrap","detectLeaks":false,"detectOpenHandles":false,"displayName":"@budarin/simple-text","errorOnDeprecated":false,"filter":null,"forceCoverageMatch":[],"globals":{},"haste":{"providesModuleNodeModules":[]},"moduleDirectories":["node_modules"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"],"moduleNameMapper":{},"modulePathIgnorePatterns":[],"name":"@budarin/simple-text","prettierPath":null,"resetMocks":false,"resetModules":false,"resolver":null,"restoreMocks":false,"rootDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text","roots":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text"],"runner":"jest-runner","setupFiles":[],"setupTestFrameworkScriptFile":null,"skipFilter":false,"snapshotSerializers":[],"testEnvironment":"jest-environment-jsdom","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/lib/"],"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(ts?|tsx?)?$","testRunner":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[["^.+\\.ts$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"],["^.+\\.tsx$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]},"logLevel":20,"namespace":"backports","package":"ts-jest","transformerId":1,"version":"23.10.0-beta.3"},"message":"backporting config","sequence":8,"time":"2018-09-06T16:32:29.731Z"}
{"context":{"jestConfig":{"automock":false,"browser":false,"cache":true,"cacheDirectory":"/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["(tests/.*.mock).(jsx?||ts?|tsx?)$"],"cwd":"/Users/vadim_budarin/projects/ui-kit-bootstrap","detectLeaks":false,"detectOpenHandles":false,"displayName":"@budarin/simple-text","errorOnDeprecated":false,"filter":null,"forceCoverageMatch":[],"globals":{"ts-jest":{}},"haste":{"providesModuleNodeModules":[]},"moduleDirectories":["node_modules"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"],"moduleNameMapper":{},"modulePathIgnorePatterns":[],"name":"@budarin/simple-text","prettierPath":null,"resetMocks":false,"resetModules":false,"resolver":null,"restoreMocks":false,"rootDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text","roots":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text"],"runner":"jest-runner","setupFiles":[],"setupTestFrameworkScriptFile":null,"skipFilter":false,"snapshotSerializers":[],"testEnvironment":"jest-environment-jsdom","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/lib/"],"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(ts?|tsx?)?$","testRunner":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[["^.+\\.ts$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"],["^.+\\.tsx$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]},"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":1,"version":"23.10.0-beta.3"},"message":"normalized jest config","sequence":9,"time":"2018-09-06T16:32:29.732Z"}
{"context":{"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":1,"tsJestConfig":{"compiler":"typescript","diagnostics":{"ignoreCodes":[6059,18002,18003],"pretty":true},"isolatedModules":false,"transformers":[],"tsConfig":{"kind":"file"}},"version":"23.10.0-beta.3"},"message":"normalized ts-jest config","sequence":10,"time":"2018-09-06T16:32:29.732Z"}
{"context":{"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":1,"version":"23.10.0-beta.3"},"message":"babel is disabled","sequence":11,"time":"2018-09-06T16:32:29.734Z"}
{"context":{"logLevel":20,"namespace":"Importer","package":"ts-jest","version":"23.10.0-beta.3"},"message":"loaded module typescript","sequence":12,"time":"2018-09-06T16:32:29.977Z"}
{"context":{"logLevel":20,"namespace":"Importer","package":"ts-jest","version":"23.10.0-beta.3"},"message":"patching typescript","sequence":13,"time":"2018-09-06T16:32:29.977Z"}
{"context":{"actualVersion":"3.0.3","expectedVersion":">=2.7 <4","logLevel":20,"namespace":"versions","package":"ts-jest","version":"23.10.0-beta.3"},"message":"checking version of typescript: OK","sequence":14,"time":"2018-09-06T16:32:29.978Z"}
{"context":{"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":1,"tsconfig":{"resolved":{"compileOnSave":false,"configFileSpecs":{"excludeSpecs":["$$ts-jest$$"],"includeSpecs":["**/*"],"validatedExcludeSpecs":["$$ts-jest$$"],"validatedIncludeSpecs":["**/*"],"wildcardDirectories":{"/users/vadim_budarin/projects/ui-kit-bootstrap":1}},"errors":[],"fileNames":["/Users/vadim_budarin/projects/ui-kit-bootstrap/setupEnzyme.ts","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/types.d.ts","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/src/index.tsx"],"options":{"declaration":false,"esModuleInterop":true,"inlineSourceMap":false,"inlineSources":true,"module":1,"noEmit":false,"outDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/$$ts-jest$$","removeComments":false,"sourceMap":true,"target":1},"raw":{"compileOnSave":false,"compilerOptions":{"declaration":false,"esModuleInterop":true,"inlineSourceMap":false,"inlineSources":true,"module":"commonjs","noEmit":false,"outDir":"$$ts-jest$$","removeComments":false,"sourceMap":true}},"typeAcquisition":{"enable":false,"exclude":[],"include":[]},"wildcardDirectories":{"/users/vadim_budarin/projects/ui-kit-bootstrap":1}}},"version":"23.10.0-beta.3"},"message":"normalized typescript config","sequence":15,"time":"2018-09-06T16:32:29.985Z"}
{"context":{"baseOptions":{},"logLevel":20,"namespace":"jest-transformer","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"created new transformer","sequence":16,"time":"2018-09-06T16:32:30.208Z"}
{"context":{"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":20,"namespace":"jest-transformer","package":"ts-jest","transformOptions":{"instrument":false,"rootDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button"},"transformerId":2,"version":"23.10.0-beta.3"},"message":"computing cache key for /Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","sequence":17,"time":"2018-09-06T16:32:30.208Z"}
{"context":{"logLevel":30,"namespace":"jest-transformer","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"no matching config-set found, creating a new one","sequence":18,"time":"2018-09-06T16:32:30.208Z"}
{"context":{"config":{"automock":false,"browser":false,"cache":true,"cacheDirectory":"/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["(tests/.*.mock).(jsx?||ts?|tsx?)$"],"cwd":"/Users/vadim_budarin/projects/ui-kit-bootstrap","detectLeaks":false,"detectOpenHandles":false,"displayName":"@budarin/simple-button","errorOnDeprecated":false,"filter":null,"forceCoverageMatch":[],"globals":{},"haste":{"providesModuleNodeModules":[]},"moduleDirectories":["node_modules"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"],"moduleNameMapper":{},"modulePathIgnorePatterns":[],"name":"@budarin/simple-button","prettierPath":null,"resetMocks":false,"resetModules":false,"resolver":null,"restoreMocks":false,"rootDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button","roots":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button"],"runner":"jest-runner","setupFiles":[],"setupTestFrameworkScriptFile":null,"skipFilter":false,"snapshotSerializers":[],"testEnvironment":"jest-environment-jsdom","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/lib/"],"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(ts?|tsx?)?$","testRunner":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[["^.+\\.ts$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"],["^.+\\.tsx$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]},"logLevel":20,"namespace":"backports","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"backporting config","sequence":19,"time":"2018-09-06T16:32:30.208Z"}
{"context":{"jestConfig":{"automock":false,"browser":false,"cache":true,"cacheDirectory":"/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["(tests/.*.mock).(jsx?||ts?|tsx?)$"],"cwd":"/Users/vadim_budarin/projects/ui-kit-bootstrap","detectLeaks":false,"detectOpenHandles":false,"displayName":"@budarin/simple-button","errorOnDeprecated":false,"filter":null,"forceCoverageMatch":[],"globals":{"ts-jest":{}},"haste":{"providesModuleNodeModules":[]},"moduleDirectories":["node_modules"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"],"moduleNameMapper":{},"modulePathIgnorePatterns":[],"name":"@budarin/simple-button","prettierPath":null,"resetMocks":false,"resetModules":false,"resolver":null,"restoreMocks":false,"rootDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button","roots":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button"],"runner":"jest-runner","setupFiles":[],"setupTestFrameworkScriptFile":null,"skipFilter":false,"snapshotSerializers":[],"testEnvironment":"jest-environment-jsdom","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":[],"testPathIgnorePatterns":["/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/lib/"],"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(ts?|tsx?)?$","testRunner":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[["^.+\\.ts$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"],["^.+\\.tsx$","/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/ts-jest/dist/index.js"]],"transformIgnorePatterns":["/node_modules/"],"watchPathIgnorePatterns":[]},"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"normalized jest config","sequence":20,"time":"2018-09-06T16:32:30.208Z"}
{"context":{"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":2,"tsJestConfig":{"compiler":"typescript","diagnostics":{"ignoreCodes":[6059,18002,18003],"pretty":true},"isolatedModules":false,"transformers":[],"tsConfig":{"kind":"file"}},"version":"23.10.0-beta.3"},"message":"normalized ts-jest config","sequence":21,"time":"2018-09-06T16:32:30.209Z"}
{"context":{"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"babel is disabled","sequence":22,"time":"2018-09-06T16:32:30.209Z"}
{"context":{"logLevel":20,"namespace":"config","package":"ts-jest","transformerId":2,"tsconfig":{"resolved":{"compileOnSave":false,"configFileSpecs":{"excludeSpecs":["$$ts-jest$$"],"includeSpecs":["**/*"],"validatedExcludeSpecs":["$$ts-jest$$"],"validatedIncludeSpecs":["**/*"],"wildcardDirectories":{"/users/vadim_budarin/projects/ui-kit-bootstrap":1}},"errors":[],"fileNames":["/Users/vadim_budarin/projects/ui-kit-bootstrap/setupEnzyme.ts","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/types.d.ts","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/src/index.tsx"],"options":{"declaration":false,"esModuleInterop":true,"inlineSourceMap":false,"inlineSources":true,"module":1,"noEmit":false,"outDir":"/Users/vadim_budarin/projects/ui-kit-bootstrap/$$ts-jest$$","removeComments":false,"sourceMap":true,"target":1},"raw":{"compileOnSave":false,"compilerOptions":{"declaration":false,"esModuleInterop":true,"inlineSourceMap":false,"inlineSources":true,"module":"commonjs","noEmit":false,"outDir":"$$ts-jest$$","removeComments":false,"sourceMap":true}},"typeAcquisition":{"enable":false,"exclude":[],"include":[]},"wildcardDirectories":{"/users/vadim_budarin/projects/ui-kit-bootstrap":1}}},"version":"23.10.0-beta.3"},"message":"normalized typescript config","sequence":23,"time":"2018-09-06T16:32:30.211Z"}
{"context":{"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":20,"namespace":"jest-transformer","package":"ts-jest","transformOptions":{"instrument":false},"transformerId":2,"version":"23.10.0-beta.3"},"message":"processing /Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","sequence":24,"time":"2018-09-06T16:32:30.212Z"}
{"context":{"logLevel":20,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"creating typescript compiler (language service)","sequence":25,"time":"2018-09-06T16:32:30.212Z"}
{"context":{"cacheDirectory":"/var/folders/3d/my733tj9449d7jbbq3h3395w0000gn/T/jest_dx/ts-jest-5d36490ca4e2121d33d1e64cd65f41b0e6168332","logLevel":20,"namespace":"config","package":"ts-jest","version":"23.10.0-beta.3"},"message":"will use file caching","sequence":26,"time":"2018-09-06T16:32:30.212Z"}
{"context":{"logLevel":20,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"creating language service","sequence":27,"time":"2018-09-06T16:32:30.213Z"}
{"context":{"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":20,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readThrough(): cache miss","sequence":28,"time":"2018-09-06T16:32:30.214Z"}
{"context":{"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":20,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getOutput(): compiling using language service","sequence":29,"time":"2018-09-06T16:32:30.214Z"}
{"context":{"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":20,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"updateMemoryCache()","sequence":30,"time":"2018-09-06T16:32:30.214Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/setupEnzyme.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":31,"time":"2018-09-06T16:32:30.215Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/types.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":32,"time":"2018-09-06T16:32:30.216Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":33,"time":"2018-09-06T16:32:30.216Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":34,"time":"2018-09-06T16:32:30.217Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":35,"time":"2018-09-06T16:32:30.217Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":36,"time":"2018-09-06T16:32:30.217Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":37,"time":"2018-09-06T16:32:30.228Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":38,"time":"2018-09-06T16:32:30.233Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":39,"time":"2018-09-06T16:32:30.235Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":40,"time":"2018-09-06T16:32:30.238Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/enzyme/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":41,"time":"2018-09-06T16:32:30.240Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":42,"time":"2018-09-06T16:32:30.264Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/cheerio/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":43,"time":"2018-09-06T16:32:30.266Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":44,"time":"2018-09-06T16:32:30.272Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":45,"time":"2018-09-06T16:32:30.274Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/react/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":46,"time":"2018-09-06T16:32:30.276Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/react/global.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":47,"time":"2018-09-06T16:32:30.320Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":48,"time":"2018-09-06T16:32:30.324Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":49,"time":"2018-09-06T16:32:30.326Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":50,"time":"2018-09-06T16:32:30.328Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/csstype/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":51,"time":"2018-09-06T16:32:30.330Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/prop-types/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":52,"time":"2018-09-06T16:32:30.441Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/enzyme-adapter-react-16/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":53,"time":"2018-09-06T16:32:30.444Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":54,"time":"2018-09-06T16:32:30.448Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":55,"time":"2018-09-06T16:32:30.449Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":56,"time":"2018-09-06T16:32:30.451Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":57,"time":"2018-09-06T16:32:30.453Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":58,"time":"2018-09-06T16:32:30.456Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":59,"time":"2018-09-06T16:32:30.457Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":60,"time":"2018-09-06T16:32:30.458Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":61,"time":"2018-09-06T16:32:30.458Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":62,"time":"2018-09-06T16:32:30.459Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":63,"time":"2018-09-06T16:32:30.460Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":64,"time":"2018-09-06T16:32:30.463Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":65,"time":"2018-09-06T16:32:30.463Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":66,"time":"2018-09-06T16:32:30.464Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":67,"time":"2018-09-06T16:32:30.466Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":68,"time":"2018-09-06T16:32:30.466Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":69,"time":"2018-09-06T16:32:30.467Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":70,"time":"2018-09-06T16:32:30.468Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":71,"time":"2018-09-06T16:32:30.469Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":72,"time":"2018-09-06T16:32:30.470Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":73,"time":"2018-09-06T16:32:30.472Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":74,"time":"2018-09-06T16:32:30.472Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":75,"time":"2018-09-06T16:32:30.474Z"}
{"context":{"call":null,"logLevel":10,"namespace":"ts:serviceHost","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"readFile","sequence":76,"time":"2018-09-06T16:32:30.475Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/enzyme-to-json/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":77,"time":"2018-09-06T16:32:30.476Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/jest/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":78,"time":"2018-09-06T16:32:30.477Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/node/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":79,"time":"2018-09-06T16:32:30.488Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/node/inspector.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":80,"time":"2018-09-06T16:32:30.575Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/@types/react-dom/index.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":81,"time":"2018-09-06T16:32:30.594Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/typescript/lib/lib.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":82,"time":"2018-09-06T16:32:30.595Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/typescript/lib/lib.es5.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":83,"time":"2018-09-06T16:32:30.596Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/typescript/lib/lib.dom.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":84,"time":"2018-09-06T16:32:30.633Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":85,"time":"2018-09-06T16:32:30.703Z"}
{"context":{"cacheHit":false,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/node_modules/typescript/lib/lib.scripthost.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache miss","sequence":86,"time":"2018-09-06T16:32:30.704Z"}
{"context":{"call":null,"logLevel":20,"namespace":"ts-hoisting","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"visitSourceFileNode(): hoisting","sequence":87,"time":"2018-09-06T16:32:31.040Z"}
{"context":{"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":20,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getOutput(): computing diagnostics","sequence":88,"time":"2018-09-06T16:32:31.061Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/setupEnzyme.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":89,"time":"2018-09-06T16:32:31.061Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/types.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":90,"time":"2018-09-06T16:32:31.061Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":91,"time":"2018-09-06T16:32:31.061Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":92,"time":"2018-09-06T16:32:31.061Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":93,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":94,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/setupEnzyme.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":95,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/types.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":96,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":97,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":98,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":99,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":100,"time":"2018-09-06T16:32:31.062Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/setupEnzyme.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":101,"time":"2018-09-06T16:32:31.063Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/types.d.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":102,"time":"2018-09-06T16:32:31.063Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/__tests__/iindex.test.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":103,"time":"2018-09-06T16:32:31.063Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":104,"time":"2018-09-06T16:32:31.063Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/__tests__/iindex.test.ts","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":105,"time":"2018-09-06T16:32:31.063Z"}
{"context":{"cacheHit":true,"fileName":"/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-text/src/index.tsx","logLevel":10,"namespace":"ts-compiler","package":"ts-jest","transformerId":2,"version":"23.10.0-beta.3"},"message":"getScriptSnapshot(): cache hit","sequence":106,"time":"2018-09-06T16:32:31.063Z"}
{"context":{"diagnosticCodes":[6142],"diagnosticText":"\u001b[96mpackages/simple-button/__tests__/iindex.test.tsx\u001b[0m:\u001b[93m3\u001b[0m:\u001b[93m20\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS6142: \u001b[0mModule '../src/index' was resolved to '/Users/vadim_budarin/projects/ui-kit-bootstrap/packages/simple-button/src/index.tsx', but '--jsx' is not set.\n\n\u001b[30;47m3\u001b[0m import Button from '../src/index';\n\u001b[30;47m \u001b[0m \u001b[91m                   ~~~~~~~~~~~~~~\u001b[0m\n","logLevel":20,"namespace":"TSError","package":"ts-jest","version":"23.10.0-beta.3"},"message":"created new TSError","sequence":107,"time":"2018-09-06T16:32:31.064Z"}

Minimal repo :
https://github.com/budarin/ui-kit-bootstrap

Thanks a lot for reporting this. For beta it's advised to come over in slack to get some help ;-)

Oh, and there is a minimal repo, thanks a lot!

@budarin actually I'd love if you could come over in Slack to help me setup correctly your repo... I've not used lerna much more than once some months ago :-D

Fixed in 3910f2c

@joe-bell Are you able to share anything more about how your repo is set up? Would love to see jest.config.base.js and packages.tsconfig.json

Sure, these are the two Jest configs in the root
// jest.config.base.js
module.exports = {
  rootDir: '../../',
  preset: 'ts-jest',
  testEnvironment: 'jsdom',
  snapshotSerializers: ['jest-emotion'],
  setupTestFrameworkScriptFile: './.config/jest/setup.ts',
};

// jest.config.js
const base = require('./jest.config.base.js');

module.exports = {
  ...base,
  projects: ['<rootDir>/packages/*/jest.config.js'],
  globals: {
    'ts-jest': {
      tsConfig: 'packages/tsconfig.json',
    },
  },
};

This is the packages/tsconfig.json
{
  "compilerOptions": {
    "strict": true,
    "composite": true,
    "declaration": true,
    "declarationMap": true,
    "sourceMap": true,
    "esModuleInterop": true,
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "moduleResolution": "node",
    "baseUrl": "../",
    // Alias our package names to the appropriate directory.
    // e.g. "@org-name/package-name" => "./packages/package-name/src"
    "paths": {
      "@org-name/package-name-*": ["./packages/*/src"]
    }
  }
}


RFM - Firefox Beta

https://chocolatey.org/packages/firefox-beta

@dimqua
Why not just copy and change the current Standard Firefox package and get it to update to Firefox Beta instead, and then submit the PR.
https://github.com/chocolatey/chocolatey-coreteampackages/tree/master/automatic/firefox

I am currently maintaining this package.


dApp: Illustrate and implement the dApp screens in the info overlay

User Story
As Chris I want to see illustrations as a compliment to the descriptions when I view any info overlay.
Acceptance criteria
All screens with an info overlay should have an illustration and all illustrations should be in the same style.
Tasks

[ ] Illustrations for:

Select Hub
Open Channel
Transfer
Transfer (steps)
Channels
Raiden Account
Withdrawal
UDC
Backup State

[ ] Add illustrations to dApp

@taleldayekh Illustrations are done and I will upload the svgs here shortly

Here are the SVGs @taleldayekh
LC Info illustrations.zip
Let me know if there are any problems


Relative path not working for log-file-path in config.json of forget-me tool

Description:
Relative path not working for log-file-path in config.json of forget-me tool
"log-file-path" : "../../../../logs"
Affected Product Version:
OS, DB, other environment details and versions:
macOs, jdk1.8
Steps to reproduce:

configure config.json providing the relative path to logs file location.
"log-file-path" : "../../../../logs"
run the forget-me.sh tool
temporary logs are not generated.

The relative path should be provided relative to <CARBON_HOME>.

Working when give the path relative to the ${CARBON_HOME}


Fix/idempotency

Coverage increased (+0.1%) to 81.053% when pulling 6d98c8beef8f213ff94f14cd0792267363984555 on isocolsky:fix/idempotence into f4c4f4a5d1bb77734234dea3520883f2cd7d0198 on bitpay:master.


Video Splide not added in dynamic mode

Checks

[X] Not a duplicate.
[X] Not a question, feature request, or anything other than a bug report directly related to Vue Splide. Use Discussions for these topics: https://github.com/Splidejs/splide/discussions

Version
0.7.1
Description
Direct adding video to Splide not works properly
<template>
  <Splide
    :options="options"
    :extensions="extensions"
    ref="refNewsListSplider">
  </Splide>
</template>

No video slide shown(only preview image) after trying to update slider section directly _this.$refs._BaseImageSlider.insertVideo('./img/newspost/inner-img/'+res.news_video); But this method based on change method which also works for adding images. Got instruction from https://splidejs.com/extensions/video/#overview
P.S. I add my content directly because using an AXIOS AJAX features. And it works if slide will be static added into template section. So problem with add() method only for video extension and I don't know why it happens.
P.S.S. Found that it works as in GUIDE. But I've not a lot of experience in VUE and not fully understand how I can update videos variable and update SpliteSlide after template will be loaded..
<template>

    <Splide ref="splide" :options="options" :extensions="extensions">
      <SplideSlide v-for="( id, index ) in videos" :key="id" :data-splide-html-video="id">

      </SplideSlide>
    </Splide>

    Загрузка изображений
    <input class="form-control" type="file" @change="onFileChange" id="formImageMultiple" multiple>

</template>

Tried to load dynamically for SplideSlide section and got same broken slide :\
<SplideSlide v-model="UpdateVideos" v-for="( id, index ) in UpdateVideos" :key="id" :data-splide-html-video="id">

</SplideSlide>

Reproduction Link
No response
Steps to Reproduce
Please look up!
Expected Behaviour
I thought it would work like such as with images :)

Now this works well in the latest versions (vue-splide and Video extension).

P.S.S. Found that it works as in GUIDE. But I've not a lot of experience in VUE and not fully understand how I can update videos variable and update SpliteSlide after template will be loaded..

Use the ref function to make the variable reactive.
https://vuejs.org/api/reactivity-core.html


Add azure OPENAI support

Thank you for creating such a helpful extension. I am using Microsoft Azure OpenAI, but I know only a few people will use Azure OpenAI, so I modified a little part to make it support Azure OpenAI. Since I am a novice to typescript, If you feel this implementation could be better, please reject the PR or let me know where I should improve.

Hi! @sykuang
Could you provide also how to use Azure's OpenAI in the README? That would be much more helpful. Thanks!

I have added some tips and screenshots to explain using Azure OpenAI. Feel free to let me know if you have any suggestions.

Closing it due now is already on review. Thank you for your contribution! @sykuang


cmd/vendor-install: extract portable-ruby download info

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

This is an attempt to address https://github.com/Homebrew/brew/issues/17400.

Thanks again @alebcay!


Faster implementation of torchvision.ops.boxes::masks_to_boxes

🚀 The feature
torchvision.ops.boxes::masks_to_boxes is used to convert a batch of binary 2D image masks to a set of bounding boxes. This proposal pertains to creating a faster and more general version of this function.
Motivation, pitch
The implementation of masks_to_boxes utilizes a for loop over the batch dimension to individually compute the bounding box for each mask, giving the function an $O(B)$ complexity and rendering it unsuitable for large batch sizes. Instead, we can recreate the function with intelligent usage of the in-build vectorized operations to achieve the same result at close to $O(1)$ complexity.
Some primitive performance benchmarking seems to validate this hypothesis.

The proposed version is also more general, as it can be extended to 3D masks easily.
Alternatives
N/A
Additional context
I've already implemented this feature and have a pull request ready. However, I wish to understand if the core contributors believe this is a worthwhile feature or not.
### Tasks

It is hard to asses without seeing the code, but unless you found a magic bullet, that should increase the memory requirement from O(1) to O(B), no? This becomes very relevant for larger batch sizes.
Feel free to send the PR especially when it is already done. But we need to benchmark it not only in terms of execution time to assess whether we want the change or not.

Thanks for opening the issue @atharvas . As @pmeier suggested, we'd be happy to look at a PR.
Did you find that masks_to_boxes was a bottleneck for you? Is it in the hot-path of operations?

Hello! Thanks for the input! I've submitted a PR here.
@NicolasHug: I'm using masks_to_boxes to crop an image based on the output of a mask prediction model as one step in my pipeline.  All this runs on a GPU. My code was scaling poorly to large batch sizes, and the torch profiler attributed the bottleneck to torchvision.ops.boxes:masks_to_boxes. This motivated the pull request.
@pmeier: I stated incorrectly in the issue that the time complexity is $O(1)$. Apologies. The time and space complexity are still $O(B)$ but with a much smaller constant as the operations are vectorized. I've added the memory and the time graph to the PR here to show how both methods scale. Overall, the vectorized version seems to be scale better than the naive version in both speed and storage.
Thanks for the suggestion and happy to iterate on this.


[DASH1-122] Format X-axis on EHR time-series charts

These charts are set up to display the data in quarterly buckets, but Plotly was trying to be helpful by setting the X-axis as a time scale.  This produced weird results on certain resolutions. This PR changes the X-axis to be bucketed as strings indicating the quarter instead.
[DASH1-122]

Closing this off, as the new roadmap calls for this to stop being time-series data anyway.


Helix-Machines failing during validation stage

We've had 4 attempts of the latest build failing during the validation stage. Needs some investigation
https://dnceng.visualstudio.com/internal/_build/results?buildId=2189313&view=logs&j=c28230df-fb5f-5043-f0fd-d0e3cc273ccc&t=770c329c-2412-586d-473d-3e68db1ef820&s=7310a744-b564-561a-cbe7-7fce3cab33a4

Release Note Category

[ ] Feature changes/additions
[ ] Bug fixes
[ ] Internal Infrastructure Improvements

Release Note Description

There's something fishy going on here. The first change where this failed is this base image update: https://dnceng.visualstudio.com/internal/_git/dotnet-helix-machines/commit/22512f29ff0c6b2e9a7204c58a2a83bdf7ef017c?refName=refs%2Fheads%2Fmain which resulted in build: https://dnceng.visualstudio.com/internal/_build/results?buildId=2189163&view=results. This build failed during vaildation of the data-disks artifact for a single queue.
The following build: https://dnceng.visualstudio.com/internal/_build/results?buildId=2189313&view=results did not result in any image changes, and all tests pass, however the validation script is failing with the following message:
Helix client version should be 20230526.03 and it is 20230526.1

Which means we are hitting this condition: https://dnceng.visualstudio.com/internal/_git/dotnet-helix-machines?path=/src/ValidateHelix/payload/validate.py&version=GBmain&line=95&lineEnd=96&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents
I'm currently:

Attempting a fresh main build in https://dnceng.visualstudio.com/internal/_build/results?buildId=2190928&view=results to see what happens here.
Trying to understand why we ended up with older scripts, or whether there's a bug in the validation.

the clean main build  https://dnceng.visualstudio.com/internal/_build/results?buildId=2190928&view=results succeeded on the first attempt. I think I finally understand what happened here.
Build 20230526.1 failed its image generation step, until it eventually passed on the 4th attempt on 2023-05-30 at 9AM PT and finished all post-image generation tasks afterwards.
However, at that time, build 20230526.3 had already finished generating the images and had only failed during validation for a flaky reason. This means that the version of the scripts that ended up in the staging images was 20230526.1, while build 20230526 was expecting a different version.
This is a very specific edge case that I don't think needs additional guarding against so I'm going to close this issue.


feat(vmsync): prune CVEs during sync

VULN4OS-157
Secure Coding Practices Checklist GitHub Link

https://github.com/RedHatInsights/secure-coding-checklist

Secure Coding Checklist

[x] Input Validation
[x] Output Encoding
[x] Authentication and Password Management
[x] Session Management
[x] Access Control
[x] Cryptographic Practices
[x] Error Handling and Logging
[x] Data Protection
[x] Communication Security
[x] System Configuration
[x] Database Security
[x] File Management
[x] Memory Management
[x] General Coding Practices

I think we should delete the cves from the DB only if the cve is not associated with any image. Because things could go wrong if vmaas returns lets say empty list of cves (that could force wipe our whole db)

Codecov Report
Base: 37.66% // Head: 37.48% // Decreases project coverage by -0.18% :warning:

Coverage data is based on head (1583dff) compared to base (f5c6754).
 Consider uploading reports for the commit 63039cb to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #123      +/-   ##
==========================================
- Coverage   37.66%   37.48%   -0.19%
==========================================
  Files          16       16
  Lines         815      819       +4
==========================================
  Hits          307      307
- Misses        480      483       +3
- Partials       28       29       +1

Flag
Coverage Δ

unittests
37.48% <ø> (-0.19%)
:arrow_down:

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

Impacted Files
Coverage Δ

digestwriter/storage.go
60.13% <0.00%> (-1.62%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

left another review in slack pm


feat: mechanism for re-saving charts

SUMMARY

There's currently a bug in Superset where (1) if a chart is saved with a granularity_sqla, and (2) the GENERIC_CHART_AXIS feature is enabled after the chart creation, then the chart will break. This happens for some charts. Stripping granularity_sqla is not an option, because some charts still need it even when GENERIC_CHART_AXIS is enabled.
@Vitor-Avila found a workaround where saving the chart again will fix it. So in this PR I'm adding a new column to charts called force_save. When the column is true, the chart will save itself when loaded (in explore or a dashboard), and the column will be set to false. This way, charts can be forced to save by setting this column to true, which could be done conditionally (for certain viz types, eg).
Note that while this is a hack, it's a pattern we've used before. For alerts and reports we had to introduce logic to re-save the chart in order to set query_context. See https://github.com/apache/superset/pull/15824, https://github.com/apache/superset/pull/15865, and https://github.com/apache/superset/pull/15846.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

Still in progress.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@betodealmeida
This issue might introduce from PR, basically, we don't need transformation in the backend, it should transform in the frontend.
The other hand, I think we should try to avoid hacks too much in Superset, hacks have too much for now!

Thank you for the PR @betodealmeida. We have been discussing this internally at Airbnb and it's clear that these problems happen because we are missing schema versioning and validation for these types of fields. We have many bugs that were reported because these schemas change every time we introduce a new feature, essentially creating a new version of it, but we don't correctly support/migrate old versions. The fact that many of these schema transformations are on the frontend is really problematic because we end up creating columns in the database to store those transformations so they can be used by Python code when processing API requests as you can see by https://github.com/apache/superset/pull/15824, https://github.com/apache/superset/pull/15865, and https://github.com/apache/superset/pull/15846. @john-bodley Here's the motivation for the params and query_context duplication that haunts us 😄
Another critical problem of that approach is that Superset assets can be consumed through APIs, without a frontend, and in that case, changes in feature flags don't reflect in the schemas returned by these APIs. We have 20 feature flags that will be removed in 4.0 (including GENERIC_CHART_AXES) which will ease the problem but we still need to discuss schema versioning for these types of fields.
I understand the motivation for this PR but before we go down this road, is it possible to fix the issue using other means? Can you explain what breaks (video, stacktrace) and which chart types are affected?

The other hand, I think we should try to avoid hacks too much in Superset, hacks have too much for now!

I totally agree, but keep in mind that there are hacks and hacks. This PR is a hack in a sense that "we shouldn't have to do this", not in the sense of "this is really brittle and risky". As is, this PR does nothing, and the only thing it does is re-save the chart when the admin sets the column to true.

Thank you for the PR @betodealmeida. We have been discussing this internally at Airbnb and it's clear that these problems happen because we are missing schema versioning and validation for these types of fields. We have many bugs that were reported because these schemas change every time we introduce a new feature, essentially creating a new version of it, but we don't correctly support/migrate old versions. The fact that many of these schema transformations are on the frontend is really problematic because we end up creating columns in the database to store those transformations so they can be used by Python code when processing API requests as you can see by #15824, #15865, and #15846. @john-bodley Here's the motivation for the params and query_context duplication that haunts us 😄

I totally agree, we need versioning, better separation of concerns between backend/frontend and query/presentation, as well as a simpler canonical data model for charts (which would also make it easier to develop new charts).

Another critical problem of that approach is that Superset assets can be consumed through APIs, without a frontend, and in that case, changes in feature flags don't reflect in the schemas returned by these APIs. We have 20 feature flags that will be removed in 4.0 (including GENERIC_CHART_AXES) which will ease the problem but we still need to discuss schema versioning for these types of fields.

I agree here too, I've mentioned and been wanting to write a SIP proposing us to adopt blueprints, not only so it's easier to have multiple versions of an API at the same time, but we could even have blueprints for feature flags as well.

I understand the motivation for this PR but before we go down this road, is it possible to fix the issue using other means? Can you explain what breaks (video, stacktrace) and which chart types are affected?

You and @geido probably know this better than me, but my understanding of the problem is that some legacy charts still require granularity_sqla to be present when GENERIC_CHART_AXES is present; other visualizations don't. We don't know which charts are in which group, @geido suggested trying to figure out programmatically but wasn't able to do that.
From the errors I saw, there's no stacktrace, just a subtle silent error where the chart query is generated incorrectly. To the user, apparently no error happens, but the data presented might be fundamentally wrong.
And to be clear, I don't think this is a road, I'm not proposing a new way of doing things. This is just a workaround allowing admins to fix some (or all) charts. This PR is a no-op unless the admin sets the flag to true in one or more charts. I don't think we should need this — which is why I called it a hack — and I hope we never need it again in the future.

I think in the long run we should really consider implementing a simple Node service that can render query context on the fly from form data (we could place this logic fairly easily in the websocket server). This would remove the need for persisting query context, which we can't update without resaving the chart if the buildQuery logic changes.

I think in the long run we should really consider implementing a simple Node service that can render query context on the fly from form data (we could place this logic fairly easily in the websocket server). This would remove the need for persisting query context, which we can't update without resaving the chart if the buildQuery logic changes.

I don't know if it's possible, but what I'd like instead is a simpler contract between visualizations and the backend, so that this isn't even needed.

Thank you for the additional context @betodealmeida.

I'm still running tests to see which charts are affected and if this PR can fix them.

Got it. Let me know the results.

I don't know if it's possible, but what I'd like instead is a simpler contract between visualizations and the backend, so that this isn't even needed.

Me too.

I think in the long run we should really consider implementing a simple Node service that can render query context on the fly from form data (we could place this logic fairly easily in the websocket server). This would remove the need for persisting query context, which we can't update without resaving the chart if the buildQuery logic changes.

I don't know if it's possible, but what I'd like instead is a simpler contract between visualizations and the backend, so that this isn't even needed.

@betodealmeida @michael-s-molina while there's definitely a lot of standardization that can be done, I think this will be very difficult to achieve. For example, the table chart triggers different queries if the pagination control is checked. Just looking at existing buildQueryContext hooks in the existing plugins shows that constructing chart data requests is non-trivial, and often very viz-specific. Therefore, moving this logic to the backend would be very difficult, as it would essentially require moving business logic into the backend. This was one of the main bottlenecks of viz.py, and one of the motivations for SIP-6: #5692. But if we can indeed figure out a backend architecture that can facilitate arbitrary viz plugin logic without custom buildQueryContext hooks, this would indeed be a great simplification

But if we can indeed figure out a backend architecture that can facilitate arbitrary viz plugin logic without custom buildQueryContext hooks, this would indeed be a great simplification

@villebro As always, I think there's a middle ground between visualization-specific code and business logic that needs to be supported by our APIs. I think this work is highly correlated with the new plugin architecture we were thinking about.

I think this work is highly correlated with the new plugin architecture we were thinking about.

Can you share more about this? Can we have a bigger discussion?

Also, @Vitor-Avila raised a good point: this won't work if the user viewing chart doesn't have permission to overwrite the chart, so they might be looking at incorrect data until an admin opens the chart. I'm going to work on a different approach.

Can you share more about this? Can we have a bigger discussion?

Sure. We can write a SIP or discussion thread about it after 3.0.

@betodealmeida @michael-s-molina while there's definitely a lot of standardization that can be done, I think this will be very difficult to achieve. For example, the table chart triggers different queries if the pagination control is checked. Just looking at existing buildQueryContext hooks in the existing plugins shows that constructing chart data requests is non-trivial, and often very viz-specific. Therefore, moving this logic to the backend would be very difficult, as it would essentially require moving business logic into the backend. This was one of the main bottlenecks of viz.py, and one of the motivations for SIP-6: #5692. But if we can indeed figure out a backend architecture that can facilitate arbitrary viz plugin logic without custom buildQueryContext hooks, this would indeed be a great simplification

I definitely don't want to go back to the times of viz.py. Having the logic live only in JS makes it much easier to build and distribute visualization plugins, even if it introduces complexity (like sending an HTML report of a pivot table, where a lot of the transformations happen in JS).
But I think we can generalize the request. At the end of the day we need the following in order to get data (I might be forgetting something):

metrics (adhoc or already defined)
dimensions
filters (WHERE and HAVING)
limit, offset, ordering
post processing operations

And then each viz type has its own controls for presentation. Also, each viz should have a standard method for data transformation, something like export function processRows(rows: Row[]): Row[] {}, so that it can be called from outside the plugin (for alerts and reports, eg).

Sure. We can write a SIP or discussion thread about it after 3.0.

I think a discussion or even a meetup might be better. I have a lot of ideas and I know other people also have them, it would be nice to brainstorm before we have a proposal.

@betodealmeida this would be great, I'd love to participate 👍

Maybe when @michael-s-molina is in town we could do a committer meetup and discuss this and other similar topics? I'd love to talk about Flask blueprints and my vision for them. :)

Maybe when @michael-s-molina is in town we could do a committer meetup and discuss this and other similar topics? I'd love to talk about Flask blueprints and my vision for them. :)

I would love that!


[Doc] Update troubleshoot parallel config enable/disable with setting config

All checks have passed 🎉 @TomasVotruba it is ready for review.

I updated config to recommend use RectorConfigBuilder https://github.com/rectorphp/getrector-com/pull/2124/commits/98d78c88f4df139add983d7f7c83010acc349915

@TomasVotruba I am merging it ;)

LGTM :+1:


Add images: Android Basics with Compose

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-compose-add-images?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-1-pathway-3%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-add-images#1
In which task and step of the codelab can this issue be found?
Describe the problem
course states: "folder called drawable-nodpi"
however, the folder appears to be named: "drawable" with no "-nodpi"
Steps to reproduce?

Go to...2. Set up your app
Click on...
See error...

Versions
Android Studio version:
API version of the emulator:
Additional information
Include screenshots if they would be useful in clarifying the problem.

Hi @gitwazza
Thank you for writing in with your concern.
Android Studio might display it as "drawable" depending on your view but the "computer file system" has a " ... folder called drawable-nodpi".
Hope that helps to clarify it.
Regards.


HDDS-4581. Cleanup usage of volumeArgs in KeyRequests.

What changes were proposed in this pull request?
Cleanup usage of VolumeArgs in Request/Response classes in Key requests.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4581
How was this patch tested?
Existing tests.

Thank You @linyiqun for the review, addressed review comments in the latest update.

@bharatviswa504 , would you mind checking if the failed unit related to this PR? If not, I am +1 for this PR.


Support third party integrations with Fides consent script-Shopify

Spun out from https://github.com/ethyca/fides/issues/1422

Write up with test shopify test page: Shopify + fides-consent.js


how to prepare the dataset

Hello.
It is unclear how to prepare the dataset in this project. And in the dataset config (such as configs/base/datasets/kitti-3d-car.py), you use your own local directory.
I also refer to the README of mmdet3D, but I am still confused about how to prepare the dataset in this project.
Would you like to provide some instructions?

you should prepare dataset following mmdetection3d


formatting fix to allow eslint to pass for unit tests

Current connect code fails to run tests because eslint fails - this makes the syntax compatible with the eslint rules.

The version of the code being replaced in this PR was created by JS Standard's own formatter, and so far I don't see eslint failing locally with the current version of the code.
cc @christiansmith, try running eslint on the existing codebase?

Definitely was failing here - error was as follows:
msamblanet@MIKEMBP-WIN7 /c/oidc/connect (master)$ npm test

><EMAIL_ADDRESS>test c:\oidc\connect
> eslint --ignore-path .gitignore . && echo Code looks good! && mocha test/unit

c:\oidc\connect\oidc\sendVerificationEmail.js
  37:7  error  Missing whitespace after semicolon  semi-spacing

? 1 problem (1 error, 0 warnings)

npm ERR! Test failed.  See above for more details.

Interesting. We just looked through this and ran all the tests/linting on our systems and we're not getting this error.  There were some changes to the linting setup.

Very weird - I pulled and installed just before running this.  Just verified I do not have eslint installed globally either.
msamblanet@MIKEMBP-WIN7 /c/oidc/connect (master)$ which eslint
msamblanet@MIKEMBP-WIN7 /c/oidc/connect (master)$ npm list -g  eslint
c:\Users\msamblanet\.local
└── (empty)

npm ERR! code 1
msamblanet@MIKEMBP-WIN7 /c/oidc/connect (master)$ npm list eslint
<EMAIL_ADDRESS>c:\oidc\connect
└──<EMAIL_ADDRESS>

Is there an .eslintrc in C:\oidc\connect which extends standard?

Yep - /c/oidc/connect/.eslintrc has this (from the checkout):
{
  "extends": "standard"
}

I'll try running the linter on my Windows installation and see if I can replicate this error.

oops - I did not mean to close this - hit the wrong issue - sorry...can you guys reopen it?  I do not seem to be allowed to.

I can't reopen it either:

msamblanet:master was force-pushed and no longer has any new commits.
Pushing new commits will allow the pull request to be re-opened.


Source control panel empty after using it to commit

VSCode Version: Version: 1.47.1 (user setup)
Commit: 485c41f9460bdb830c4da12c102daff275415b53
Date: 2020-07-13T22:42:53.386Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363
OS Version:

Steps to Reproduce:

Open Code
Make changes, do a commit, and change to search or some other app in the side bar whilst it commits
go back to the source control app - the panel is empty

Does this issue occur when all extensions are disabled?: Yes/No

Maybe a dup of #102358 which is fixed in upcoming 1.47.2 and already present in Insiders. Are you able to test your case with Insiders?

so quick :), I should be able to -

Yes it is, Thankyou!


Remove memory limits in production

Thank you for helping make the Dapr documentation better!
Please follow this checklist before submitting:

[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[x] Read the contribution guide
[x] Commands include options for Linux, MacOS, and Windows within codetabs
[x] New file and folder names are globally unique
[x] Page references use shortcodes instead of markdown or URL links
[x] Images use HTML style and have alternative text
[x] Places where multiple code/command options are given have codetabs

In addition, please fill out the following to help reviewers understand this pull request:
Description
In Dapr 1.12+ the memory usage for the Sentry service in many production deployments of Dapr is often higher than the limits here. We should remove the memory limits entirely to avoid users hitting OOMKilled pod status errors.
Issue reference

@msfussell cc: @JoshVanL


MGMT-17597: Rescheduling IBIO after install begins invalidates kubeconfig and certs

MGMT-17597: Rescheduling IBIO after install begins invalidates kubeconfig and certs
Saving crypto keys in secret and reading them from it in case kubeconfig url is valid

/lgtm
/approve


Does not support Chinese anchor well in Safari

demo: http://output.jsbin.com/foziyafiti
In my macOS Safari 10.0.1, it doesn't scroll smoothly.
I find that document.querySelector('#中文2') is OK but document.querySelector('a[href="#中文2"]').hash returns "#%E4%B8%AD%E6%96%872"，and document.querySelector(document.querySelector('a[href="#中文2"]').hash) makes an error. Maybe something hacks needed in Safari I guess.
Thanks.

How strange! Thanks for the demo link - that will be really helpful for debugging. I'll try to get this fixed soon.

With cyrillic anchors doesn't work too
Example: https://ru.vuejs.org/v2/guide/

Seems to be relevant for any non-ASCII characters. Reproduced in FF, not reproduced in Chrome (both Mac OS X).

Some additional clarity here. Chrome outputs the hash (and href) of non-ASCII characters as their actual characters, while Firefox and Safari (unsure about IE and Edge) render an encoded version.

Real Characters: #中文
Encoded: #%E4%B8%AD%E6%96%87

It looks like this can be fixed by running the characters through decodeURIComponent(). See this fiddle for an example (check the console logs).
This issue affects any script using hash or href with non-ASCII characters, unfortunately. This strikes me as a browser bug, and should likely be reported to the browser vendors. Unless Chrome is deviating from the "correct" behavior on this one.
Thoughts there?
I'll try to push a fix for this soon, but in the name of transparency, I have a few other priorities that will take precedence over this.

Awesome research, Chris! I guess we all agree on all of you've mentioned above. So, please just let us know when there will be the new fixed version available. It's important, but not too important, however, so please keep your priorities.

Fixed: https://github.com/cferdinandi/smooth-scroll/pull/307
Working demo: https://jsfiddle.net/cferdinandi/w190zrax/


iOS freezes when calling getPictures

Tested on an iPad with iOS 13.2.3.
When calling getPictures the plugin shows the permission modal and then freezes on tapping on allow. Any additional tries after giving permission result in same app freezing.
I'm using plugin version 2.3.3

Hi,
I am also facing the same issue while using iPas with iOS 13.2.3.
By using this plugin, when I am trying to accessing my iPad gallery and then complete app freezing.

Also, I am going to share my findings:

While creating iOS build using Xcode 10.1 and install IPA using test flight on the same iPad ( OS version 13.2.3 ), getPictures function working fine and able to open gallery.
While creating iOS build using Xcode 11.2.1 and install IPA using test flight on the same iPad ( OS version 13.2.3 ), getPictures function not working fine and not able to open gallery.

Maybe this will help you guys to resolve this issue.

+1

@cerealexx @Sharad2390 - For the time being we are looking at this. You can pass disable_popover => true and you will be able to access things in a different way.
Thanks for your patience.

This worked for me.
But the buttons on the top are not translated properly.
I mean it shows "picker.navigation.cancel-button" on the left
and on the right "picker.navigation.done-button"
Besides that it works

@deliverymanager - Kindly share system information here So we can dig into it?

Worked for me too. Thanks!

Here is my system info:

Thanks for your reply.
I have put disable_popover: true in options at getPictures function. Now, it is working fine for me.

Here is my system info:

@deliverymanager - Which language you are using in your device as default ?

Greek or "el" as a language code.

Greek or "el" as a language code.
@deliverymanager - We have not supported Greek that's the reason you are getting this. It works fine for English.

How can I help to make the translations for Greek language?
Could you please send me the language file with the english phrases?
Ot just some important phrases, so that I can translate them?

The workaround with disable_popover works on iPad, but not iPhone.
Getting this exception

Actually it only crashes on iOS 13.2.3 (iPhone Xr) but works fine on an older iOS 13.1.x (iPhone 7)

Getting the same error. The suggested fix with disable_popover works, tested on iPad only.

Actually it only crashes on iOS 13.2.3 (iPhone Xr) but works fine on an older iOS 13.1.x (iPhone 7)

Seems it's hardware related, works on iOS 13.3 on iPhone 7.
On Xr it only works the first time after I install it. Second time it crashes.

Looks like the root cause of the issue is that starting from iOS 13 you have to specify UIPopoverPresentationController.sourceRect which is commented out in the source code now. I just set it to appear like this popPC.sourceRect = CGRectMake(0, 0, 0, 0); (top left corner) and it started to work even if disable_popover is false.

Thank you andreyqin.  This is the solution that worked for me!

Is there a branch or PR with that fix? I'm a noob in Objective C unfortunately...
This line?

@benjamineberle yes, correct. The only disadvantage of this solution is that your popover will appear at the top left corner of the screen which may be confusing for users. Unfortunately, I wasn't been able to find a way to center it, some found solutions worked in a completely different way, not as they supposed to be working.


Please add a screen shot

I'd like to add this to awesome-zsh-plugins, but I prefer to add themes with screen shots in the readme so that users can see what they look like without having to install them.
Thanks!

Hi @unixorn, added an ss in readme, thanks!


Allow finer control over how GridLayer chooses which tiles to load and retain

When panning around in a map with a GridLayer, tiles are only created once their rect enters the map's visible bounds. This means that as you pan around, you see tiles pop in constantly.
I'd like to have the ability to load additional tiles outside the view (for example, within a 200px margin) so that tiles are loaded before they enter the visible rect.
Possible fixes:

Instead of calling this._map.getBounds() to determine the working set of tiles, write a simple wrapper this._getBounds() that can be overridden
Take a preloadMargin argument (or something). Might be hard to document.

If @mourner has a preferred implementation, I'd be happy to submit a PR to implement this feature.  GridLayer has solved a lot of my problems and it would be cool to have it solve even more. :heart:

Ping for guidance

Possibly a duplicate of #512

Yeah, this is more a request for a plugin hook than an actual implementation of #512. Hence the wording of the title. I'd like to be able to plug in some kind of function that takes the current map bounds and returns a list of tiles to keep loaded.
@mourner said it could be implemented as a plugin, but from my experience with GridLayer's internals, I don't think it's very practical.

Yeah, I think we should make this easier in GridLayer for plugins. We'll be able to do that once we're done with events refactorings.

I think we're good for now after #3551


docker-compose.yaml: only listen on localhost

Description
Our docker-compose setup shouldn't open up ports for LAN access.
Type of change

[x] :bug: Bug fix (Add Fix #(issue) to your PR)

How Has This Been Tested?
docker-compose up and verify access on localhost.
Checklist:
N/A

I think this already changed with the mutliple workers PR

Agreed!


How to know when transition animation has ended

Version
Tell us which versions you are using:

react-native-router-flux v3.30.1
react-native v0.28.0

Everything is in the title : is it possible to know when the transition animation has ended in order to start calculating stuff after it for better UX ? (I'm having trouble using InterractionManager.runAfterInterractions, it is simply not working on Android)
Tx

I'd definitely be interested in this as well. I've noticed major performance bottlenecks when data is trying to be rendered onto a scene that is still transitioning in. I have manual delays in my componentDidMount on the component that is being transitioned in so it will wait until the transition has finished to guarantee a smooth transition. Having a callback that can be passed into on a per Scene basis would be ideal:
var enterCallback = () => {

}

<Scene onEnterComplete={enterCallback}  component={DetailPage} />

or have it call a method on the component directly if that method exists - similar to how React and Ionic call their methods (componentDidMount, ionViewEnter):
class DetailPage extends Component {
  onEnterComplete() {
    // Scene entered successfully. Now fire off async calls
  }
}

<Scene component={DetailPage} />

Try using the interactions manager
https://github.com/facebook/react-native/issues/2248

As I said in my first message it's not working on Android, at least in 0.28, I'll try with a more recent version when I'm back from holidays. Anyway, when I wrap anything inside a runAfterInterractions the code is just never triggered. If you follow the link in the page you posted you'll see in the issues that someone is having the same pb with runAfterInterractions. After googling it I found someone who said it does not work in dev mode but works in release... well I don't really want to have to comment out every runAfterInterractions when I dev so I haven't tried it.

@vonovak Interactions manager worked perfectly as a solution for me on iOS. But to @badaz 's point, I haven't tested on Android.

Maybe it comes from my code but I doubt it since my code works without it, I'll try in the boilerplate project when I'm back from holydays

componentDidMount() {
  InteractionManager.runAfterInteractions(() => {
    this.setState({ ready: true })
  })
}

@badaz closing issue?

Thanks for the tip, I only recently realized that runAfterInterractions did work but that it took a very long time before it actually ran the code after each react-native-router-flux transition, although nothing seems to be animating in the mean time.  I have not investigated yet but I don't really play with animations in the rest of my code so I suspect react-native-router-flux to be doing some invisible animation stuff. However this is not the initial point of this issue, so yes, you can close it ! Thanks again

I had the same experience @badasve
I wanted to delay loading my camera component(react-native-camera) on Android.
The switch to the tab was much smoother, but in total I would say it took at least 50% longer to get the camera up and running, so something is a bit off unfortunately... I would also guess it has to do with react-native-router-flux since I'm not working with any animation in my camera component.

@carleryd I found a not so elegant solution since then: now I'm using nextFrame https://github.com/corbt/next-frame which force renders a frame whenever you call it, so you can call it in loops that do heavy computing so as to not blocking the UI. Problem is it is async and ugly if you do not use the async/await syntax so you have to rework your code in order to use it, and I don't really like having all those "await nextFrame()" bits in my code, but it is working for me so far.


how this model can be used for 2D images?

i hae a data set of 2d images and i would like to segment it by using GAN , what should i change to make it work on 2d

You must make changes to the data processing section and AI model codes.


Read Istio Tutorial, Likely Setup Ktor Starter with Plumbing

https://istio.io/latest/docs/examples/microservices-istio/

Also read https://aws.amazon.com/blogs/opensource/getting-started-with-istio-on-amazon-eks/


Hacktoberfest: Updated Index with Learning resources for Cyber Security career.

As a part of Hacktober event, can you please label this PR as hacktoberfest.

Hey @Darkace01
Can you please label the pull request as hactoberfest.
Regards,
InTruder

In case you need help related to labels,
https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels
This will help me and you to participate in Hacktober Fest.

Sorry to disturb you again please add the Hacktober fest topic to your this repo, to have a valid submission on hacktoberfest.


Slow frame

Why is that the frame is too slow. It is lagging. How do I optimize it

Face detection on dlib and age/gender estimation on CNN are the most time-consuming.
You can resize the input frame into smaller size to accelerate face detection, and use more lightweight CNN to accelerate age/gender estimation.
Please use --depth and --width options in train.py to control the size of CNN.
The result of line_profiler:
Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    16                                           @profile
    17                                           def main():
    18                                               # for face detection
    19         1<PHONE_NUMBER>41.0      1.5      detector = dlib.get_frontal_face_detector()
    20
    21                                               # load model and weights
    22         1            5      5.0      0.0      img_size = 64
    23         1      3599541 3599541.0     18.7      model = WideResNet(img_size, depth=16, k=8)()
    24         1      2809484 2809484.0     14.6      model.load_weights(os.path.join("pretrained_models", "weights.18-4.06.hdf5"))
    25
    26                                               # capture video
    27         1<PHONE_NUMBER>99.0      3.9      cap = cv2.VideoCapture(0)
    28         1          322    322.0      0.0      cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
    29         1        35069  35069.0      0.2      cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
    30
    31         1            4      4.0      0.0      while True:
    32                                                   # get video frame
    33        21       370552  17645.3      1.9          ret, img = cap.read()
    34
    35        21          112      5.3      0.0          if not ret:
    36                                                       print("error: failed to capture image")
    37                                                       return -1
    38
    39        21         4649    221.4      0.0          input_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    40        21          294     14.0      0.0          img_h, img_w, _ = np.shape(input_img)
    41
    42                                                   # detect faces using dlib detector
    43        21      4994374 237827.3     26.0          detected = detector(input_img, 1)
    44        21          447     21.3      0.0          faces = np.empty((len(detected), img_size, img_size, 3))
    45
    46        42         1482     35.3      0.0          for i, d in enumerate(detected):
    47        21          138      6.6      0.0              x1, y1, x2, y2, w, h = d.left(), d.top(), d.right() + 1, d.bottom() + 1, d.width(), d.height()
    48        21          143      6.8      0.0              xw1 = max(int(x1 - 0.4 * w), 0)
    49        21           44      2.1      0.0              yw1 = max(int(y1 - 0.4 * h), 0)
    50        21           59      2.8      0.0              xw2 = min(int(x2 + 0.4 * w), img_w - 1)
    51        21           49      2.3      0.0              yw2 = min(int(y2 + 0.4 * h), img_h - 1)
    52        21         3669    174.7      0.0              cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)
    53                                                       # cv2.rectangle(img, (xw1, yw1), (xw2, yw2), (255, 0, 0), 2)
    54        21         3102    147.7      0.0              faces[i,:,:,:] = cv2.resize(img[yw1:yw2 + 1, xw1:xw2 + 1, :], (img_size, img_size))
    55
    56        21           64      3.0      0.0          if len(detected) > 0:
    57                                                       # predict ages and genders of the detected faces
    58        21      5350109 254767.1     27.9              results = model.predict(faces)
    59        21           75      3.6      0.0              predicted_genders = results[0]
    60        21          263     12.5      0.0              ages = np.arange(0, 101).reshape(101, 1)
    61        21          715     34.0      0.0              predicted_ages = results[1].dot(ages).flatten()
    62
    63                                                   # draw results
    64        42          940     22.4      0.0          for i, d in enumerate(detected):
    65        21          132      6.3      0.0              label = "{}, {}".format(int(predicted_ages[i]),
    66        21          438     20.9      0.0                                      "F" if predicted_genders[i][0] > 0.5 else "M")
    67        21         1897     90.3      0.0              draw_label(img, (d.left(), d.top()), label)
    68
    69        21       138714   6605.4      0.7          cv2.imshow("result", img)
    70        21       837285  39870.7      4.4          key = cv2.waitKey(30)
    71
    72        21          191      9.1      0.0          if key == 27:
    73         1            2      2.0      0.0              break

Thank you. Since it is running on top of 4gb cpu, how much width and depth will you suggest?

I tried   python train.py --input data/imdb_db.mat --depth 8 --width 4 but i got the following error

File "train.py", line 94, in
main()
File "train.py", line 61, in main
model = WideResNet(image_size, depth=depth, k=k)()
File "/Users/stanlyhardy/Downloads/age-gender-estimation-master/wide_resnet.py", line 110, in call
assert ((self._depth - 4) % 6 == 0)
AssertionError

As mentioned in the error messages, (depth - 4) % 6 == 0 should be satisfied.
Thus possible minimum depth is 10.
I think that depth = 10 and width = 4 is reasonable choice, expecting half computational cost.
If this does not satisfy your requirement, the other way is to use other lightweight CNNs as base network like SqueezeNet or MobileNet.

If we run it on worker thread, will it make frame smooth?
predict is already multi-threaded, so I'm afraid that the above solution has a little impact.

May I know where I can get SqueezeNet / MobileNet? and Training with SqueezeNet /MobileNet is same as that of the current one?

I use cpu. can you please train the model with depth 10 and width 4 and share with me the model.It will be a great help for me to learn by experimenting.

How do I combine files hdf5 files after training?