VSCode not picking up all Environmental variables when launched

Moved from omnisharp to here
https://github.com/OmniSharp/omnisharp-vscode/issues/1305

I see you are using zsh. Me too, it should work.
First, give the Insiders release a try.
Then, make sure you get the right env, if you launch code from a terminal: code.
Then, in an instance of Code in which the env is not populated, open the Developer Tools (F1, Developer Tools) and run process.env to check the env of that window. Also, run the following code in the Dev Tools console:
(() => {
const electron = require('electron').remote.process.execPath;
const cp = require('child_process');
const mark = 'MARK123';
const env = Object.assign({}, process.env, {
    ELECTRON_RUN_AS_NODE: '1',
    ELECTRON_NO_ATTACH_CONSOLE: '1'
});
const command = `'${electron}' -p '"${mark}" + JSON.stringify(process.env) + "${mark}"'`;
const result = cp.spawnSync(process.env.SHELL, ['-ilc', command], {
    detached: true,
    stdio: ['ignore', 'pipe', process.stderr],
    env,
    encoding: 'utf8'
});
console.log(result.stdout);
})();

What comes back?

MARK123{"TERM_PROGRAM":"iTerm.app","joe":"suckspoo","TERM":"xterm-256color","SHELL":"/bin/zsh","TMPDIR":"/var/folders/24/jv0sdf_x1mn7gkqkf5104_7w0000gn/T/","Apple_PubSub_Socket_Render":"/private/tmp/com.apple.launchd.Di6YLp11qY/Render","TERM_PROGRAM_VERSION":"3.0.14","jon":"rocks","PERL_MB_OPT":"--install_base \"/Users/jonathan/perl5\"","TERM_SESSION_ID":"w0t1p1:531C7730-09C4-407C-9E91-437710D7F739","ZSH":"/Users/jonathan/.oh-my-zsh","USER":"jonathan","SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.6QXwlmci8m/Listeners","__CF_USER_TEXT_ENCODING":"0x1F5:0x0:0x2","PAGER":"less","LSCOLORS":"Gxfxcxdxbxegedabagacad","PATH":"/Users/jonathan/.swiftenv/shims:/usr/local/bin:/usr/local/share/dotnet/:/Users/jonathan/.svm/bin:/Users/jonathan/.svm/shims:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:/Users/jonathan/.svm/shims:/Applications/VMware\\ Fusion.app/Contents/Library:/Applications/Postgres.app/Contents/Versions/latest/bin:/Users/jonathan/Projects/Go:/Users/jonathan/Projects/Go/bin","PWD":"/Users/jonathan/Projects/vq","LANG":"en_GB.UTF-8","ITERM_PROFILE":"Copy of Default","XPC_FLAGS":"0x0","XPC_SERVICE_NAME":"0","SHLVL":"2","HOME":"/Users/jonathan","COLORFGBG":"15;0","ITERM_SESSION_ID":"w0t1p1:531C7730-09C4-407C-9E91-437710D7F739","LESS":"-R","LOGNAME":"jonathan","LC_CTYPE":"en_GB.UTF-8","GOPATH":"/Users/jonathan/Projects/Go","PERL_MM_OPT":"INSTALL_BASE=/Users/jonathan/perl5","_":"/Applications/Visual Studio Code.app/Contents/MacOS/Electron","VSCODE_CLI":"1","ELECTRON_NO_ATTACH_CONSOLE":"1","GOOGLE_API_KEY":"AIzaSyAQfxPJiounkhOjODEO5ZieffeBv6yft2Q","VSCODE_NODE_CACHED_DATA_DIR_88658":"/Users/jonathan/Library/Application Support/Code/CachedData","VSCODE_NLS_CONFIG":"{\"locale\":\"en-gb\",\"availableLanguages\":{}}","VSCODE_PID":"88658","VSCODE_IPC_HOOK":"/Users/jonathan/Library/Application Support/Code/1.10.2-main.sock","VSCODE_SHARED_IPC_HOOK":"/Users/jonathan/Library/Application Support/Code/1.10.2-shared.sock","ELECTRON_RUN_AS_NODE":"1","OLDPWD":"/Users/jonathan/Projects/vq","DYLD_LIBRARY_PATH":"/usr/local/lib/"}MARK123

Interesting in that that DYLD path is there though but its clearly not used

You should check in your .zshrc file where DYLD_LIBRARY_PATH is set. Probably there is an if around setting that, which results to false when Code launches the shell in the product.

There is no if statement
On Mon, 20 Mar 2017 at 11:49, João Moreno<EMAIL_ADDRESS>wrote:

You should check in your .zshrc file where DYLD_LIBRARY_PATH is set.
Probably there is an if around setting that, which results to false when
Code launches the shell in the product.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-287737989,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGapruqlCYSThzryGsnl4KaBkkWDzYQks5rnmfPgaJpZM4MZiOc
.

Can you show me what that looks like?

 If its from Finder I get a message saying SSL connect error.
The issue is talking to a https url that has self certified certificate. https://google.com is fine, https://mylocaltest breaks

Wait, what is your issue again?

When in omnisharp I click the Debug Test, when the test connects to a self
certified https url it will fails because I believe VSCode doesn't know
about the DYLIB env var
On 23 March 2017 at 16:32, João Moreno<EMAIL_ADDRESS>wrote:

Wait, what is your issue again?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-288778562,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGapnvlXLQrKYHea_-7UMLXTjnuVwDFks5rop6VgaJpZM4MZiOc
.

And can you show me screenshots of the error in both cases (when running from the Terminal, and otherwise?)

OK I've narrowed it down.  Opening VSCode from Finder includes the environment variable DYLD_LIBRARY_PATH=/usr/local/lib/ Opening it from the terminal does not. Having code that executes a HTTP request to a self cert fails because of the missing envvar. If opened from Finder all is well, if from termnial it doesn't work.

Finder doesn't do that. Code does that on startup.
I don't understand whether we should fix something here.

Well there seems to be a difference possibly on startup then between vscode being launched from a terminal and from finder.

In the terminal, what do you get with echo $DYLD_LIBRARY_PATH?

This is strange. To confirm: .zshrc contains the line export DYLD_LIBRARY_PATH=/usr/local/lib/ right?

Correct
On 24 March 2017 at 14:25, João Moreno<EMAIL_ADDRESS>wrote:

This is strange. To confirm: .zshrc contains the line export
DYLD_LIBRARY_PATH=/usr/local/lib/ right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-289036770,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGapjc0I-bRFRdT2ujsR0wYQ39nJKiyks5ro9JvgaJpZM4MZiOc
.

It doesn't make sense why Code would let go of that variable when running from the Terminal.

Welcome to my world
On 24 March 2017 at 14:58, João Moreno<EMAIL_ADDRESS>wrote:

It doesn't make sense why Code would let go of that variable when
running from the Terminal.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-289046258,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGapluP_OeSH741BNb0k-XRw8IbhgU6ks5ro9oEgaJpZM4MZiOc
.

Happy to screenshare etc if you want

In a terminal, run zsh -ilc "env". What's the value of DYLD_LIBRARY_PATH in there?

It's not present
On 24 March 2017 at 15:14, João Moreno<EMAIL_ADDRESS>wrote:

In a terminal, run zsh -ilc "env". What's the value of DYLD_LIBRARY_PATH
in there?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-289051159,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGapktGNlrL9yUV07FCm9WMSb0fn62Yks5ro93VgaJpZM4MZiOc
.

But simply running env shows it, right?

Nope, which is odd
On 24 March 2017 at 21:59, João Moreno<EMAIL_ADDRESS>wrote:

But simply running env shows it, right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-289153221,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGapiVqMIMMorAbdg4hOn1pJCbnM4udks5rpDzQgaJpZM4MZiOc
.

See thread - https://twitter.com/0xced/status/846107008638038020
On 25 March 2017 at 07:41, Jonathan Channon<EMAIL_ADDRESS>wrote:

Nope, which is odd
On 24 March 2017 at 21:59, João Moreno<EMAIL_ADDRESS>wrote:

But simply running env shows it, right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-289153221,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGapiVqMIMMorAbdg4hOn1pJCbnM4udks5rpDzQgaJpZM4MZiOc
.

Wow, that's definitely interesting.
Glad you found the solution! Closing as this isn't a Code issue.

Well it's still an issue IMO. Why isn't VSCode using that envvar from
terminal?
On 27 March 2017 at 09:24, João Moreno<EMAIL_ADDRESS>wrote:

Wow, that's definitely interesting.
Glad you found the solution! Closing as this isn't a Code issue.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/22400#issuecomment-289385945,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGaprvuesjBtOJKSOqkQVlFUefCDIt9ks5rp3IsgaJpZM4MZiOc
.

If you launch Code from a Terminal, we don't overwrite the environment that comes from the Terminal especially because you might want that specific environment.
Example: when running FOO=bar code from the Terminal, you'd want FOO to be bar in Code's session. Now, if a default environment would set FOO to ohno, Code would be running with ohno instead of the correct bar.

It's definitely an issue. But it's a security feature: DYLD_* variables are dropped because they are dangerous. It should require a manual action to have them in there and that is the workaround provided by @0xced.

Guess I can change my alias of code to be open -a "Visual Studio Code"
Still unclear why VSCode when opened from the Finder does include it


JSXIdentifier => JSXOpeningElement  causes regression.

With this https://github.com/yannickcr/eslint-plugin-react/commit/3fc121bcf29
I've got
docs/src/Root.js
  2:7  warning  Router is defined but never used  no-unused-vars

with the code: react-bootstrap/docs/src/Root.js#L2
import Router from 'react-router';
...
const Root = React.createClass({
...
render() {
  return (
     <html>
...
       <Router.RouteHandler />
...

A quick look exposed that the failure is caused by:
with this code I've got warning
<Router.RouteHandler />

and with this code the warning disappears
<Router />

Thanks. I found the problem and I will release a quick fix.


Android Send Notification event to JS only once when the app is in the foreground

Summary
When a notification was received on Android and the app was in the foreground we were sending the event to JS twice, this PR removes the duplication of the event being emitted.
Release Note
NONE

Thanks @enahum!

@esethna no problem but in fact it was @koox00 who found the issue ;)

Building app in separate branch.

Cherry pick is scheduled.


undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE".that's why?

Hello, author.  When I tried to run 'demo.py', the following error occurred.  "ImportError: /home/lotvs/.local/lib/python3.7/site-packages/cpools-0.0.0-py3.7-linux-x86_64.egg/top_pool.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE"。  I have already completed some preparatory work according to your instructions before running demo.  I hope you can reply to me.  Thank you again.

Solve it？

Solve it？

Yes, I have solved this problem.You can go to this website and download the  file and replace your original one.Then do python setup.py...And make will run successfully.(it works on python3.7, pytorch1.0) I guess it was the author who changed C's API interface that caused the error.

it didn't work
ImportError: /root/.local/lib/python3.6/site-packages/cpools-0.0.0-py3.6-linux-x86_64.egg/top_pool.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationERKSs

it didn't work
ImportError: /root/.local/lib/python3.6/site-packages/cpools-0.0.0-py3.6-linux-x86_64.egg/top_pool.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationERKSs

maybe you need to install the right version of cudnn

it didn't work
ImportError: /root/.local/lib/python3.6/site-packages/cpools-0.0.0-py3.6-linux-x86_64.egg/top_pool.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationERKSs

Solve it？

Yes, the same error. Please help.

Yes, the same error. Please help.

I've solved the problem. You can try to do as I said：You can go to thishttps://github.com/YanDingXin/CornerNet-Lite-core website and download the file and replace your original one.Then do python setup.py...And make will run successfully.(it works on python3.7, pytorch1.0) I guess it was the author who changed C's API interface that caused the error.

Yes, the same error. Please help.

I've solved the problem. You can try to do as I said：You can go to thishttps://github.com/YanDingXin/CornerNet-Lite-core website and download the file and replace your original one.Then do python setup.py...And make will run successfully.(it works on python3.7, pytorch1.0) I guess it was the author who changed C's API interface that caused the error.

solved, thank you!


Spells with saves not being sent to chat

If a spell is set with a saving throw, and is set as a 1+ level spell, it does not go through.
Error code:
actor.js:227 Uncaught (in promise) TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
[Detected 1 package: system:sfrpg]
at Function.all ()
at ActorSFRPG.useSpell (actor.js:227)
useSpell @ actor.js:227
Promise.then (async)
useSpell @ actor.js:255
await in useSpell (async)
_onItemRoll @ base.js:633
(anonymous) @ base.js:239
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2
actor.js:227 Uncaught (in promise) TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
[Detected 1 package: system:sfrpg]
at Function.all ()
at ActorSFRPG.useSpell (actor.js:227)
useSpell @ actor.js:227
Promise.then (async)
useSpell @ actor.js:269
await in useSpell (async)
_onItemRoll @ base.js:633
(anonymous) @ base.js:239
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2
actor.js:227 Uncaught (in promise) TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
[Detected 1 package: system:sfrpg]
at Function.all ()
at ActorSFRPG.useSpell (actor.js:227)
useSpell @ actor.js:227

Fixed


[bug] Fix current binding count when previous binding is false

This bug is difficult to explain clearly so I will try my best.
I discovered it when I was trying query where a relation had a false column then using a whereRaw after. See this example below from the added test in this PR:
$books = (new Book)
    ->whereHas('author', function ($query) {
        return $query->where('is_famous', false); // Passing false here is the issue
    })
    ->whereRaw("title = ?", ['Mixed Clause']) // This binding ends up not being included in the cache key
    ->get();

Issue
Before this PR fix the cache key that is generated would be missing the 'Mixed Clause' binding see below where the key ends without the value.
-exists-and_books.author_id_=_authors.id-is_famous_=_-authors.deleted_at_null-_and_title_=

Workaround
If you use zero instead as the value $query->where('is_famous', 0) the key is generated correctly.
Cause
This is caused by false bindings being ignored in CacheKey::getValuesFromBindings and the currentBindings count was therefore not being incremented correctly.
protected function getValuesFromBindings(array $where, string $values) : string
{
    // If this array value is false then the binding is ignored
    if (($this->query->bindings["where"][$this->currentBinding] ?? false) !== false) {
        // ...
        $this-currentBinding++;
        // ...

Fix
Rather than CacheKey::getValuesFromBindings comparing using false it should use some specific value to compare with so it only skips if the binding is not set. Feel free to feedback on this but its a necessary evil to have some sort of unique string provided that is unlikely to be passed as a field value.
protected function getValuesFromBindings(array $where, string $values) : string
{
    // Fallback to this when the current binding does not exist in the bindings array
    $bindingFallback = __CLASS__ . ':UNKNOWN_BINDING';

    if (($this->query->bindings["where"][$this->currentBinding] ??  $bindingFallback) !==  $bindingFallback) {

And this ensures that the generated cache key contains all the correct bindings:
-exists-and_books.author_id_=_authors.id-is_famous_=_-authors.deleted_at_null-_and_title_=_Mixed_Clause

Potential Additional Change?
Not sure if you noticed but when the value is false the generated cache key inserts the false as an empty string -is_famous_=_- .
I wonder if we should detect false values and make the key insert them as 0 or 'false' string, e.g. -is_famous_=_0-  or is_famous_=_false-?

Thank you for all the work you put into this!!


oracle connect and kafka connect

oracle is a large-scale database, kafka ecosystem has been very large, could you consider adding connectors

Sorry to reply so late. Did you want Oracle and Kafka sink connectors ? or source connectors? Yes, we had planned to add Oracle and Kafka connectors, we will release them if the development is ready.


Inner type with same name as outer type

As mentioned in #41, there are problems with nested types when inner types have the same name as the containing type. For instance, I tested with the following code:
class NameTest() {
    shared Integer x = 1;
    shared class NameTest() {
        shared Integer x = 2;
    }
    shared Integer f() { return this.NameTest().x; }
}
object nameTest {
    shared Integer x = 1;
    shared object nameTest {
        shared Integer x = 2;
    }
    shared Integer f() { return this.nameTest.x; }
}

The class seems to work in prototype style but in closure style calling f() causes a runtime error. The object definition even causes a runtime error immediately while loading the package, in both styles.
And of course there are much more complex examples. For instance it looks like you are allowed to write something like this:
class C1() {
    shared class C1() {}
    shared class C3() extends C1() {}
}
class C2() extends C1() {
    shared class C2() extends super.C1() {
        class C2() extends C3() {}
    }
}

We should make the generated code more robust against name conflicts and define additional tests.
Note that this is somewhat related to #18.

JS classnames for inner classes could be translated to outerclassname_innerclassname to avoid collisions... as long as you use all that from Ceylon you don't have a problem, only if you try to use it directly from javascript (but what would be the point of that). So you would have C1, and inside it C1_C1 and C1_C3; then C2 and inside it, C2_C2 which extends C1_C1 and inside that, C2_C2_C2 which extends C1_C3.

We have to use $ instead of _ because C1_C1 is a valid Ceylon class name. But apart from that, that's the basic idea, yes.  Nevertheless, we probably won't be able to avoid qualifying the identifiers like this, at least in closure style. In prototype style we may be able to avoid it (at least partly) because the scopes are more separate there, but I'm not sure.
In any case we have to take care to keep the naming scheme for the generated identifiers consistent. We need this kind of qualified names for several different purposes (one example: references to members of the super class), and they should work together properly.


Fix for INP001 implicit-namespace-package

Can there be a fix for the rule? I would like to add __init__.py files where missing.

In the meantime I generated a simple python script that checks the lint and adds the files:
https://github.com/deargen/workflows/blob/e99efa3e0c7d415d56af820d3875c749365e8dea/scripts/gen_init_py.py

Our current fix infrastructure doesn't support modifying files on disk. I think this might be useful because language servers do provide refactoring ability to move snippets of code to another file.

Thank you!

oops, sorry


Clean up resources created and restore cluster state

PR:

When profiling config is unset, resources created for the same will be cleaned up after MCO's fallback to previous rendered MC is successful
Label worker nodes with custom label to use in node selector.
Enable Config flow updated
Label nodes
Create MCP
Create MC
Disable Config flow updated
Unlabel nodes
Wait for worker MCP to be updated
Remove MC and MCP created.

Unit test scenarios are commented as majority code has been updated.

/cc @saschagrunert @josefkarasek @sherine-k @lmzuccarelli

/test e2e-gcp

/retest images

/retest

/test images

/test e2e-gcp

/test images

/test e2e-gcp

@bharath-b-rh - agree with @saschagrunert - great work.

/test e2e-gcp

Had a look at the logs for the e2e test seem like its an internal gcp error

@bharath-b-rh - finally all tests passing

/lgtm

/approve

/lgtm
/label px-approved
/label qe-approved
/label docs-approved


various conditional flow fixes

fixes syndesisio/syndesis#5515
fixes syndesisio/syndesis#5636
fixes syndesisio/syndesis#5608
improves navigation

PR Storybook available here

Gonna stick some more stuff on this branch, why not.

PR Storybook available here

PR Storybook available here


adding code to plot dark rates - group 5

First, a high-level comment - would it be possible to provide more context as to how this script is meant to be used? (ideally you should use the pull request description to help understand this better). It looks like this is a script that is meant to be run from inside an IPython session with the --pylab flag. If this is the case, you should add a comment at the start of the script to explain this.
However, I would recommend making it so that the script can be used outside of IPython. To do this, you will need to replace the Matplotlib import with:
import matplotlib.pyplot as plt

(the plt shortcut is often used) then replace calls to pyplot.* with plt.*. At the end of the script, add a plt.show() which will then make sure the figures appear. This will then allow the script to be used both inside and outside IPython.
We've left some more detailed inline comments.

additionally, there are no inline comments describing what each of the figures is supposed to show, meaning if anything goes wrong, very little context is provided to help debugging.


Beta test of warp field effect

This is a work in progress.  This is an early test of a warp field effect.  May need some help to refine it.

Added simple eyes with random movement.  Could use some work with adding blinking, veins, eyelids, etc.


[INLONG-7560][Dashboard] When submitting group approval, determine whether to create source and sink

Prepare a Pull Request
(Change the title refer to the following example)

Title Example: [INLONG-XYZ][Component] Title of the pull request

(The following XYZ should be replaced by the actual GitHub Issue number)

Fixes https://github.com/apache/inlong/issues/7560

Verifying this change

Waiting for discussion.


Ugly horizontal overscroll bounce

Hi thanks for this kit just wondering if there is anyway to disable the horizontal overscroll bounce. Found in your demo too. I don't see any option from your documentation.
Building an app with cordova for ios 10+.

Kind regards

Your issue is closed because it is not filled correctly. Before you open an issue please review the contributing guideline.
Please fill the issue template correctly and:

Clearly describe the issue including steps to reproduce when it is a bug.
Make sure you fill in the earliest version that you know has the issue.

I do not need to provide live link retard.


docker command error

File: get-started/part2.md, CC @johndmulhausen
while executing the remove all images command
docker image rm $(docker image ls -a -q)
Docker version 17.09.0-ce, build afdb6d4
Output:
unknown shorthand flag: 'a' in -a
See 'docker image rm --help'.

Having no issues with that command.
Docker version 17.09.0-ce, build afdb6d4```
```$ docker image rm $(docker image ls -a -q)
Untagged: konstruktoid/docker-garby:latest
Untagged: konstruktoid/docker-garby@sha256:9d58cfc8750095ad03df3ee52e0a7cbab8bd7168b95628d29adff1ea994d5875
Deleted: sha256:00c694550115c19f2d9a4585777816e9f122b3f21055d1510ce2e72b9959c863
Deleted: sha256:162582c466a0b6372294669bca14ae690852f74317f6599c9c1c37a62eaf1470
Deleted: sha256:e00210c96260386fa897706cf760e9b95007102b1302699771f91b053a70fcdc
Deleted: sha256:167622c9d05510d44438aaf563064f70c99093985ceb43d67279730c452c03b8```

@AjayKumaraj, like @konstruktoid, I've not been able to reproduce that command error either; e.g.,
$ docker image rm $(docker image ls -a -q)
Untagged: friendlyhello:latest
Deleted: sha256:de1d65ab02dacf6cda90d0e4e82b7f41cf7400e7d09ff284beeda880d76faf34
Deleted: sha256:c77af318cd393229bbb903f58de6156eacf6e5dbea5a05a3acf7f7d02991a9ee
Deleted: sha256:34b5b553a6a4ef49186169058923536958635e35ff1cb2b929fdaf8221b7f948
Deleted: sha256:86d3b456c1b894f7562d411546667214ca9748f2c3399b40cb81ef31fe76cd31
Deleted: sha256:1cb29848bf66a594085dfceee24ff24116c9c4605f6d9402fb6f16cd2e4f4e39
Deleted: sha256:d2e062c7a206925f17557e9115bd2de63a923df1f5d3172346fa630b7283e246
Deleted: sha256:dd010379ffb69178df1ca030622815e08655a5d10554f9357c263e4efbc5c825
Deleted: sha256:86340884b254ed2b83c23b144ef97be4ff12ba76f406216b142848a0551529d3
Deleted: sha256:20b3f0f7bbcb3453df26cadb9c26fffb1d7f89441349aae57901fc372a8f73e5
Untagged: python:2.7-slim
Untagged: python@sha256:b614fcd205ffe3f8a993dd29cc74fac6399a70d07e0d20a07f4222e968b79466
Deleted: sha256:9724e90f1f17d86ce0e98cb2498d7e9b17b5a9722c1a93aed22ed1397f7420a4
Deleted: sha256:4e2b5fabe5dfe6990c28d4887435cb4dd5033dafe293e67fbc87bf10c20dd3e9
Deleted: sha256:cf6b492d7dde10333e50717cdace897ac48d24b6d46f47572eedbc847e1abdc7
Deleted: sha256:5e89cd4fcc84bcc22a31d9367df71c8145747357018634a0ba37f63bbe790e5f
Deleted: sha256:c01c63c6823dd8a296c2134ea94d31121069f1c52f8f8789836bc7ea2e5cdc93
Untagged: hello-world:latest
Untagged: hello-world@sha256:07d5f7800dfe37b8c2196c7b1c524c33808ce2e0f74e7aa00e603295ca9a0972
Deleted: sha256:05a3bd381fc2470695a35f230afefd7bf978b566253199c4ae5cc96fafa29b37
Deleted: sha256:3a36971a9f14df69f90891bf24dc2b9ed9c2d20959b624eab41bbf126272a023
Untagged: dockercloud/client-proxy:latest
Untagged: dockercloud/client-proxy@sha256:eb06ffd658c55ee05bad54b50c86abcf19107981e70271032c53fde5eb7c7134
Deleted: sha256:0c002aed3dbaaa3eb834332c2b9a506c20821114f674ca9034ae8586c925861d
Deleted: sha256:4e16a2f33bb01b22ec20c823d97ef7f3d0a918f2d0993b0052ff99bf654c2836
Deleted: sha256:b7a895ace31fe5c254a5d2fcf38e76eeeb8b712384f4797caa184b050b3f3891
Deleted: sha256:2b0fb280b60dad0c3e2f6b207ef0d8f6a04f09638d245d3a2fdf0d6933e734d6
Error: No such image: c77af318cd39
Error: No such image: 34b5b553a6a4
Error: No such image: 86d3b456c1b8
Error: No such image: d2e062c7a206
Error: No such image: 86340884b254

I am, however, going through the command summaries on all tutorial topics to make sure the summaries match the commands in the topics, and verify that there are no other problems. Thanks!


New App Submission - Feeds

App Logo (Required)

App Details (Required)
Type: Dapp
Name: Trinity Feeds
Homepage Url: https://www.trinity-feeds.app/
Chains supported: Elastos Smart Contract Sidechain
App Url (Required - at least one)
Browser Url:
iOS Url: https://apps.apple.com/us/app/trinity-feeds/id1546436333
Android Url: https://play.google.com/store/apps/details?id=io.trinitytech.dapp.feeds
Mac Url:
Windows Url:
Linux Url:
Mobile Linking (Optional)
Deep Link:
Universal Link:
Desktop Linking (Optional)
Deep Link:
Universal Link:
Metadata (Optional)
Short Name: Feeds
Primary Color:
Secondary Color:

Added on commit b9ba6b03b60cbc5942377806c7c66dda9f3d8a98


docs: fix copy paste typo in README.md

I think I misunderstood the readme, sorry for the trouble 😄

@mikavilpas No problem! 😉


Missing RazorPage.RenderPage

Please consider an example:
Views/Shared/Index.cshtml  - a view for a SPA app. It contains some markup and a reference to a layout-page:
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

In _Layout.cshtml there're number of includes which are being used via RenderPage helper:
@RenderPage("~/Views/Shared/_ImportCssInline.cshtml")
@RenderPage("~/Views/Shared/_ImportCssLinks.cshtml")

Now in AspNet5 @RenderPage helper isn't available.
It was the method of WebViewPage/WebPageBase/WebPageRenderingBase. Now they were replaced by RazorPage. But there's no RenderPage method in it.
What should be used instead?
p.s. SO question

Yup, we haven't done the work yet to support Web Pages scenarios in MVC 6. For this scenario you can use @Html.Partial(...) instead.

Yes for this scenario (absolute path to view) Html.Partial works, but relative view view doesn't work for Html.Partial and they do for RenderPage :(

@mpawelski that should get fixed once https://github.com/aspnet/Mvc/issues/3307 is resolved. There's an ongoing PR for it.

This should hopefully be a part of the work for Razor Pages, which is tracked here: https://github.com/aspnet/Mvc/issues/494


Module 1 exercises [Edith Kwablah]

Please "drag & drop" exercise 1 file below.

Please UPDATE THE TITLE of this "Issue" in the title bar above with your name.

If you haven't done so, please go back to Module 1 and make sure to take
the post-training survey.
WS2_M1E1_Submission(Edith Kwablah).docx

Thank you for your successful submission to the practice exercise! Please be sure to fill out the post-Module survey.


Support android plugin

This PR is related to #17
I tried your changes but they didn't work, so I started digging. It seems that the android plugin follows the same structure as the java plugin, but the sourceSets are implemented with different classes.
It seems necessary to manually walk through all the android directories to collect the files to be formatted.
This is my first time working with groovy and gradle plugins, so I could've easily done something awful in the code.

Indeed I did not check the API for the Android plugin and assumed it was similar to the Java plugin.
Did you get a specific error when testing?
Although different it seems the API is close, with a getJava() method that returns a SourceDirectorySet, perhaps it is the plus() method that is not implemented?

Yes, the exact Exception is:
No signature of method: com.android.build.gradle.internal.api.DefaultAndroidSourceDirectorySet.plus() is applicable for argument types: (com.android.build.gradle.internal.api.DefaultAndroidSourceDirectorySet) values: [[src/test/java]]
  Possible solutions: is(java.lang.Object), split(groovy.lang.Closure), use([Ljava.lang.Object;), wait(), grep(), dump()

(This is after changing file?.isEmpty() for !file. Otherwise, condition was always false)

Perhaps it is possible to create a file collection from those without the plus method.

Yes, that what I tried in this PR. DefaultAndroidSourceDirectorySet doesn't have a method that returns all the files, so I added a method to FormatTask.groovy.


docker-compose for self hosting ?

Hello
I just discovered adblockradio, it's a great project !
After trying the web demo, I was exploring how to host it on my server via docker (like all my other stuff). I see a Dockerfile here, but examining it I'm wondering where's the machine learning part ? I guess you need something like TensorFlow loaded with your current knowledge base ?
I'm aiming at a docker-compose to get it running. Maybe you already have one ?
Best regards,

Update on that topic:
The machine learning part is located in a dependency of this project. That dependency is the main inference algorithm and its source is available here: https://github.com/adblockradio/adblockradio
I updated the Docker stuff. docker-build.sh creates a Docker image for you. docker-run.sh is an example of how you can run it.
I pushed an image on Docker hub: https://hub.docker.com/r/adblockradio/buffer, feel free to pull it.


[BUG-Python] align assign_records with new list aggregation for metadata

Is your feature request related to a problem? Please describe.
Better align assign_records.py with new option of adding a list of metadata.
from argilla.client.feedback.utils import assign_records
assignments = assign_records(
    users=[f"user_{ix}" for ix in range(0,6)],
    records=records,
    overlap=3,
    shuffle=True
)

modified_records = []
for username, records in assignments.items():
     for record in records:
        record.metadata['annotator'] = [user1, user2, user3]
        modified_records.append(record)`

For instance, using this, the loading time is too long
def find_users_for_record(record, assignments_dict):
    users = []
    for user, records in assignments_dict.items():
        if record in records:
            users.append(user)
    return users

modified_records = []
for record in records:
        record.metadata['annotator'] = find_users_for_record(record, assignments)
        modified_records.append(record)

Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@davidberenstein1957 Regarding this issue, I've been thinking about it and the question is that, when assigning as metadata, this type of dictionary is more suitable {record : [annotators or groups]}; but when assigning using workspaces, the inverted version is the best option {annotator or group : records}. So, if we invert the current dictionary output, the problem regarding the loading time would be for those assigning using workspaces.
I don't know what solution is the most efficient and user-friendly. Some possibilities I thought about are the following:
1- To return both (but I wouldn't go for this as it is double computation)
2- Add an argument in assign_records to indicate if they are going to assign them as metadata
3- Create a different assign_records_as_metadata, as a different/parallel workflow
Let me know what you think or if you may come up with other approaches.

having a shared function with a flag or argument for metadata would work


[Discussion] Support storing reference images as hashes

Not really a feature request yet, but I think this would be a good place to discuss this idea by Alex Vanyo:
If you use a diff threshold of 0, instead of storing the reference images as PNG, store a hash of the file.
The way it works is:

The record task takes new screenshots and stores their hashes in their corresponding files. For example in the same folder with an md5 extension: screenshots/ForYouScreenPopulatedAndLoading_foldable.png.md5
The verification task takes new screenshots, hashes them and compares with the existing files

:+1: It eliminates the problem with large files and how to store them (git LFS, cloud buckets...)
:-1:  It makes development less intuitive because screenshots no longer live alongside the code (but this is true with cloud buckets, different branches and arguably git LFS)
:-1: Reports are tricky because Roborazzi can't know what the base branch is (the commit that was used to generate the existing reference images).
This is doable on CI (see my prototype and example PR), but:
:-1: there's no easy way to run screenshot tests locally
:-1:  :-1: the PR doesn't show any screenshots so you would have to do something like https://github.com/takahirom/roborazzi-compare-on-github-comment-sample/pull/1 which complicates the workflow even more.
Some very crude ideas:

Store the commit ID that was used to generate each screenshot. Roborazzi could run a command to check out the commit to generate the reports. This is not great.
Create a Github action (and Bitrise, Bitbucket...?) that takes care of everything so at least the CI the dev experience is decent.

In general app development, it's challenging to manage changes if you can't see what's different between images. Therefore, storing images as hashes might not be practical. However, for UI library development where not a single pixel changes, hashing could be useful. Even so, having some way to view the diff when changes do occur would be beneficial.
Hashing could be offered as an option through gradle.properties and record options. I'm open to adding this feature, although I can't quite envision how it would work in practice.

It might be interesting if the hash output can be done by Roborazzi in addition to storing the image itself, as opposed to it being an exclusive choice.
I could see an approach where Roborazzi records both the image and the hash (or just one or the other, depending on configuration). Then during verification for a test with a diff threshold of 0, it can use all available golden information:

if a golden image is present, then it is used directly to verify visual report if the test fails. If a golden hash is also present, maybe sanity check that the golden hash is the hash for the golden image?
if the golden image isn't present, but a golden hash is, then run the test based on the resulting hash value. If the check fails, the test will fail, but there's no "before" image to nicely use in a report
if neither the golden hash nor the golden image is present, then the test fails due to missing goldens

What happens to the generated golden images in version control system could be left up to the project: maybe they choose to check in the raw images anyway directly, maybe they use Git LFS, maybe they prevent the images being committed using .gitconfig or a similar mechanism (and then undertake a more complicated CI setup to regenerate the old images using a base branch, and additional work to make it visible in the pull request).

Thank you. I'll think about it while making a prototype. I'm wondering whether to base the MD5 calculation on the image's pixels or the file's binary. I'm unsure about what to use as the seed. Do you have any recommendations

I've noticed that the environment can greatly affect image pixels. Thus, it would be ideal if we could customize it in a manner similar to DropBox's ImageComparator, especially since we use the maxDistance from DropBox's SimpleImageComparator.
data class Color(val r: Float, val g: Float, val b: Float, val a: Float = 1.0f)

interface Image {
  val width: Int
  val height: Int
  fun getPixel(x: Int, y: Int): Color
}

interface ImageHashComperator {

  data class HashResult(
    val hashString: String
  )

  fun compare(left: Image, right: Image, mask: Mask? = null): HashResult
  fun areSimilar(hashResultA:HashResult, hashResultB:HashResult): Boolean = hashResultA == hashResultB

I'm not sure if it's feasible, but I've heard that by using pHash (perceptual hash), you can determine if images are similar based on how close their hash values are. Additionally, with the advancements in generative AI and compression algorithms, there might be other possibilities.

I've created a prototype of this feature. Some tests still need to be added, but I believe the implementation will resemble the current one. The logic is somewhat complex; however, I'm open to introducing it if there's a team interested. Without users for this feature, I'm hesitant to integrate it. If you're considering it, please leave a reaction.
https://github.com/takahirom/roborazzi/pull/204/files#diff-7ba98c05ac15006c23589beeee900e7836c1b28e167b6cd85e55effe788c2736R6


Correct documentation for onSelectionChange

https://github.com/facebook/react-native-website/pull/881 added a note to say that onSelectionChange only works when multiline is enabled but I just tested off RN main branch as of today without multiline set and onSelectionChange still fires. Maybe this was a bug previously or a change that was made to the API but the docs were never updated.

After a quick look in main repo I have found this issue with reference to PR and commit fixing this:

https://github.com/facebook/react-native/issues/21515

Which seems to fix the onSelectionChange on iOS for single line inputs. If this commit is the right one, then it looks like the change has landed in 0.61 release and all docs from this version upwards should be updated.


Create Placement model

You have to create the model for Placements here. This model is supposed to store the data for all the placements that are updated by SPO. The fields here are really straightforward -

Placement Name
Company
Role
Description
Eligible batches
Eligible branches
Eligible Programmes
Deadline

i can work on this.

May I work on this


Solar powered cameras - Does integration work with them?

Hello,
Does integration work properly with SoloCam models?
I am interested in working with the S220 model.
What features are available for this model? Due to the battery power, I think that only taking a screenshot when an incident is detected, sending a screenshot at a specified time interval are enough. Live streaming for SoloCam is unnecessary.

https://bropat.github.io/eufy-security-client/#/supported_devices


Very confusing validate function

Seriously I cannot think of any tiny good reason why you need to catch the exception for invalid output but at the same return a boolean to tell if the value is correct or not.
bool isvalid = await PhoneNumberUtil().validate('...')

Unhandled Exception: PlatformException(InvalidNumber, Number ... is invalid, null, null)

Keep calm jerinho
If you can fill the template with all info, we can help you


Planner test framework

Description
SQL planners are complex and difficult to test. They are a black box: SQL goes in, and results come out. From a testing perspective, a planner tends to be a box of magic that either works or doesn’t. This PR provides a framework to turn classic black-box planner testing into a white-box experience by capturing and verifying the multiple planner artifacts. The framework is inspired by the one used in Apache Impala.
The core idea is the “case” file which contains SQL statements, any required query context or options, and expected results, serialized as text. Expected results include the Calcite plan, the native query, the schema, the “physical plan” (such as it is in Druid), and so on.
Creating tests is easy. This PR includes a “starter set” captured from the various Calcite?QueryTest classes. To add a new one, add a test case with a query, add dummy values for the desired artifacts and run the test. It will fail, of course. Now, use your favorite diff tool to copy the “actual” results to the “expected” results file (assuming the results are correct.) After that, rerun the tests after each planner change to ensure nothing changes (except whatever you specifically wanted to change.)
Like the Calcite?QueryTest test classes, you can specify expected results when the query is run in a restricted "test" execution engine. Such test runs run single process, against in-memory segments, so check query semantics, but they do not test the full server stack nor do they give accurate performance characterizations. Druid has many different run modes (with or without vectorization, SQL-compatible nulls or not, various context variables. The test framework provides tools to work with these variations.
Tests of this sort are quite strict: change anything and the test will fail. This can be painful if you just want to change something and are not concerned about side-effects. It can, however, make changing the planner a breeze because you get extreme visibility into the exact impact your change has: no surprises.
See the README.md file for full details of the case file syntax, how to create a test, and how to convert existing test files.
Example
The following shows a test converted from CalciteQueryTest, including the various test case sections:
==============================================================
Converted from testTopNLimitWrapping()
=== case
Top n limit wrapping
=== SQL
SELECT dim1, COUNT(*)
FROM druid.foo
GROUP BY dim1
ORDER BY dim1 DESC
=== context
sqlOuterLimit=2
=== schema
dim1 VARCHAR
EXPR$1 BIGINT
=== plan
LogicalSort(sort0=[$0], dir0=[DESC], fetch=[2:BIGINT])
  LogicalAggregate(group=[{0}], EXPR$1=[COUNT()])
    LogicalProject(dim1=[$2])
      LogicalTableScan(table=[[druid, foo]])
=== native
{
  "queryType" : "topN",
  ...
=== results
["def",1]
["abc",1]

Multiple other sections are available: the above is one of the simpler cases.
Running Queries
TheCalcite?QueryTest cases verify the native query and results. Verifying results is harder than one would expect: most tests run with two variations (SQL and classic null handling) which produces different results. Others use generators to run up to eight option variations for a total of 16 runs, with differing results. Adding results to the test framework is thus non-trivial and left as a second PR.
Since the new framework can’t check results, we are left with using both the old and new versions of converted tests. This is unfortunate: a goal for a second PR is to retire the “legacy” test files. A big bonus: someone had to laboriously write the Java code to build up native queries for those tests. In the figure, the computer will do it for us.
PR Details
This section summarizes the many changes required to create the test framework.
Streamline Native Query Serialization
The test framework captures native queries in serialized JSON format. Examining those queries identified a number of places where we omit trivial fields: null values, default values, empty lists, and so on. This PR adds JSON annotations to suppress such trivial fields. A couple of CalciteQueryTest cases verify this format and were changed to reflect the new “lean” format.
The test framework requires that native query serialization be stable: the same query is serialized in the same way every time. Fortunately, that is already mostly true. The one exception found thus far is InDimFilter which serializes a Set which produces a random serialization order. The serialization function for that one property was changed to produce a sorted result.
Druid Planner State Capture
Planners want to be black boxes: query in, plan out. Tests want visibility into the internal states as described above. The planner is modified to allow a PlannerStateCapture instance which can record (capture) this internal state. By default, the planner uses a "no op" capture. Tests provide a capturing instance.
The code to parse SQL was repeated three times. Factored that into a function.
Added the ability to capture the internal "execution plan" or "physical plan" in the QueryMaker via a new explain() method. This method does everything except send the query to another node for execution. The various query makers are refactored to support the two paths (explain and execute). For a SELECT, the physical plan is just the native plan with a few extra fields sent to the Broker. For INSERT, it is whatever the particular INSERT extension chooses to provide.
Union Queries
As it turns out, SQL UNION ALL queries have no direct native query representation: they turn into a list of native queries. Since we want to serialize "the" native query, the framework creates a "fake" "union" native query type on the fly to represent unions. Ugly, but it works.
INSERT/REPLACE Statements
The INSERT and REPLACE support in the planner is a bit of a bolt-on. The planner knows how to work with SELECT statements only, including if they are wrapped in a DESCRIBE or INSERT/REPLACE. When exiting the Calcite logical plan, the INSERT and REPLACE nodes don't appear. The test framework "invents" nodes for these cases (in the test framework only) so the the logical plan makes sense.
Planner Config
The planner config class has grown to be a monster: it holds config not just for the planner, but also for the segment metadata caching layer. This PR resisted the temptation to fix that issue.
Instead, it fixes another issue: tests want to tinker with the planner config via the "options" setting. But, the planner context is opaque: the only way to create one is via JSON serialization. Modified the class to provide a builder for use in tests.
The builder is then used in place of the detailed code in the withOverrides method.
Calcite Test Refactoring
ExpressionProcessing now allows a test to change the expression settings on the fly. This lets the test case declare, via the "options" section, how it wants to process expressions, allowing the variations to be tested in a single run.
Calcites has a escapeStringLiteral() method which escapes string literals, but is a bit too aggressive and results in a hard-to-read string with all punctuation converted to Unicode escapes. A new method, escapeStringLiteralLenient() is added to do the lightest-possible escaping and results in much better output in the test cases.
The BaseCalciteTest class was refactored a bit to:

Use the new PlannerConfig.Builder to create the various planner configs rather than anonymous classes.
Add support for planner state capture while running tests. Does nothing by default; can be turned on to capture planner state when converting tests from Java to the new framework. (This capture is distinct from the existing "hook" mechanism to capture the native query while running the query.)

RootSchemaBuilder holds the code to build up Druid's Calcite root schema. It is refactored to a builder so that tests can add to the root schema.
CalciteTests is refactored to use the above builder.
Query Context

Added more context variable key constants.
A number of query context keys were found to be hard-coded in various files and were changed to reference QueryContext constants instead.
The QueryContext class has a set of handy getBoolean(), etc. methods, but can only be used via that class. The code was pulled out into QueryContexts so that the test classes can use it for test options.
Pulled the override method logic out of QueryContext into QueryContexts so that the test framework can use it on maps.
Added a "metadata" section for options that lists the option key and the expected type. Also includes the default, when known. This metadata allows the case file to use Java properties syntax for any needed context variables:

=== context
useApproximateTopN=false

Druid Planner Test
The new DruidPlannerTest class, and its associated ".case" files holds test converted from:

CalciteInsertDmlTest
CalciteArrayQueriesTest
CalciteCorrelatedQueryTest
CalciteJoinQueryTest
CalciteMultiValueStringQueryTest
CalciteParameterQueryTest
CalciteQueryTest

This isn't all such tests, just enough to allow a particular project to proceed with confidence. More conversions can be done later. And, as noted, the test file does not currently run the queries: it only plans them and verifies the artifacts.
The other classes in sql/src/test/java/org/apache/druid/sql/calcite/tester/ support the test framework:

README.md contains instructions for using the test framework.
internals.md provides details, such as a reference for the test case file format.
PlannerFixture is a kitchen-sink class that encapsulates the code to set up a planner (and all its associated knick-knacks) to run a test. Other tests could use this class rather than doing the setup themselves, but that conversion is not done in this PR.
QueryTestCase represents one planner test case and its sections.
ActualResults records the actual results of a run, compares them with the expected results, and writes a report if there are errors.
CalciteTestRecorder is the implementation of the mechanism that captures planner state when running JUnit test.
QueryTestCaseRunner runs a test case (in the test framework) and captures the actual results.
TestCaseLoader simple parser for the test case file format.
Other classes are lower-level helpers.

This PR has:

[X] been self-reviewed.
[X] added documentation for new or modified features or behaviors.
[X] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[X] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[X] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.

So great!
On the .case files, how do you feel about, instead of having it all be in one big, long, running file, each query be chunked into independent files?  For example, the arrayQueries.case, would become a directory and under that directory you would have select_constant.sql for the query.  select_constant.planner for the planner artifacts and select_constant.results for expected results?
This does create a proliferation of files and reading files can be slow, so it runs the risk of slowing down tests (though, presently, the tests are reindexing all of the test data on every single test, which is probably more work than loading files that specify queries and results and stuff), but it also separates things a bit.  Especially when we want to bundle in result verification, putting the expected results into the big flowing file can make that file rather unweildy (especially if the expected result set is hundreds or thousands of lines long).

@imply-cheddar, thanks for the kind words. I think you can turn it into a one-query-per-file setup without any changes. You need a way to get the contents of a resource directory, but then you should be home free. Look at what was done for the CalciteQueryTest cases: there were about 400, so I broke then down into files of about 25 each.

@cheddar, per your suggestion, extended the framework to capture results. That wasn't quite as easy as it looked...
Took your suggestion to represent results as JSON arrays per row. Result comparison is textual unless an option is set to force Java-object comparison, which parses the JSON array into Java objects, and uses approximate equality for floating-point values. (The parsed Java objects are often not the same type as those produced in Druid results, so did some magic to make it work.)
The results handle SQL-compatible nulls or not, in the same run. No need to manually change properties to run one way, then the other. This double-duty occurs only in if -Ddruid.debug=true is provided, else the tests run as other tests: use whatever mode Travis provides.
The runs handle the "vectorize or not" cases also, as well as the join provider class that offers up to eight different ways to set options. This gives up to a total of 32 runs per test case.
When all is happy, and everything works the same way for every variation, the test case is pretty simple. But, when the native query (or results) differ depending on SQL-compatible setting, or other variations, there are ways to capture this variation.
You mentioned having a way to load data from an external file. That would be a good addition: have the JUnit test case use your framework to load the data, then run the tests using this mechanism.

The various Calcite tests have changed since this work started. It is a bit tedious to update the test cases with those changes. I'll do so in a single go just before we're ready to commit this PR. For now, be aware that I'm tracking changes and am aware that folks are busy adding and changing tests.

Note: the LGTM warnings are due to an LGTM timing issues. The required suppressions are in the code, but won't actually be honored until the PR is committed to master.

Split this PR into smaller ones: Clean up query contexts and Remove null and empty fields from native queries. Once these two are approved and merge, I'll rebase this PR onto master, which will reduce the file count by about a third, leaving only the framework itself, and its supporting changes.

Hitting flaky tests in PrefetchableTextFilesFirehoseFactoryTest. See this issue.

Split out the generic cleanup into two PRs which are now merged. Rebased this PR onto those changes so that reviewers need only consider the test-related revisions.  Most are new: either test code to support the planner test framework, or actual test cases. The original JUnit tests are left in place, though they are now redundant: we can remove them in a later PR. The framework is self-testing: if it works, the tests pass. Please focus on the parts where the PR tinkers with existing classes.

Pulled out most of the clean-up changes and most of the converted tests to reduce cognitive load on reviewers. We'll add those bits back in as we convert and add tests.

Moving to a private branch for now.


Lightning model

[ ] ❗ I have followed the Contributing to DVCLive
guide.

[ ] 📖 If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.

Thank you for the contribution - we'll try to review it as soon as possible. 🙏

Codecov Report
Patch coverage: 3.63% and project coverage change: -1.48% :warning:

Comparison is base (50f15a7) 89.53% compared to head (f968ccd) 88.06%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #640      +/-   ##
==========================================
- Coverage   89.53%   88.06%   -1.48%
==========================================
  Files          43       43
  Lines        2992     3042      +50
  Branches      250      260      +10
==========================================
  Hits         2679     2679
- Misses        274      324      +50
  Partials       39       39

Files Changed
Coverage Δ

src/dvclive/lightning.py
0.00% <0.00%> (ø)

tests/test_frameworks/test_lightning.py
6.09% <9.09%> (-0.80%)
:arrow_down:

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


ExperimentData uses deprecated backend.retrieve_job method

Informations

Qiskit Experiments version: 9e0bed4c9ea0b4da14cead41217a9c052eb584cc
Python version: 3.10
Operating system: Fedora Linux 37

What is the current behavior?
ExperimentData._retrieve_data uses the deprecated backend.retrieve_job() method:
https://github.com/Qiskit/qiskit-experiments/blob/main/qiskit_experiments/framework/experiment_data.py#L951
retrieve_job was moved to a different interface according to qiskit-ibm-provider's release notes.
The deprecated API usage should be updated. We should decide which workflow to support. The documentation currently suggests reloading the job data outside of the qiskit-experiments API here. We could decide that something like that is the supported path or we could try to restore the automatic reloading of data from job ids.

@gadial Is this issue addressed in https://github.com/Qiskit/qiskit-experiments/pull/1092 ?


Copy/move irma account to other device.

I know that the attributes are only stored in the local device and not on the server. When I get a new phone, I need to make a new account and go over all the attribute publishers.
Please consider to use same account on multiple devices and copy a (set of) attributes via QR code from one device to another, optionally via authentication via the MijnIrma.
The login to MijnIrma can be done via e-mail, but it might be that the email is linked to multiple accounts in case of multiple registrations. It looks like that email login does not work any more in that case.

We are currently looking into ways to provide a secure way to back up and move over attributes between phones.
However, because of the way IRMA works, we are not providing a way to have multiple phones use the same set of attributes at the same time.

When can we expect this? For test purposes I've loaded IRMA with several attributes, but now I've got a new phone.... When logging in with IRMA on my new phone it created a new account. So there is no way to move or merge the old account? or just move the attributes from old to new?
And in the meantime: when I just reload the attributes on my new phone, what should I do with the old account? Can I delete it?

At the moment there is indeed no support for moving or merging accounts. You can simply remove your old account by pressing 'delete account' in the previous app. If you don't have the app anymore, then you can remove the account via MijnIRMA. This is only possible when you linked an e-mail address to your IRMA account. Deleting your old account has no consequences for the new account, you can simply load all attributes in your new app. The attributes in the new account remain valid when you block your old account.
The feature of moving the IRMA account to another device is still on our wish list. We are currently working on publishing a high level roadmap about what we are doing and what are planning to do in the near future, so hopefully it becomes more clear then. More news on that later.


Error creating new record after adding type 'array' in schema

After adding:
properties: {
	an_array: {type: 'array'}
}```
I can no longer create new records from front-end client with regular: `create({an_array:["something"]})`.
The error is: `malformed array literal: "["something"]"`

It works when I delete the definition from model.js but then I can't search for `$contains`.

v4.4.2 should fix this issue.
model - define the property as array type
create record - property accepts a deserialized array as value
contains search - $contains accepts deserialized or serialized array of values to search for


ONNX export of Mask-RCNN doesn't output masks

🐛 Bug
I trained a Mask-RCNN model, exported it to ONNX, and tried to run it using onnxruntime. Sometimes, the model outputs boxes, labels, and scores as expected, but outputs 0 masks. I'm not entirely sure when or why this happens, but it's reproducible.
To Reproduce
I used the default Mask-RCNN model from the model zoo and tested it on this image from the COCO database:
wget https://farm9.staticflickr.com/8289/7717265494_a6c6ac01bb_z.jpg

import torch
import torchvision
import numpy as np
import onnxruntime
from PIL import Image
torch.manual_seed(0)

model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True, num_classes=91)
model.eval()

dummy_input = torch.rand(1, 3, 1333, 1333)

torch.onnx.export(model,
                  dummy_input,
                  "maskrcnn.onnx",
                  opset_version=11,
                  input_names=["input"],
                  dynamic_axes={"input": {0: "batch", 2: "height", 3: "width"}},
                  )
# load test image
image = Image.open("7717265494_a6c6ac01bb_z.jpg")
image = np.float32(image)
image = np.moveaxis(image, -1, 0)  # HWC to CHW
# normalize
mean_vec = np.array([0.485, 0.456, 0.406])
stddev_vec = np.array([0.229, 0.224, 0.225])
for i in range(image.shape[0]):
    image[i, :, :] = (image[i, :, :]/255 - mean_vec[i]) / stddev_vec[i]
# add batch dimension
image = image[np.newaxis, :]

# run model
with open("maskrcnn.onnx", "rb") as f:
    sess = onnxruntime.InferenceSession(f.read())
input_name = sess.get_inputs()[0].name
pred = sess.run(None, {input_name: image})
boxes, labels, scores, masks = pred

print(len(boxes), len(labels), len(scores), len(masks))

Outputs (besides lots of warnings): 18, 18, 18, 0.
Expected behavior
There should be a mask for every bounding box.
Environment
PyTorch version: 1.7.1
Is debug build: False
CUDA used to build PyTorch: 10.2
ROCM used to build PyTorch: N/A

OS: Ubuntu 20.04.1 LTS (x86_64)
GCC version: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Clang version: Could not collect
CMake version: version 3.16.3

Python version: 3.8 (64-bit runtime)
Is CUDA available: True
CUDA runtime version: Could not collect
GPU models and configuration: GPU 0: GeForce GTX 950M
Nvidia driver version: 450.102.04
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] numpy==1.19.5
[pip3] torch==1.7.1
[pip3] torchvision==0.8.2
[conda] Could not collect

PyTorch / torchvision Version (e.g., 1.0 / 0.4.0): 1.7.1 / 0.8.2
OS (e.g., Linux): Ubuntu
How you installed PyTorch / torchvision (conda, pip, source): pip
Build command you used (if compiling from source):
Python version: 3.8
CUDA/cuDNN version:
GPU models and configuration: GeForce GTX 950M
Any other relevant information:

Additional context
It seems to depend on the model weights and the dummy input for exporting. Some exported models work fine, some models output 0 masks regardless of input, and some models output masks but there are fewer masks than boxes. The number of boxes, labels, and scores has so far always been equal.
I tried setting the outputs as dynamic axes, but that doesn't seem to have any effect. I also tried using an image from the training dataset as the dummy input, and it seems using dummy input images with more objects in them increases the maximum masks the exported model can output, but it's not very consistent.
cc @neginraoof

Hi, @JeroenDelcour! Did you solve this problem? I have same situation and don't know way to fix(

Hi, @JeroenDelcour! Did you solve this problem? I have same situation and don't know a way to fix(

No, unfortunately. My current workaround is to use an image with lots of detectable objects as a dummy input image. That yields a working onnx model that outputs enough masks for my use case, though still fewer than it's supposed to.

Any updates? We really need this feature :(


New ingress

supressed by https://github.com/MinterTeam/minter-network-web/commit/f2a02ea5ccbe1e3dc015c5bba6976d558630e1ba


Detroit - Update Household Max Income Display logic

Acceptance Criteria

When I'm on the public listing page, then I expect to see the Household Maximum Income Chart based on unit group

Notes

The current logic should be an aggregation based on the AMI charts tied to units on the listing, filtered by occupancy to unit types available. We'll want to do something similar, but based on unit groups instead of units

Design

https://www.figma.com/file/D2fNPS5Ucll8uz7hyMUQGB/bloom-public-single-listing?node-id=1190%3A16013
Dependent on back end work in https://github.com/CityOfDetroit/bloom/issues/986

I think this is looking good


b72bced Startup not saved in LuCI

Hey all,
I'm running LuCI openwrt-18.06 branch (git-18.163.60998-c379f00) / OpenWrt 18.06-SNAPSHOT r7074-b72bced.
When I edit and save the /etc/rc.local file via LuCI (i.e. on the System > Startup page)...hitting Submit has no effect.

Upgrading identical devices, issue only occurs on one. Upgraded both to LuCI Master (git-18.169.62979-e380cf5) / OpenWrt SNAPSHOT r7294-5684d08  Master, no issue.


Add llvm-link and clang to CMake install

They are used to generate ukernel bitcode targets. Include the binaries in the host tool install to support cross-compilation
The binaries will be added as CMake TARGET via iree_import_binary for cross-compile flows.

I sorted out the mechanism: The binaries need to be added in CMake install, and to be added to iree_import_binary for the cross-compile flows, so they can be found with CMake <TARGET_FILE:target> syntax.


FluentFtp connectsto an FTPserver using tls, can get the working directory, but times out trying to get a filelist

FTP OS: Unix (Unknown Linux)
FTP Server: Unknown server
Computer OS: Windows 10
I have a small piece of c# test code (4.7.2) using FluentFtp that connects to the Linux based server of unknown type on an unknown derivative of Linux.
I am developing on VS 2017.
I used NuGet to load FluentFTP.
And the .Net level for my test code is 4.7.2.
So far:
It connects.
I can get a working directory (GetWorkingDirectory()).
When I try to get the file list it gets "Timed out trying to connect!" on the FluentFtp GetListing.
I've looked at a number of SO posts and FluentFTP issues and tried several ideas. I have also tried both PASV and EPSV with the same result.
Since all of this FTP with "tls" is a bit confusing, if you have any thoughts  I would certainly entertain them. I am in a bit of a time crunch.
Regards, Jim
The code is:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    using System.Security.Authentication;
    using System.Diagnostics;

    using FluentFTP;

    namespace TryFLuentFTP {
    class Program {
    static void Main(string[] args) {

        FtpTrace.AddListener(new ConsoleTraceListener());

        FtpTrace.LogUserName = false;   // hide FTP user names
        FtpTrace.LogPassword = false;   // hide FTP passwords
        FtpTrace.LogIP = false;     // hide FTP server IP addresses

        try {
            FtpClient client = new FtpClient("ftp-host", "user", "******");
            client.EncryptionMode = FtpEncryptionMode.Explicit;
            client.SslProtocols = SslProtocols.Tls12;

            client.DataConnectionType = FtpDataConnectionType.EPSV;                            //PASV;

            client.DownloadDataType = FtpDataType.Binary;

            client.ValidateCertificate += (c, e) => { e.Accept = true; };
            client.Connect();

            Console.WriteLine("Connected!!!!");

            Console.WriteLine("The working directory is: " + client.GetWorkingDirectory());

            FtpListItem[] list = client.GetListing(client.GetWorkingDirectory());
            // FtpListOption.Modify | FtpListOption.Size);

            foreach(FtpListItem li in list) {
                Console.WriteLine(li.Type + " " + li.FullName);
            }

        } catch (Exception ex) {
            Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
        }

        Console.ReadLine();
    }
}

}

# Connect()
Status:   Connecting to ***:21
Response: 220 (vsFTPd 3.0.2)
Status:   Detected FTP server: VsFTPd
Command:  AUTH TLS
Response: 234 Proceed with negotiation.
Status:   FTPS Authentication Successful
Status:   Time to activate encryption: 0h 0m 0s.  Total Seconds: 0.1585755.
Command:  USER ***
Response: 331 Please specify the password.
Command:  PASS ***
Response: 230 Login successful.
Command:  PBSZ 0
Response: 200 PBSZ set to 0.
Command:  PROT P
Response: 200 PROT now Private.
Command:  FEAT
Response: 211 End
Response: 211-Features:
Response: AUTH TLS
Response: EPRT
Response: EPSV
Response: MDTM
Response: PASV
Response: PBSZ
Response: PROT
Response: REST STREAM
Response: SIZE
Response: TVFS
Response: UTF8
Status:   Text encoding: System.Text.UTF8Encoding
Command:  OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Command:  SYST
Response: 215 UNIX Type: L8
Status:   Auto-detected UNIX listing parser
Connected!!!!

# GetWorkingDirectory()
Command:  PWD
Response: 257 "/"
The working directory is: '/'
IsConnected - True

# GetListing("/", SizeModify)
Command:  TYPE I
Response: 200 Switching to Binary mode.

# OpenPassiveDataStream(PASV, "LIST /", 0)
Command:  PASV
Response: 227 Entering Passive Mode (192,168,6,90,120,121).
Status:   Connecting to ***:30841

NOTE: about a 5-10 second delay here

Status:   Disposing FtpSocketStream...
Timed out trying to connect!
   at FluentFTP.FtpSocketStream.Connect(String host, Int32 port, FtpIpVersion ipVersions)
   at FluentFTP.FtpClient.Connect(FtpSocketStream stream, String host, Int32 port, FtpIpVersion ipVersions)
   at FluentFTP.FtpClient.OpenPassiveDataStream(FtpDataConnectionType type, String command, Int64 restart)
   at FluentFTP.FtpClient.OpenDataStream(String command, Int64 restart)
   at FluentFTP.FtpClient.GetListing(String path, FtpListOption options)
   at TryFLuentFTP.Program.Main(String[] args) in C:\DiabesityInstituteProjects\Solutions\DiabesityLabResultProcessing\TryFLuentFTP\Program.cs:line 44

The Linix is Redhat and the FTP server is sftp.  It is a new install but I don't know version level, release.

More info:
The server is vsftpd is version 3.0.2 and supports SSLv3 and TLS 1.2

I noticed something in the log, the line "Status:   Connecting to ***:30841." when I try GetListing()
Why is it doing this when I am already connected to port 21?
I get something similar if I use EPSV.
Regardless of PASV or EPSV, the port is always different in that line.
Out of curiosity, is FluentFTP being maintained any more?

This works for me.  I found that I sometimes have to retry and eventually it works.
using System;
using System.Security.Authentication;
using System.Diagnostics;

using FluentFTP;

namespace TryFluentFTP
{
    class Program
    {
        static void Main(string[] args)
        {
            int tryCount;

            FtpTrace.AddListener(new ConsoleTraceListener());

            FtpTrace.LogUserName = false;   // hide FTP user names
            FtpTrace.LogPassword = false;   // hide FTP passwords
            FtpTrace.LogIP = false;     // hide FTP server IP addresses

            try
            {
                FtpClient client = new FtpClient("ftp server", "username", "password");
                client.EncryptionMode = FtpEncryptionMode.Explicit;
                client.SslProtocols = SslProtocols.Tls12;

                client.DataConnectionType = FtpDataConnectionType.EPSV;                            //PASV;

                client.DownloadDataType = FtpDataType.Binary;

                client.ValidateCertificate += (c, e) => { e.Accept = true; };
                client.Connect();

                Console.WriteLine("Connected!!!!");

                Console.WriteLine("The working directory is: " + client.GetWorkingDirectory());

                tryCount = 0;
                do {
                    try
                    {
                        FtpListItem[] list = client.GetListing(client.GetWorkingDirectory());
                        // FtpListOption.Modify | FtpListOption.Size);
                        foreach (FtpListItem li in list)
                        {
                            Console.WriteLine(li.Type + " " + li.FullName);
                        }
                        tryCount = int.MaxValue;
                    }
                    catch (FtpException ex) {
                        Console.WriteLine(ex.Message);
                        tryCount += 1;
                    }
                    catch (System.IO.IOException ex)
                    {
                        Console.WriteLine(ex.Message);
                        tryCount += 1;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        tryCount = int.MaxValue;
                    }
                }  while ( tryCount < 8 );
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
            }

            Console.ReadLine();
        }
    }
}

Is this issue still active?
# OpenPassiveDataStream(PASV, "LIST /", 0)
Command:  PASV
Response: 227 Entering Passive Mode (192,168,6,90,120,121).
Status:   Connecting to ***:30841

NOTE: about a 5-10 second delay here

Status:   Disposing FtpSocketStream...
Timed out trying to connect!

Connecting to the server by opening a data connection on the advertised port fails.
Firewall?
Routing?


analyzer verbose flag should be false in examples

Should we reconsider enabling the verbose flag by default btw? When I saw the info diagnostic show up, it was kind of annoying to see all the time.

It already defaults to false.

... But would be better to leave the property out of the examples config file completely (they won't normally be needed, but can still be found via intellisense).


get_all_by_application(self, name) returning wrong app

This is returning the wrong app id and therefore the wrong devices. I assume this is because I'm an admin and my app name matches someone else on staging? @nghiant2710

@craig-mulligan, you're correct. As an admin, you can access all devices and they can have the same name. In the next PR, I will change all the name args to uuid


pull request for e2e test at 01/31/2017 02:15:12

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Added ITypeComp, DESCKIND, BINDPTR definitions, and size/alignment te…

Added ITypeComp, DESCKIND, and BINDPTR definitions to oaidl.rs.
Added size/alignment tests for new definitions(and IRecordInfo that I added previously.)
Used WinSDK header from path:  WindowsKits\10\Include\10.0.17134.0\um\OAIdl.h

Understood.


[Feature] Set position sticky to the basket

Set position "sticky" to the basket component so it follows the scroll when user scroll down.

fixed with https://github.com/podkrepi-bg/frontend/pull/861 from @ilievZlatko