refactor codeAsInSource to not require command + fix nbJs bug fixes

This aims to solve #134 by changing the way nimib tries to find the start of a code block. This is mostly due to solving a bug that stopped us from getting the accurate start position.
TODO:

[x] The nbCode might not be in the main file, so we must use the filename from lineInfo to get the file. Currently, we only have nb.source with the current file, but we need to handle this case:

# File A.nim
template hugoSlides() =
  nbCode:
    echo "Hello world"

# File B.nim
import A

hugoSlides()

B.nim is the main file in this case, but the source is in A.nim. I'm thinking about adding a nb.sources: Table[string, string] so that we can at least cache the files that we open.

[x] Test this rigorously, all tests and docs are building without error. But I haven't verified that the docs are correct  yet.

[x] Check nimib docs
[x] Check scinim/getting-started
[x] Check nimiSlides
[x] Check nimConf2022
[x] norm
[x] Snorlogue

This also fixes #167 and #164 by adding a check so nimib doesn't compile an empty nim file if no nbJs was used. And the temporary js file created now has a unique name for each file, so parallel builds should be safer now.

From a quick look at the docs, it looks like this new approach is actually working :confetti_ball: And if there would appear any edge cases, it is trivial to fix most of them by adding code in either startPosNew or findStartLineNew.
There is a list of all node kinds here but I don't even know what half of them means or what code looks like that produces them. So I'm leaning towards letting our users find out for us in the future which more ones actually require handling :rofl: I will go over all existing nimib uses I can find though, so I might still find new edge cases. Other than checking that, this PR is basically done implementation-wise. :o That was easier than I thought just a week ago :sunglasses:

Good job! I guess there are a few lines of code that can be removed before merging?

It depends on if you want to keep the old codeAsInSource around behind a flag or if we should just delete it?

Ok, I have hit some trouble... It was too good to be true :upside_down_face:
It has to do with templates and the fact that they transform the AST into typed. If we have a nbCode in a template:
template foo() =
  nbCode:
    nb.renderPlans["nbText"] = @["mdOutputToHtml"]

then it will have a different AST compared with a "raw" nbCode:
nbCode:
  nb.renderPlans["nbText"] = @["mdOutputToHtml"]

# "raw" version AST
StmtList
  Asgn
    BracketExpr
      DotExpr
        Ident "nb"
        Ident "renderPlans"
      StrLit "nbText"
    Prefix
      Ident "@"
      Bracket
        StrLit "mdOutputToHtml"

# template version AST
StmtList
  Call
    OpenSymChoice 31 "[]=" # this causes the trouble!
    DotExpr
      Sym "nb"
      Ident "renderPlans"
    StrLit "nbText"
    Prefix
      OpenSymChoice 3 "@"
      Bracket
        StrLit "mdOutputToHtml"

In the "raw" untyped version, we will get the position of nb, but in the template version we will get the position of []= instead. And this is only a problem because the compiler shuffles around the order of the nodes when going from untyped to typed. And my code currently always takes the first node, because I thought it would always be the case that the first node also came first in the source.
I am not sure how to solve this at the moment, and this is mostly for my own memory before going to bed. Options:

Analyzing the AST to see if it is typed. But it is the fact that the function in this case is a kinda infix function that trips us up. And then we would need to write logic to determine if a given function ([]= in this case) is infix or not. And if it is, skip it.
Make the "command"-finding code better so we don't have to use the column information at all. The downside of this is that we have to make assumptions on the code...

Very interesting anyway. With this notes little by little I can hopefully understand more about this stuff. It seems the problem is in this Open Choice nodes. Is it possibile to just skip those and consider the first node that is not open choice? Or do we have cases where the open choice node would be the correct pick?

Another option, if we just go over all nodes and take the minimum of lineinfo?

It's not really the openChoice node that is the problem, even if it was just a sym we would have the same problem as the []= comes before nb in the AST. So the problem really is that the "infix" (it isn't an infix but is kinda similar) proc is transformed to a nnkCall. This only seems to happen with special procs though, like []=. Will have to investigate more which other construct behaves like this as well. Then it could be feasible to just check if the call is for one of these fake infix procs.
The search for the minimum could work :o we just have to make sure we don't get AST from somewhere else as well. Then we could get weird behaviors.

we just have to make sure we don't get AST from somewhere else as well

in the lineinfo object there is also the filename, right? we could use that to make sure we take the minimum conditioned on the correct file (if we actually are able to know which is the right one...)

over all nodes

and I guess if we have a StmtList we might need only to go over all nodes in the first statement, I guess statements should not be mixed up...

Regarding lineinfo, how do we know which filte of the correct one? A majority vote? (That would be in favour of the l file with longer code) And even if we get the correct file, if we use nnCode inside a template, the template will have a lower line number than the call to it.
But if we assume the file is correct, your idea is quite similar to what we are already doing. With the adddition of checking all childs of all nodes except nnkStmtList. And taking the minimum. I will try this out when I get some time :) thanks for the ideas! 😁

Regarding lineinfo, how do we know which filte of the correct one?

Not sure if it works but we could probably use as source of truth the file set through nbInit (which can be overriden by the user if they know better, for example the override is used by nimibook to render plain markdown files):
https://github.com/pietroppeter/nimib/blob/ad0e44beb926f8b1348ad3146dd1ec491e1da436/src/nimib.nim#L26

That is a good idea, most of the time the code we read will be from the end-user and not the libraries (why would they show their code :P). :smile:
Will give this a try this evening.

Not sure if it works but we could probably use as source of truth the file set through nbInit (which can be overriden by the user if they know better, for example the override is used by nimibook to render plain markdown files):

One problem with this idea: we don't have access to nb.thisFile at compile time so the macro can't use it. I guess we could save all the lineInfos of all the nodes and try and inlining them at runtime, but at that point it becomes much harder for a hypothetical advantage. I'd say we wait for the first bug report and the nature of that code before we complicate things here.

Ah right this is compile time!

I haven't looked everywhere but this passes all tests so we might not need to know the actual file. The only time we get problems is if someone tries to do this:
template foo(body: untyped) =
  nbCode:
    echo "This line will be the one found"
    body

but I'm not really sure why one would do something like that either.

I have now gone over the majority of the nimib code I could find and found one minor bug. But I think this is ready a merge after I clean up the code tomorrow. Please have a look yourself and see if you can find any edge cases. Otherwise we'll tag a new release in the weekend.

ok, looks good thanks, I will review this (possibly later this evenining). I think this PR also fixes #167 and #164 and we should mention that in the title. also not sure if there is anything to document here, at the very least we should add some changelog lines, and I guess also bump version, since after this is merged we should release a new 0.3.x

if you want after this you can merge and release!

Thank you :D
I will let this sit for the night and merge and release it first thing tomorrow :)

During the night I was thinking about the assert filename thing. Maybe a warning is better? If it happens to someone in a harmless way we might not want make nimib useless... not sure about this either though (an assert feels correct)

The only scenario where it's harmless is if it's on the exact same line in both files (or on adjacent whitespace lines), so I wouldn't exactly say that there are any realistic harmless cases. So I think it's better that we shout at them and investigates it rather than a silent bug (I rarely reas hints and warnings 🙊)

Ok, it's also harmless if the line number in the incorrect file is larger than the correct file. But that's just a 50% probability. The other 50% of the times you would get an undefined behavior that depend on how you structure another file. Imagine this scenario: you write and check your nbCode output and it's correct and you never expect to have to update it again. Sometime in the future you refactor the incorrect file and trigger the bug. But if you don't explicitly check the nimib document (why would you, it was correct and you haven't changed it), this bug would silently creep into your document.

ok, let's keep the assert. but this implicitly means that we do NOT expect to have code from different files, otherwise we should have a way to deal with that and not run in the assertion error. what could be the logic we use? first node is authority for filename (and we compare only with nodes with same filename) unless we explicitly override? do you think it could make sense to test again with the assert the different documents? or to try and actively create a case where we do expect to have different filenames? I am not entirely sure this can indeed happen, never tried... also, should it be a doAssert so that it still checks in release mode?

The case when we run into trouble is when we have in file A a template with a nbCode which both inputs the body it gets as input, but also a piece of code of it's own:
template foo(body: untyped) =
  nbCode:
    body # code from file B
    echo "Hello world" # file A

And then in file B:
foo:
  echo "Code from file B"

Except for this kind of use-case, I don't currently see any way for the assert to be triggered. And what would be the correct code to show in this case? Of course we would like to combine the code from both files ideally. But what if the template is defined in file B instead, then we want to comine two different code blocks from the same file. And how we would differentiate between those is even harder.
So until we have a solution for these problems, I would say any usecase which triggers the assert is unsupported by codeAsInSource and should use codeFromAst instead. Giving the nodes authority based on order makes no sense as it depend on the order you put the statements in foo in. Better to be strict about this and just say it's not supported imo.
I can run through all the nimib documents and check so they don't assert 👍 If I recall correctly, asserts are only removed in danger mode. Release mode previously removed them but I think it was changed quite a while ago. But I'll change it to doAssert just in case 👍

I have improved the error message now and tested it against all the nimib documents. And no assertions were raised.

the more I think about it, the more complex it looks. :)
This PR is anyway definitely an improvement and it seems it does not break anything so let's go!

Yes exactly, this is an improvement to the current. Merging and releasing now. Let's rerun the CI over on the nimibook repo when it's done!


chore(release): v1.0.0 🎉

:robot: I have created a release beep boop
1.0.0 (2024-11-29)
Features

init: initialize based on uni-time (8db8ce5)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ehmpathy/uni-phone/releases/tag/v1.0.0 :sunflower:


playground stuck on start

This issue pertains to the following package(s):

[ ] GraphQL Playground - Electron App
[ ] GraphQL Playground HTML
[* ] GraphQL Playground
[ ] GraphQL Playground Express Middleware
[ ] GraphQL Playground Hapi Middleware
[ ] GraphQL Playground Koa Middleware
[ ] GraphQL Playground Lambda Middleware

What OS and OS version are you experiencing the issue(s) on?
mac
10.14.3 (18D109)
What version of graphql-playground(-electron/-middleware) are you experiencing the issue(s) on?
1.8.9
What is the expected behavior?
pop up a window to let user choose url/local file
What is the actual behavior?
never pop up the window
What steps may we take to reproduce the behavior?
open graphql playground
Please provide a gif or image of the issue for a quicker response/fix.

seem like CDN is down, I have interview tomorrow, what a bad timing

Also seeing as well, locally and on production environments.

I'm seeing the same as @garythung.

BTW reinstall does not help

Are you having the same problem?

same

Hi @CreatCodeBuild!, what error messages do you have in the browser console?

It's the electron app and it's only on Mac. Windows works fine.

@CreatCodeBuild Thank you for information. Could you tell me if there are any error messages in the console in the Electron's developer tools?

@yoshiakis I'm having the same issue as @CreatCodeBuild. Here is the error output I'm seeing:
app.52474f40a85b8b9c3215.js:85086 TypeError: Cannot read property 'get' of undefined
    at app.52474f40a85b8b9c3215.js:13764
    at app.52474f40a85b8b9c3215.js:11560
    at app.52474f40a85b8b9c3215.js:11520
    at app.52474f40a85b8b9c3215.js:11574
    at app.52474f40a85b8b9c3215.js:11520
    at app.52474f40a85b8b9c3215.js:11570
    at Function.mapToProps (app.52474f40a85b8b9c3215.js:11520)
    at mapToPropsProxy (app.52474f40a85b8b9c3215.js:12913)
    at Function.detectFactoryAndVerify (app.52474f40a85b8b9c3215.js:12922)
    at mapToPropsProxy (app.52474f40a85b8b9c3215.js:12913)
    at handleFirstCall (app.52474f40a85b8b9c3215.js:13044)
    at pureFinalPropsSelector (app.52474f40a85b8b9c3215.js:13085)
    at Object.runComponentSelector [as run] (app.52474f40a85b8b9c3215.js:11903)
    at Connect.initSelector (app.52474f40a85b8b9c3215.js:12062)
    at new Connect (app.52474f40a85b8b9c3215.js:12000)
    at Wf (app.52474f40a85b8b9c3215.js:85043)
Hg @ app.52474f40a85b8b9c3215.js:85086
app.52474f40a85b8b9c3215.js:85126 Uncaught TypeError: Cannot read property 'get' of undefined
    at app.52474f40a85b8b9c3215.js:13764
    at app.52474f40a85b8b9c3215.js:11560
    at app.52474f40a85b8b9c3215.js:11520
    at app.52474f40a85b8b9c3215.js:11574
    at app.52474f40a85b8b9c3215.js:11520
    at app.52474f40a85b8b9c3215.js:11570
    at Function.mapToProps (app.52474f40a85b8b9c3215.js:11520)
    at mapToPropsProxy (app.52474f40a85b8b9c3215.js:12913)
    at Function.detectFactoryAndVerify (app.52474f40a85b8b9c3215.js:12922)
    at mapToPropsProxy (app.52474f40a85b8b9c3215.js:12913)
    at handleFirstCall (app.52474f40a85b8b9c3215.js:13044)
    at pureFinalPropsSelector (app.52474f40a85b8b9c3215.js:13085)
    at Object.runComponentSelector [as run] (app.52474f40a85b8b9c3215.js:11903)
    at Connect.initSelector (app.52474f40a85b8b9c3215.js:12062)
    at new Connect (app.52474f40a85b8b9c3215.js:12000)
    at Wf (app.52474f40a85b8b9c3215.js:85043)

@br-keifer Sorry for replying late. I guess that error is happening because your local storage state for playground is invaild. Can you clear the local storage for playground?

I had same issue in express , typescript , apollo-server-express.
fixed by this :
import { ServerRegistration } from 'apollo-server-express'
server.applyMiddleware({ app, path: '/__graphql' } as ServerRegistration)

in my case , seems problem related to typescript types . and FIXED after that .


clipper asks for SSH password

When i connect to clipper, even though i am providing the SSH key, clipper still asks for the password. This only happens once.
cm.Clipper(host, user, key)

Maybe something to do with Fabric api? I am not logging in as root, but the user has sudo permission

Does it ask for the login password or the SSH key password? If the ssh key is password protected, the underlying Python SSH library will prompt for your password.

No. Its asking for the login password. Maybe its because you are running all remote commands as sudo?

Oh yeah that's likely it. We've mostly tested this on AWS where the default Ubuntu instances don't require a password for sudo. The problem is that the Docker commands require sudo, so it's independent of SSH access. Did this break things for you?

Oh i see. We mostly run docker without sudo privileges
https://github.com/sindresorhus/guides/blob/master/docker-without-sudo.md
It didnt break anything. Just that i didn't want to expose superuser in our python code when connecting to clipper.
The other option is adding the user to visudo to require NOPASSWD, which may be a security risk. Am not sure what is the right thing to do here. But would really wish that connecting to clipper can be seamless,  as long as the user has the privileges to the server.

Yeah that totally makes sense. What if we modified clipper_manager so that you could specify whether sudo privileges were needed? If you're running Docker without sudo, then I don't think anything we do would need sudo privileges.
Something like:
clipper = clipper_manager.Clipper(host, user, keypath, sudo=False)

Awesome. That will be great 👍  . Thank you.

I just filed https://clipper.atlassian.net/browse/CLIPPER-135 to track this.


small showNumRows breaks the table

go to http://samui.kipase.com/index3.php with Firefox 36.0.1
showNumRows is 5 and the Total column drops under the table

also breaks in Chrome 40.0.2214.115 m

I haven't used this many columns before, will need to check this out

Still haven't figured out why the max visible rows is always 7? No matter what showNumRows you use. It is a pain to scroll in an iPhone when the scrollbar is also bugged. Right side of the scrollbar is not selectable

the max nRowsShowing is the number actual rows to send to the browser. The problem you're seeing (which is not the subject of this ticket) is the CSS height of the grid.  Changing the nRowsShowing just changes the number of data rows sent, not the rows visible to the user, to adjust the height of the grid use css


Why use "unfold" to transfer shape of token_logits from (B, C, H, W) to (B, C, 9, H, W) ?

Hi @whiteinblue , it's an efficient implementation of the "painting" process described in Eq.6. For each output pixel, we are actually aggregating the predicted token logits of the regions around it. Please refer to the discription in Section 4.3. Feel free to leave comments if you have further questions.

Thanks for your reply,  the region you explained is a regular 33 grid  patch feature from spatial token features, which correspond a hw pixel patch. Look backward, every pixel  in hw patch,  you use Q^T  to aggregate pixel info to generate regular 33 spatial token features. So the implict regions is not irregular regions like superpixel, just a 3*3 patch. understand right?

That's not correct. The affinity map its self describe the geometrics of the regions, it's not about aggregating pixel information and it does not contain semantics (it's class-agnostic). For your "implicit regions" comment, the tokens do not imply region geometrics, so there is no "implicit regions". In short, the "region" includes two parts: its geometrics described by affinity, and its feature encoded as tokens.
For the last sentence of your comment, note the region is concrete. Although it's soft, it can be quantized and visualized (see Figure.6 & Figure.8).

I see, Thanks


Update nan and node version for node 10 compatability

Updated nan and node version in order for node 10 compatability.

Thank you!


Document directories for caching in CI

I was reading the CI documentation https://doc.rust-lang.org/cargo/guide/continuous-integration.html
and I was unable to find what directories I should be able to cache, specifically I was interested in the ones that contain dependencies. I've come up with this, and am using github CI, but I don't need documentation for every CI system out there, just documentation for what directories to/can be safely cached.
on:
  push:
    paths:
    - '**.rs'
    - '**.toml'
    - Cargo.lock
    - .github/**
name: build
jobs:
  check:
    name: Rust project
    runs-on: ubuntu-latest
    env:
      CARGO_TERM_COLOR: always
    steps:
    - uses: actions/checkout@v2
    - uses: actions-rs/toolchain@v1
      id: rust-toolchain
      with:
        toolchain: stable
        profile: minimal
        components: rustfmt, clippy
    - uses: actions/cache@v2
      with:
        path: |
          ~/.cargo
          target/debug/deps
          target/debug/build
        key: ${{ steps.rust-toolchain.outputs.rustc_hash }}-${{hashFiles('Cargo.lock')}}
    - run: cargo fmt --all -- --check
    - run: cargo check --all
    - run: cargo clippy --all
    - run: cargo build --all
    - run: cargo test --all

Thanks for the report!  Yea, it is unfortunately not well documented.  I suspect your example might have issues, since it is missing things like the fingerprints.
I'm going to close this as a duplicate of #7757  (and also #5656 and #8841).

I never said mine was a good configuration, hence the need for documentation ;)


Low-level compression

This is more a question than an issue, but I wasn't sure where else I should ask it. I'm using the low-level API to compress 3D fields. Thing is I cannot easily tell the exact dimensions of that field in advance (and thus also don't know how many blocks it'll give me, I determine that on the fly).
I pulled out a minimal sample out of my app, to illustrate the issue I'm running into / where I'm presumably misunderstanding how to use the API:
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <zfp.h>

typedef float Block[64];

size_t encode(float* out, Block* blocks, size_t numBlocks) {
#if 0
    unsigned minbits = 0;
#else
    unsigned minbits = 1024;
#endif
    unsigned maxbits = minbits;
    unsigned maxprec = ZFP_MAX_PREC;
    int minexp = ZFP_MIN_EXP;

    size_t bufsize = numBlocks*sizeof(Block); // enough scratch space
    void* buffer = malloc(bufsize);
    bitstream* stream = stream_open(buffer,bufsize);
    zfp_stream* zfp = zfp_stream_open(stream);
    zfp_stream_set_params(zfp,minbits,maxbits,maxprec,minexp);
    size_t bits = 0;
    for (size_t i=0; i<numBlocks; ++i) {
        bits += zfp_encode_block_float_3(zfp,blocks[i]);
    }
    size_t bytes = (bits+7)/8;
    memcpy(out,buffer,bytes);
    stream_flush(stream);
    stream_close(stream);
    zfp_stream_close(zfp);
    free(buffer);
    return bytes;
}

void decode(Block* blocks, size_t numBlocks, float* in) {
    size_t bufsize = numBlocks*sizeof(Block); // enough scratch space
    void* buffer = malloc(bufsize);
    bitstream *stream = stream_open((void*)in,bufsize);
    zfp_stream *zfp = zfp_stream_open(stream);
    size_t bits = 0;
    for (size_t i=0; i<numBlocks; ++i) {
        zfp_decode_block_float_3(zfp,blocks[i]);
    }
    stream_flush(stream);
    stream_close(stream);
    zfp_stream_close(zfp);
    free(buffer);
}

int main(int argc, char** argv) {
    Block raw[2];
    for (int i=0; i<64; ++i) {
        raw[0][i] = (float)i;
        raw[1][i] = (float)i*2;
    }
    float* buf = malloc(2*sizeof(Block));
    size_t s = encode(buf,raw,2);
    Block zfp[2];
    decode(zfp,2,buf);
    for (int i=0; i<64; ++i) { printf("%f\n",zfp[0][i]); }
    for (int i=0; i<64; ++i) { printf("%f\n",zfp[1][i]); }
}

So in main I'm just encoding and then decoding two blocks, and the #if 0 allows me to switch between fixed-rate and variable-rate compression.
I'd expect the program to print two sequences of non-zero floats. And it actually does with variable-rate compression. When I switch to fixed-rate, however, I find that the 1st block prints as desired, while the 2nd block gets decompressed into all zeros.
I wonder if I'm missing something obvious which causes the two different behaviors. Note that with variable rate I'm able to properly encode and then decode a large, 2.5GB data set (but I'll eventually need random access and thus fixed-rate compression).
Any tips what I might be doing wrong are very much appreciated, and sorry for asking such a general question here on the issue tracker.

I see a few issues here:
First, you should not compute bytes = (bits+7)/8 before calling stream_flush(), because you also need to copy any bits buffered by zfp in whole words (not just whole bytes).  Instead, use bits += stream_flush(stream); before counting the number of bytes written.
Second, you have not set the compression parameters in decode() via zfp_stream_set_params().  They need to be the exact same parameters used in encode().  zfp can help you here if you're willing to write and then read a header, which will ensure that encoder and decoder use the same compression parameters.
Third, in variable-rate mode, you should not set maxbits = 0.  Instead, use maxbits = ZFP_MAX_BITS.  And it's possible (albeit unlikely) that the size of the compressed output exceeds the size of the input, so call zfp_stream_maximum_size() after setting the compression parameters to give you a conservative estimate of how much memory is needed for the compressed stream.
Some other minor issues: float* out is not an appropriate type for the compressed data, which is a raw set of bits (not floats).  I would suggest void* instead.  Also, buffer is allocated in decode() but not used.

Awesome, that helped me! Thank you!
In retrospect, I'm a bit embarrassed because the issue with setting the compression parameters in decode() as well is kinda obvious - whereas adding the output of stream_flush() wasn't and that would definitely have gone unnoticed by me. In regards to setting compression parameters, I guess where I was coming from is that image formats such as JPEG or PNG would carry that information along, and libjpeg or libpng only require you to set that on encode(). But yeah, totally obvious, especially with the fixed-rate format that, iiuc, only stores per-block information.
In regards to the minor issues, those are just leftovers from porting my application and accidentally snuck into the sample (although I later also debated if what I was seeing was an alignment issue related to using float* here).
Closing this issue, and again thanks a lot!

Having to specify the compression parameters during decompression is indeed unusual, but because zfp supports compressing very small blocks individually--especially via the low-level interface--it is a necessity.  By supporting headers as an optional feature, you can always embed such information when you need it.  The need to flush streams is not uncommon, but it's easy enough to forget to count those bits.  Glad things are working now.


Editor issue collection

Happy to create an issue for each if that is better but didn't want to spam the issues

When in light mode the gutter paints the gutter number funny

(In the editor example)

- let editor_a = text_editor("Hello World!").styling(SimpleStyling::dark());
+ let editor_a = text_editor("Hello World!").styling(SimpleStyling::light());

The cursor of the editor always blinks even when not in focus
The editor seems to ignore request_focus()
The editor ignores style function (should either remove it which is hard with Decorator or support it?)
keyboard_navigatable is being ignored
The Caret changes width depending if it's on a new line or has text
I see no way to actually change anything besides color in the editor like caret width etc
Not sure how you'd move focus away from the editor once you're in it with keyboard alone
Should probably also support placeholder()?
on_event or any other event functions are not called. Instead the update function is used which is pretty inconsistent
Line wrap seems to be off by a few pixel

The cursor of the editor always blinks even when not in focus
The editor seems to ignore request_focus()

Yeah, it isn't handling FocusGained/FocusLost like the original text_input does. It should be changed to support that somehow.
I didn't think of those events when implementing it, so it should be simple to make the default implementation of 'should_blink` use that.

The editor ignores style function (should either remove it which is hard with Decorator or support it?)

Part of the issue is that we want more complex styling for some applications, like syntax highlighting, and you can't just style an individual piece of text or a line as a view.
But I think it should be possible to have SimpleStyling just default to the (for example) color given to the editorview, since it would merely have a constant color anyway. Though I'm not sure of the right way to pass that information to the Editor itself.
(I presume stuff like color, font family information, and background color are what you're referring to here, since it works with style functions like width_full)

keyboard_navigatable is being ignored

(TODO: i'm confused)

The Caret changes width depending if it's on a new line or has text

fun

I see no way to actually change anything besides color in the editor like caret width etc

I don't know everything people want to customize (admittedly didn't even think of caret width as one of those things), but a lot of it is just "hasn't been hooked up yet". Any other things that should be hooked up to be changeable?
(Though for some large changes like Lapce adding to gutter/scrollbar/etc, it turns into a 'just redeclare the view'. Though there's changes that can be made to make redeclarations easier, so it doesn't have to duplicate all the code in gutter or whatnot)

Not sure how you'd move focus away from the editor once you're in it with keyboard alone

Probably need some way to easily add basic keyboard handling events to the editor.

Should probably also support placeholder()?

Yep, shouldn't be hard.

on_event or any other event functions are not called. Instead the update function is used which is pretty inconsistent

Hm, yeah adding them as normal events would make some of that cleaner & more consistent.
Though I dislike having it as an event with all the others in that enum, since it is specific to the editor.
(Possibly .on_event should take a generic like .on_event::<PointerLeave> which would allow us to avoid the if let Some unwrapping even though it would always be the right event. Implementing that in a fancier way could allow arbitrary events)
on_event not being called for normal events shouldn't occur however, though I'm not immediately sure what would cause that. (Doing .on_event(EventListener::PointerDown doesn't seem to be ran if I use it on a text_editor view...)

Line wrap seems to be off by a few pixel


Upgrade discord bot to (optionally) use application or "slash" commands instead of a command prefix

G-Diffuser-Bot could also use a little hardening w.r.t downloading user attachments and server role membership checking. Currently these are handed fine, but nonetheless could be improved.
I'm attaching this to the same issue because the core issue is not using parts of the modern discord python module in places where I could be.


Normalize queries that contain anonymous functions

Queries that contain anonymous functions cause issues with equality for sharing query results and for defining a query whitelist. This is because the numerical var ids increment each time the same query is generated in the RethinkDB driver. Let's normalize the var ids so that these queries are treated deterministically.
More details in this comment:
https://github.com/mikemintz/react-rethinkdb/blob/67a7c437d4eb55aba12d00195a9702b6d76457ca/src/QueryRequest.js#L37-L49

This isn't perfectly deterministic for queries with anonymous functions, since the variable identifier keeps incrementing when we create new "identical" queries.
E.g. r.table('turtles').filter(x => x('herdId').eq(props.herdId))
It looks like the RethinkDB JavaScript driver has to maintain a global nextVarId counter which can increment between the creation of identical queries. This is probably necessary so that queries that contain multiple functions won't have overlapping var ids. One possible approach is to "normalize" var ids as a query preprocessing step: replace each var id with an index in which that var id was first seen in the query. Further research needs to be done to determine if that is safe.  This approach has a disadvantage of being harder to debug query issues when queries are being altered.

It looks like this should be safe to do if we replace VAR terms and FUNC argument terms the same way. Documentation in the "anonymous functions" section of http://www.rethinkdb.com/docs/writing-drivers/

Let's be careful not to break query reuse when we normalize queries. For example:
var q1 = r.table('turtles').filter(x => x('color').eq('green'));
var q2 = r.table('shells').filter(x => x('color').eq('green'));
var q3 = q1.eqJoin('shellId', q2);

If the client uses all three queries in a component, then we'd normalize all of them. If we normalize by mutating the queries in-place, then q3 may have two var ids called 1. Ideally we'd only normalize for internal copies, but there doesn't seem to be an easy way to clone queries.


Replaced WebL10n with i18next in FoodChain activity

fix issue #1378
Replaced Code in FoodChain Activity to l10n
@llaske , could you please review it

There is an error on launch of the activity

@llaske sir can you review it

Nice @soham2312, thanks


Added Airbnb TwoSum implementation in C++

@jenistenxavier @sauravjaiswalsj Issue: #478
Hey,
Kindly add Hacktoberfest tag and merge my PR.
Tasks:
C++ solution
Along with explanation

Thanks for contributing!


Add alt text to images in Components & Docs

@mrmrs Updated files in src/ this time. I didn't include the generated files in this PR but let me know if I should.

@mrmrs Turns out the Example Links in the Docs just needed focus classes.

Looks like there is a merge conflict with this PR now, if you resolve it I can merge. Thanks!

Resolved :)

Thanks!

ACCESSIBILITY!!! This makes me so excited.
Sent from my iPhone

On Mar 23, 2016, at 11:19 PM, John Otander<EMAIL_ADDRESS>wrote:
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub


Various improvements

This PR is based on an old branch which was started by @jcohenadad . As I am cleaning up the stale branches, I'm opening this PR because the branch contains useful work that should not be discarded forever. One day someone will take over this PR hopefully...
Fixes #2165

Closing, as the bulk of the changes from this PR were actually implemented in #2157.
(See also #2984 for related efforts.)


sendAsFixedLength() relies on InputStream.available() to know how much data to send

This seems to be a bug in the implementation.
The java documentation for InputStream says "Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream."
This indicates that the value shouldn't be relied on when reading an input stream. However, in sendAsFixedLength(), data.available() is used to determine how much data to read. I think the fix would be to use read() until it returns -1, indicating that there is no additional data.
The specific InputStream I'm seeing this error with is org.apache.http.conn.EofSensorInputStream, which is returned when doing Http Requests.

Welp. Searched hours to find this as the source of a mysterious bug. If the Response constructor with an InputStream is used, chunkedTransfer should be set to false. Relying on undocumented hacks and implementation details does not seem like a good idea...

Same as #94


Keyboard doesn't show up automatically in Android API 28

In Android APIs prior to 28, when you press the "OPEN ACTIVITY" button, the keyboard shows up automatically and the user can begin typing immediately. However, in API 28 the user has to click the search bar before they can begin typing. This is clearly an inferior user experience.

Please open a bug for this in the Issue Tracker for the SDK.
https://issuetracker.google.com/bookmark-groups/76561


WSO2-IOT 3.3.0 : Error while reading the registry on Geofencing

Description:
Error in the iot-server.sh terminal and Geofence web console of WSO2 IOT Devicemgt
Suggested Labels:
server wso2-iot, geofence
Affected Product Version:
Wso2 iot 3.3.0
OS, DB, other environment details and versions:
H2
Steps to reproduce:
Install wso2 iot server on linux, customise IP, install geofencing with the procedure : https://docs.wso2.com/display/IOTS330/Applying+Policies+on+Devices+Based+on+Geofencing
Execute server
sh broker.sh
sh iot-server.sh
sh analytics.sh
Related Issues:
[2018-04-18 15:55:56,965] [IoT-Core] ERROR - {org.wso2.carbon.device.mgt.core.geo.service.GeoLocationProviderServiceImpl} Error while reading the registry path: /_system/governance/geo/alerts/Exit/
[2018-04-18 15:55:57,140] [IoT-Core] ERROR - {org.wso2.carbon.device.mgt.core.geo.service.GeoLocationProviderServiceImpl} Error while reading the registry path: /_system/governance/geo/alerts/Within/
[2018-04-18 15:55:57,312] [IoT-Core] ERROR - {org.wso2.carbon.device.mgt.core.geo.service.GeoLocationProviderServiceImpl} Error while reading the registry path: /_system/governance/geo/alerts/Stationery/
![error_geofencing]
Hello,
I can not find why I have this error in the iot-server terminal
Also, I have an error on the web console when I click on Device Locations
Thanks for your help !
(https://user-images.githubusercontent.com/22862175/38936895-1edcec00-4322-11e8-9c20-840a7803d3db.jpg)

Marked as stale ????
As usual, monitoring and resolution is not really there ...

Someone had this problem?

I have this problem too.

Their product is really not under control. There are a lot of bugs ...
Besides, more update for more than a year. A word of advice: do not use!

So which tool we have to use instead of WSO2 IOT?

In open source, there is not much ... See otherwise on the side of GLPI and FLYVE MDM

Look :)  https://github.com/Tofdu31/product-iots-Script


apps/openssl: make index.txt errors more verbose

This is a backport of #15360.
I do not have an executed CLA, but this was a clean cherry-pick from #15360, so I figure it isn't needed in this case because I am not actually contributing any new code.
Checklist

Unfortunately this is a feature and so this is not acceptable for merging into the 1.1.1 branch.

@t8m I'd like to suggest that this is a bug fix not a feature. The lack of any diagnostic output in this failure mode can be fairly troublesome for users of OpenSSL's ca subcommand (and apparently also ocsp and srp). Here's some more detail from the first commit in the original issue, #15360:
If index.txt exists but has some problems (like for example a single \n character in it) openssl will just exit without any error message.

Bug at least expirienced twice: https://superuser.com/questions/1327848/openssl-ca-fails-after-password-without-error-message

For example, here's what we ran into trying to do signing operations (this is a simplified case... in the production case where we ran into this we're using hardware security keys, which made debugging this much more complex since we couldn't tell if the problem was in OpenSSL, OpenSC, or with the hardware security key we were using):
$ X509_KU=digitalSignature,keyEncipherment<EMAIL_ADDRESS>ca -batch -config openssl.cnf -out issued/development.api.pem -infiles issued/development.api.pem.csr
Using configuration from openssl.cnf
$

And to make matters worse, with no diagnostic output it's very difficult to find references to this specific problem online that would hint that index.txt could be the culprit. We ended up firing up a system call tracer (which is unfortunately non-trivial on macOS where we were using hardware security keys) to get us close enough to finding the cause of this problem. I'd love to prevent this problem from tripping up others using OpenSSL 1.1.x, as it's kind of a nasty one if you hit it (especially for someone like me who isn't a regular user of OpenSSL).
By comparison, with the changes in this PR, I get output telling me of what the problem is, broadly:
$ DYLD_LIBRARY_PATH=~/git/openssl _KU=digitalSignature,keyEncipherment ~/git/openssl/apps/openssl version
OpenSSL 1.1.1m-dev  xx XXX xxxx
$ DYLD_LIBRARY_PATH=~/git/openssl X509_KU=digitalSignature,keyEncipherment ~/git/openssl/apps/openssl ca -batch -config openssl.cnf -out issued/development.api.pem -infiles issued/development.api.pem.csr
Using configuration from openssl.cnf
Problem with index file: .//index.txt (could not load/parse file)
$

Question for OTC: feature or bug fix?

I think this is a misplaced fix.  load_index() already has some error handling, and even prints the errors to bio_err at the end.  See for yourselves:
https://github.com/openssl/openssl/blob/c28bcc507be1b035237892181bbbb28383c3f2be/apps/apps.c#L1535-L1599
However, it does look quite incomplete and inconsistent.  The master branch is a bit more developed:
https://github.com/openssl/openssl/blob/f87b4c4ea67393c9269663ed40a7ea3463cc59d3/apps/lib/apps.c#L1610-L1672
So if it were me, I would update load_index() in 1.1.1.
I know that this doesn't answer the question @paulidale asks, and quite frankly, I'm undecided

OTC: This is a feature not a bug fix and therefore not suitable for backport.
Closing.


Cross build bcc docker image for arm64

Hi.
This PR add cross-building the bcc image for arm64 architecture.
To do so, I needed to deactivate lintian check for focal image as there is a bug with perl code it calls where it hangs and I also needed to add bpftool binary for arm64 (as upstream contains bfptool for amd64).
The build takes less than 2 hours, so it will only be triggered when pushing to gadget branch.
The build was already tested and arm64 image were successfully generated:
https://quay.io/repository/kinvolk/bcc?tag=302235e016b9a5255037c9075d28478557c0fc16-focal-release&tab=tags
Best regards.

Thank you for the review!


[BEAM-8410] JdbcIO should support setConnectionInitSqls in its DataSource

This property is very handy for anyone who use MySql and Mariadb, to set any init sql statements to be executed at connection time. Note: but it's not applicable across databases
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---

---
---

Java

Python

---

---
---

XLang
---
---
---

---
---
---

Pre-Commit Tests Status (on master branch)

---
Java
Python
Go
Website

Non-portable

Portable
---

---
---

See .test-infra/jenkins/README for trigger phrase, status and link of all Jenkins jobs.

@aromanenko-dev , I added unit test for fail case (who don't use Maria or MySql). But I think we shouldn't add test for success case (use MySQL or Maria), otherwise, we have to bing in a my mysql/maria jar package. Beside, this property withConnectionInitSqls is very similar to the property withConnectionProperties , which doesn't have any unit tests. Let me know what you think?

I think having a test for failing case should be enough. Please, do just two things before it will be ready for merging:

Jenkins jobs fails because of spotless - run gradlew spotlessApply and before commit to fix it.
Squash commits into one with appropriate commit message.
Hint: run ./gradlew -p path/to/changed/package check every time before pushing to verify that build is green.

LGTM, thanks


Make auto-reconnect optional

But start with default 'on', to avoid breaking old clients that don't have a reconnect mechanism themselves.

Ready for testing in 2.1.0-beta

Works fine.


Add VpcConfig to AWS::Lambda::Function

Enable Lambda functions to access resources in a Virtual Private Cloud (VPC).

Announcement: http://aws.amazon.com/about-aws/whats-new/2016/03/aws-cloudformation-updates-amazon-s3-aws-lambda-and-amazon-emr-resources-support/
Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-vpcconfig

Thanks!


Abbreve forms

What issue are you facing? Missing Abbreviation
Which slang/feature/bug? :WFH
Bug description: Missing abbreviation for WFH

Add 'Work From Home' to database.

I have created a PR for this.


Overzealous defaults?

I got blocked / banned just by using a a browser to access the fastapi openapi docs a few times: "Potential attack detected" and "Suspicious activity detected" from my own browser.
No idea why. Are there some defaults that are overzealous?
Is there any way to unban myself? My IP is whitelisted but that seems not to help. The docs don't clearly say whether giving an IP whitelist always blocks everything else, or...?
Great promise in this package but a bit of rough edges here...
Also, would be nice to be able to give CIDR address ranges to the IP whitelist/blacklist options, and whitelist by country.

Thank you for bringing this to my attention. I see what you mean, the issue you're facing.
I've been checking the code, and I think I found some possible causes for the issue:

Pattern matching -> As you pointed out, some patterns might be producing false positives like in your case with the /docs site.
Whitelist priority -> There's a piece of code that seems not to be respecting the whitelist above other.
UnBan feature -> There's no unban method atm, but it must be implemented.
CIDR ranges -> The current implementation doesn't support CIDR notation for IP ranges in the whitelist and blacklist, but could possibly implement it on the same fix for the above mentioned issues.

I will now proceed with the development and testing of these fixes. I'll keep you updated.
Thanks again for your feedback!

Hi @petri ,
I hope I find you well.
Just wanted to update you on the matter: I've fixed the issues you mentioned and also added the features you suggested.
Please, go ahead and try it out. If you have any feedback, issues, comments or questions, don't hesitate to ask 😄
Here's the new version of the Middleware
Hope you enjoy!


Sheet only generates timestamp not the test itself

When I write any text, it only writes the timestamp every line not the text I wrote how?

Can you give an example of the form you created?

Hi, I am not OP but have a question. I am using your code and adapting it as a way to have a live data connection between javascript and a google sheet. So far so good.

Here i'm makng a question form. With no inout tag. I'm using the textarea tag. Is there a way to also use PHP 2 pages.
HTML
`

Questions

Questions

Ask a Question [BETA]

NOTE: This is a beta version, if you clicked Ask after typing the question in field, the question is not sent. If you want to ask, you will need to ask via Email temporarily. you can help make this quick by sending me tips on how to send it to a spreadsheet, email, etc. via Email.

Go back home

No Questions available yet!
Be the First to ask!
Type the question in the text box then click Ask
or go to FAQ

`
PHP
`

Thank You for your question

Thank You
You asked: $Questions = $_POST['ask-question'];
$Timestamp = new DateTime();
?>

Back to Questions
Go back home

`

@MatthewKeracher if you're still having issues can you open a separate issue?
@Pro70Crazy You can use this method on multiple pages but that requires you to build the HTML on the front-end.


Horizontal rule without newline parsed incorrectly

Using the following code on 2db7ccfb:
use pulldown_cmark::Parser;

fn main() {
    for event in Parser::new("---") {
        println!("{:?}", event);
    }
}

the sequence of events printed is:
Start(Rule)
End(Rule)
Start(List(None))
Start(Item)
End(Item)
End(List(None))

I expected the events to be:
Start(Rule)
End(Rule)

Ending the markdown with a newline emits the expected events.

Ack. Easily reproducible from shell command line:
$ printf -- '---' | ./pulldown-cmark

or e.g.
$ printf '* * *' | ./pulldown-cmark

Thanks for reporting this. We should have a fix for this shortly :-)


improve remove extra layer of heavy work pool in tablet_writer_add_block

Proposed changes
Heavy work pool is causing too many overheads in cpu sys usage (due to context switches).
Remove one extra layer of heavy work pool in tablet_writer_add_block to mitigate this problem.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Character Selection is buggy

Character selection hasn't got the best design and sometimes doesn't work properly.
Redesign completely.

character selection has been refactored with a new UI and new functionality


[Differentiability] Add differentiability to ExtInfo and an @autodiff type attribute

Generalized Differentiability: Add differentiability to function types
This patch is initial progress towards the "Generalized Differentiability" model (documentation coming soon). At a high level, this model enables cross-module differentiation without serialization and expressing high-level mathematical APIs using protocols and differentiable protocol requirements. There are two parts at the function type level.
Implementation
1. Add differentiability to function type attributes
This patch adds differentiability to function types as a 3-bit field in AnyFunctionType::ExtInfo and SILFunctionType::ExtInfo. Differentiability is like Representation, and it has these variants:

None: The function is not known to be differentiable. No differential operators will work on it unless this function's body is available in the current module, in which case the AD system will try to differentiate it.
Forward: The function is forward-mode differentiable. Differentiating this function using a forward-mode differential operator (likely going to be #derivatives(...)) produces a function that computes Jacobian-vector products.
Reverse: The function is reverse-mode differentiable. Differentiating this function using the reverse-mode differential operator #gradient(...) produces a function that computes vector-Jacobian products.
Bidirectional: This function can be differentiated by both #derivatives(...) and #gradient(...).
Linear: This function is a linear map and it can be differentiated by any differential operator. The derivative is always a constant.
Constant: This function is a constant function and it can be differentiated by any differential operator. The derivative is always zero.

There are two remaining steps towards finishing the layout of full differentiability in function types:

Add an optional unsigned integer to represent the function's max differentiation order.
Add a per-parameter flag that indicates whether this parameter is a differentiation parameter of the function.

2. Add an @autodiff attribute on function types.
The syntax corresponds roughly to FunctionType::Differentiability, except for an optional differentiation order.
diff-order ::= 'order' ':' integer-literal
differentiability ::= 'forward' | 'reverse' | 'linear' | 'const' | 'bidirectional'
autodiff-attr ::= '@autodiff' '(' (differentiability ',')? diff-order ')'

For example, here's a linear function:
let f: @autodiff(linear) (T) -> U = ...
_ = #gradient(#gradient(#gradient(f))) // ok!

Here's a forward-differentiable function that is second-order differentiable:
let f: @autodiff(forward, order: 2) (T) -> U = ...
_ = #derivatives(#derivatives(f)) // ok!

When there's no parentheses, an @autodiff attribute implies bidirectional differentiability.
let f: @autodiff (T) -> U = ...
_ = #derivatives(f) // ok!
_ = #gradient(f) // ok!

3. Add a @nodiff attribute on function type parameters.
When @nodiff is used on a function type parameter, the function's @autodiff attribute will not apply to this parameter. When @autodiff is not specified on the parent function, the use of @nodiff is illegal. The attribute AST node is implemented in this patch, but type checking is to be added.
let f: @autodiff (T, @nodiff U, V) -> W
_ = #gradient(f) // (T, U, V) -> (T.CotangentVector, V.CotangentVector)

From your PR description:

Linear: This function is a linear map and it can be differentiated by any differential operator. The derivative is always a constant.

Is it the case that the derivative of linear maps are constant? From my impression, linear maps are functions like transpose.

Is it the case that the derivative of linear maps are constant?

Yes. Linear maps such as transpose and identity all have a derivative that is constant with respect to the original argument. seed is not considered an original argument.

I wonder what the nature of the parsing issues are, it would be nice to resolve them.

Turns out it's a bug. Fixed in
https://github.com/apple/swift/pull/19759/commits/904743786987bccce6221d31484293dcecfd19f4.

@swift-ci please test tensorflow linux cpu

@swift-ci please test tensorflow linux cpu

@swift-ci please test tensorflow linux cpu

@swift-ci please test tensorflow linux cpu

@swift-ci please test tensorflow linux cpu

@swift-ci please test tensorflow linux cpu

@swift-ci please clean test tensorflow

@swift-ci please clean test tensorflow

@swift-ci please clean test tensorflow

@swift-ci please clean test tensorflow

@swift-ci please clean test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow


Now Aspect Targets are Added to AutoProvides

Now modules can auto-expose their aspect implementations for wiring.

add method to ProcessingContext that can find the target AspectProvider class name
Update SimpleModuleWriter to directly add aspect targets to autoProvides
make @Aspect only accept classes that implement AspectProvider.
remove buildAutoProvidesAspects method
remove autoProvidesAspects

Now modules can auto-expose their aspect implementations for wiring.

Why do this?  What was the need driving this change?
Aspect target / implementations are NOT expected to have any component in another module depend on them. Other modules should only need/use the aspect (annotation) and should not have any dependency on the aspect implementation.
That is, I am not expecting to see the aspect implementation in autoProvides() ... but I do expect to see the aspect annotation in autoProvides() and this removes that.

Basically, I wanted to get aspects to work automatically without having to add @InjectModules(requires=aspecttarget.class)

Yes but I don't understand fully and I don't think this "fixes" the issue per say.
We should not say requires=aspecttarget.class ... but instead requires=aspectAnnotation.class.  Our module using the aspect should really only know about the annotation.

without having to add @InjectModules(requires=aspecttarget.class)

How did this change fix that?

The "Fix" or expectation in my mind is that autoRequires() includes the aspect annotations that are being used on the components being wired by the module.

How did this change fix that?

Now we no longer need the @InjectModules to get an aspect working. Basically, I wanted to have a common aspect library that "just works" without a need to explicitly add provides and requires.

hat "just works" without a need to explicitly add provides and requires.

I don't see how this PR makes that "just work" without a change/fix to the "requires" side. That is, if there is an issue here it is on the "requires" side.
This PR changes autoProvides to not include the annotation but include the implementation. For that to "fix" a problem suggests to me that meant there was a module that had a dependency on an aspect implementation?  That doesn't make sense to me - can you explain that?

I wanted to have a common aspect library that "just works" without a need to explicitly add provides and requires.

This should actually work today with the released 8.12-RC2 in maven central without this change. So I'm trying to understand why that does not work and why this PR seems to fix the issue.

Say I got this aspect @Timed in module A, and I try to use @Timed on a method in module B. The generated proxy class in module b is:
@Proxy
@Generated("io.avaje.inject.generator")
public final class ServiceClass$Proxy extends ServiceClass {

  private final TimedAspect timedAspect;

  private Method callDownStream0;
  private MethodInterceptor callDownStream0Timed;

  public ServiceClass$Proxy(TimedAspect timedAspect, ApiClient api) {
    super(api);
    this.timedAspect = timedAspect;
    try {
      callDownStream0 = ServiceClass.class.getDeclaredMethod("callDownStream");
      callDownStream0Timed = timedAspect.interceptor(callDownStream0, callDownStream0.getAnnotation(Timed.class));

    } catch (Exception e) {
      throw new IllegalStateException(e);
    }
  }

  @Override
  public byte[] callDownStream() {
    var call = new Invocation.Call<>(() -> super.callDownStream())
      .with(this, callDownStream0);
    try {
      callDownStream0Timed.invoke(call);
      return call.finalResult();
    } catch (InvocationException e) {
      throw e;
    } catch (Throwable e) {
      throw new InvocationException(e);
    }
  }
}

Currently, module b fails to compile with
[ERROR] /M:/Dev/avaje-shaded-module-example/target/generated-sources/annotations/com/jojo/javalin/shade/service/ServiceClass$Proxy.java:[17,14] No dependency provided for com.jojo.javalin.api.aspect.TimedAspect on com.jojo.javalin.shade.service.ServiceClass$Proxy

It requires the TimedAspect in the dependency.

No dependency provided for com.jojo.javalin.api.aspect.TimedAspect

The current generated proxy code is depending on com.jojo.javalin.api.aspect.TimedAspect (the concrete aspect target implementation) when it could instead depend on io.avaje.inject.aop.AspectProvider<Timed>. Which would be that one level of indirection away from the concrete implementation of the aspect.
Right now that pretty much requires the aspect implementation to be public. Using AspectProvider<Timed> also could have improvements in terms of using test doubles for the aspects.
So to me the first issue is to ponder if the generated proxy code should instead use AspectProvider<Timed> ... in which case we've moved the issue / problem a little bit.

I guess this PR isn't the way to do it


Use MSVC as the windows compiler

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

windows ci taking >3h reminds me a bit of https://github.com/conda/conda-build/issues/5126...

unfortunately there are still some kinks for rattler-build in conda-forge ci when cross-compiling that we would need to resolve first before migrating :/ https://github.com/conda-forge/pyright-feedstock/pull/179


upgrading packages to force json5 security patch

Critical Changes
Changes
Issues Closed

Does this also deal with #1292, @seanpat09 ?

It should, once the the PR is merged I think dependabot closes the rest
On Sun, Jan 22, 2023, 2:26 AM Christian Szandor Knapp <
@.***> wrote:

Does this also deal with #1292
https://github.com/SFDO-Community/declarative-lookup-rollup-summaries/pull/1292,
@seanpat09 https://github.com/seanpat09 ?
—
Reply to this email directly, view it on GitHub
https://github.com/SFDO-Community/declarative-lookup-rollup-summaries/pull/1293#issuecomment-1399448700,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIVADUB4LJHL3VFEAWOALTWTUDOXANCNFSM6AAAAAAUB4FKNM
.
You are receiving this because you were mentioned.Message ID:
<SFDO-Community/declarative-lookup-rollup-summaries/pull/1293/c1399448700@
github.com>


[BUG] - Can't connect to testnet with the released config files - Node version 1.31.0

Internal/External
External
Area
Sync
Summary
I expect the cardano-node to sync on the testnet
Steps to reproduce
Steps to reproduce the behavior:
Spin up the following docker compose file.
version: "3.9"

services:
  cardano-node:
    image: inputoutput/cardano-node:${CARDANO_NODE_VERSION:-1.31.0}
    container_name: cardano-node
    volumes:
      - ./setup/cardano-db-sync/config/network/testnet:/config
      - node-db:/data/db
      - node-ipc:/ipc
    logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"
    command: [
        "run",
        "--topology /config/cardano-node/topology.json",
        "--config /config/cardano-node/config.json",
        "--socket-path /ipc/node.socket",
        "--database-path /data/db"
    ]
networks:
  default:
    name: 141x
volumes:
  node-db:
  node-ipc:

Expected behavior
cardano-node starts syncing
Error
[a4c23206:cardano.node.DnsSubscription:Notice:343] [2021-11-18 08:54:42.68 UTC] Domain: "relays-new.cardano-testnet.iohkdev.io" Connection Attempt Start, destination <IP_ADDRESS>:3001
[a4c23206:cardano.node.DnsSubscription:Warning:77] [2021-11-18 08:54:42.91 UTC] Domain: "relays-new.cardano-testnet.iohkdev.io" Failed to start all required subscriptions
[a4c23206:cardano.node.DnsSubscription:Notice:343] [2021-11-18 08:54:42.91 UTC] Domain: "relays-new.cardano-testnet.iohkdev.io" Connection Attempt End, destination <IP_ADDRESS>:3001 outcome: ConnectSuccess
[a4c23206:cardano.node.DnsSubscription:Error:343] [2021-11-18 08:54:43.14 UTC] Domain: "relays-new.cardano-testnet.iohkdev.io" Application Exception: <IP_ADDRESS>:3001 HandshakeError (Refused NodeToNodeV_7 "version data mismatch: NodeToNodeVersionData {networkMagic = NetworkMagic {unNetworkMagic =<PHONE_NUMBER>}, diffusionMode = InitiatorAndResponderDiffusionMode} /= NodeToNodeVersionData {networkMagic = NetworkMagic {unNetworkMagic = 764824073}, diffusionMode = InitiatorAndResponderDiffusionMode}")
[a4c23206:cardano.node.ErrorPolicy:Notice:75] [2021-11-18 08:54:43.14 UTC] IP <IP_ADDRESS>:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace (HandshakeError (Refused NodeToNodeV_7 "version data mismatch: NodeToNodeVersionData {networkMagic = NetworkMagic {unNetworkMagic =<PHONE_NUMBER>}, diffusionMode = InitiatorAndResponderDiffusionMode} /= NodeToNodeVersionData {networkMagic = NetworkMagic {unNetworkMagic = 764824073}, diffusionMode = InitiatorAndResponderDiffusionMode}")))) 200s
[a4c23206:cardano.node.DnsSubscription:Warning:77] [2021-11-18 08:54:52.68 UTC] Domain: "relays-new.cardano-testnet.iohkdev.io" Failed to start all required subscriptions

System info (please complete the following information):

Ubuntu 21
cardano-node 1.31.0

Additional context
The mounted volume for the config contains these files, which are listed in the release notes of version 1.31.0. I had to change the hashes of all 3 genesis files before being able to start the node. I am wondering if the config/topology are up to date for that given version. Thanks!

I had a similar issue a few days ago when running my testnet node binary within VirtualBox.
My symptoms:

I had internet, but the node just threw the same error as yours
Restarting the node didn't help.

What I did for it to start syncing again was restarting the VM. I know this may not be helpful, but just wanted to put it out there.

Whats the fix for this? Attempting to connect to the testnet for the first time as a total newb

Whats the fix for this? Attempting to connect to the testnet for the first time as a total newb

Are you experiencing the same issue?

@ggcaponetto Yes, freshly installed and downloaded testnet configs / topology, same error as you

can you try with the node files from here?

I got my issue resolved rookie mistake using sed tool, used the sed command I posted but included the -i  parameter to persist the changes to disk: sed -i 's/relays-new.cardano-testnet.iohkdev.io/<IP_ADDRESS>/g' ./testnet-topology.json
I assume that means I was seeing a DNS type issue

closing this as per above comment


Reset highlightedIndex to defaultHighlightIndex after selecting item

What:
Fixes #194

Why:
As a user I'd expect highlightedIndex to always have the value that I initially set it to, after selecting an item. I.e. react-select also works like this. It allows the user to quickly hit enter when the right item is the first in the list.

How:
highlightedIndex was always set to null when selecting an item. I changed that to be set to the defaultHighlightedIndexprop.

Checklist:

[ ] Documentation N/A
[x] Tests
[x] Ready to be merged
[x] Added myself to contributors table

Codecov Report

Merging #195 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #195   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           4      4
  Lines         267    267
  Branches       61     61
=====================================
  Hits          267    267

Impacted Files
Coverage Δ

src/downshift.js
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Would you like to add yourself to the contributors table?


"Passed variable is not an array or object, using empty array instead"

Hello all :)
I was using version 3.6.11 for long time and its worked very good.
Few minutes ago, i just tried to upgrade to version 4.13.3, upload files to my dir and after that was run "bb-update.php" and got this error "Code: 4096
Argument 1 passed to Pimple::__construct() must be of the type array, integer given, called in /var/www/vhosts/xxxxxx/public_html/store/bb-di.php on line 17 and defined"
Can somebody help with this?

It seems that vendors are missing. You should download newest release instead of downloading/cloning source code.

Upgrading steps can be found at BoxBilling forum http://www.boxbilling.com/forum/boxbilling-support/faq-please-read-before-posting in second post.


🐛 [firebase_auth] RegisterScreen with "login with Google" fails when registering but succeeds when signing in

Bug report
Describe the bug
I have a RegisterScreen with a GoogleProviderConfiguration.  This works fine on web.  However, on Android, I can only "login with Google" in the Sign In part.  Whenever I try to register using Google I get an error message (unknown error) .
I have added the SHA-1 (otherwise I guess the sign in with Google wouldn't work either)
Expected behavior
"Login with Google" should work on both the Sign in part as on the register part of the RegisterScreen
Sample project
Additional context
Add any other context about the problem here.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.4, on Linux Mint 20.2 5.13.0-44-generic, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2022.1)
[✓] VS Code (version 1.67.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.17.5
Flutter SDK 3.0.4
wijsr2_0 0.1.41+135

dependencies:
- args 2.3.0
- auto_size_text 3.0.0 [flutter]
- catcher 0.6.9 [flutter flutter_web_plugins fluttertoast device_info_plus device_info_plus_platform_interface package_info_plus mailer dio flutter_mailer logging sentry universal_io]
- charts_flutter 0.12.0 [charts_common collection flutter intl logging meta]
- collection 1.16.0
- content_service 0.0.1 [dotted_border flutter flutter_svg syncfusion_flutter_gauges uuid json_annotation wijsr_utils wijsr_backend tafelkampioen]
- country_code_picker 2.0.2 [flutter modal_bottom_sheet collection universal_platform]
- cupertino_icons 1.0.4
- dotted_border 2.0.0+2 [flutter path_drawing]
- email_validator 2.0.1
- expressions 0.2.3 [quiver petitparser rxdart fake_async meta]
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine]
- flutter_localizations 0.0.0 [flutter intl characters clock collection material_color_utilities meta path vector_math]
- flutter_svg 1.0.3 [flutter meta path_drawing vector_math xml]
- i18n_extension 5.0.0 [sprintf args analyzer gettext_parser equatable intl flutter]
- intl 0.17.0 [clock path]
- intl_utils 2.6.1 [analyzer archive args dart_style http intl path petitparser yaml]
- json_annotation 4.5.0 [meta]
- logger 1.1.0
- lottie 1.3.0 [archive flutter path vector_math]
- package_info_plus 1.4.2 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]
- path 1.8.1
- scidart 0.0.2-dev.9
- sentry_flutter 6.5.1 [flutter flutter_web_plugins sentry package_info_plus meta]
- statemachine 3.2.0 [meta]
- syncfusion_flutter_charts 20.1.56 [flutter intl vector_math syncfusion_flutter_core]
- syncfusion_flutter_gauges 20.1.56 [flutter syncfusion_flutter_core intl]
- synchronized 3.0.0+2
- url_launcher 6.1.0 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- user_service 0.0.1 [flutter json_serializable json_annotation uuid content_service wijsr_backend wijsr_utils]
- uuid 3.0.6 [crypto]
- webviewx 0.2.1 [flutter http path pointer_interceptor uuid webview_flutter]
- wijsr_backend 0.0.1 [cloud_firestore firebase_auth flutterfire_ui firebase google_sign_in flutter_facebook_auth firebase_analytics flutter process_run tekartik_app_flutter_sembast cloud_functions]
- wijsr_report 1.0.0+1 [flutter wijsr_backend content_service user_service wijsr_utils wijsr2_0 cupertino_icons file_saver uuid collection intl i18n_extension json_annotation flutter_html http html flutter_widget_from_html_core flutter_widget_from_html pdf webviewx]
- wijsr_utils 0.0.1 [flutter i18n_extension universal_html cloud_functions]
- wijsr_widgets 0.0.1 [carousel_slider flutter flutter_svg flutter_typeahead]

dev dependencies:
- build_runner 2.1.10 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- flutter_launcher_icons 0.9.3 [args image path yaml]
- flutter_lints 2.0.1 [lints]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph]
- json_serializable 6.2.0 [analyzer async build build_config collection json_annotation meta path pub_semver pubspec_parse source_gen source_helper]

transitive dependencies:
- _fe_analyzer_shared 38.0.0 [meta]
- analyzer 3.4.1 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- archive 3.3.0 [crypto path]
- async 2.8.2 [collection meta]
- audio_session 0.1.8 [flutter flutter_web_plugins rxdart meta]
- barcode 2.2.1 [meta qr]
- boolean_selector 2.1.0 [source_span string_scanner]
- build 2.3.0 [analyzer async convert crypto glob logging meta path]
- build_config 1.0.0 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 3.1.0 [built_collection built_value http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.0.8 [analyzer async build crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.3 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.2.3 [built_collection collection fixnum meta]
- cached_network_image 3.2.1 [flutter flutter_cache_manager octo_image cached_network_image_platform_interface cached_network_image_web]
- cached_network_image_platform_interface 1.0.0 [flutter flutter_cache_manager]
- cached_network_image_web 1.0.1 [flutter flutter_cache_manager cached_network_image_platform_interface]
- carousel_slider 4.1.1 [flutter]
- characters 1.2.0
- charcode 1.3.1
- charts_common 0.12.0 [collection intl logging meta vector_math]
- checked_yaml 2.0.1 [json_annotation source_span yaml]
- chewie 1.3.3 [cupertino_icons flutter provider video_player wakelock]
- client_information 2.0.2+2 [flutter flutter_web_plugins uuid]
- clock 1.1.0
- cloud_firestore 3.1.17 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_firestore_platform_interface 5.5.7 [collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 2.6.16 [cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- cloud_functions 3.2.16 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- cloud_functions_platform_interface 5.1.7 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 4.2.15 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- code_builder 4.1.0 [built_collection built_value collection matcher meta]
- convert 3.0.1 [typed_data]
- crypto 3.0.2 [typed_data]
- csslib 0.17.1 [source_span]
- dart_style 2.2.3 [analyzer args path pub_semver source_span]
- desktop_webview_auth 0.0.7 [crypto flutter http]
- device_info_plus 3.2.4 [flutter device_info_plus_platform_interface device_info_plus_macos device_info_plus_linux device_info_plus_web device_info_plus_windows]
- device_info_plus_linux 2.1.1 [device_info_plus_platform_interface file flutter meta]
- device_info_plus_macos 2.2.3 [device_info_plus_platform_interface flutter]
- device_info_plus_platform_interface 2.3.0+1 [flutter meta plugin_platform_interface]
- device_info_plus_web 2.1.0 [device_info_plus_platform_interface flutter_web_plugins flutter]
- device_info_plus_windows 2.1.1 [device_info_plus_platform_interface ffi flutter win32]
- dio 4.0.6 [http_parser path]
- equatable 2.0.3 [collection meta]
- fake_async 1.3.0 [clock collection]
- ffi 1.1.2
- file 6.1.2 [meta path]
- file_saver 0.1.0 [flutter flutter_web_plugins path_provider path_provider_windows path_provider_linux]
- firebase 9.0.2 [http http_parser js]
- firebase_analytics 9.1.7 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_analytics_platform_interface 3.1.5 [firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.4.0+12 [firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- firebase_auth 3.3.19 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_auth_platform_interface 6.2.7 [firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 3.3.16 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core 1.16.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_core_platform_interface 4.4.0 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.6.4 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_database 9.0.15 [firebase_core firebase_core_platform_interface firebase_database_platform_interface firebase_database_web flutter]
- firebase_database_platform_interface 0.2.1+7 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_web 0.2.0+14 [firebase_core firebase_core_web firebase_database_platform_interface flutter flutter_web_plugins js]
- firebase_dynamic_links 4.2.5 [firebase_core firebase_core_platform_interface firebase_dynamic_links_platform_interface flutter meta plugin_platform_interface]
- firebase_dynamic_links_platform_interface 0.2.3+3 [firebase_core flutter meta plugin_platform_interface]
- fixnum 1.0.0
- flutter_blurhash 0.7.0 [flutter]
- flutter_cache_manager 3.3.0 [clock collection file flutter http path path_provider pedantic rxdart sqflite uuid]
- flutter_facebook_auth 4.3.4+2 [flutter flutter_facebook_auth_platform_interface flutter_facebook_auth_web]
- flutter_facebook_auth_platform_interface 3.1.2 [flutter plugin_platform_interface]
- flutter_facebook_auth_web 3.1.2 [flutter flutter_web_plugins js flutter_facebook_auth_platform_interface]
- flutter_html 3.0.0-alpha.5 [html csslib collection numerus flutter]
- flutter_keyboard_visibility 5.2.0 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_web flutter]
- flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
- flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter]
- flutter_mailer 2.0.1 [flutter]
- flutter_typeahead 4.0.0 [flutter flutter_keyboard_visibility]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- flutter_widget_from_html 0.8.5 [flutter flutter_widget_from_html_core fwfh_cached_network_image fwfh_chewie fwfh_just_audio fwfh_selectable_text fwfh_svg fwfh_url_launcher fwfh_webview html]
- flutter_widget_from_html_core 0.8.5+3 [csslib flutter fwfh_text_style html]
- flutterfire_ui 0.4.1+2 [cloud_firestore collection crypto desktop_webview_auth email_validator firebase_auth firebase_core firebase_database firebase_dynamic_links flutter flutter_facebook_auth flutter_localizations flutter_svg google_sign_in sign_in_with_apple twitter_login]
- fluttertoast 8.0.9 [flutter flutter_web_plugins]
- frontend_server_client 2.1.2 [async path]
- fwfh_cached_network_image 0.7.0+2 [cached_network_image flutter flutter_cache_manager flutter_widget_from_html_core]
- fwfh_chewie 0.7.0+1 [chewie flutter flutter_widget_from_html_core video_player]
- fwfh_just_audio 0.6.2+2 [flutter flutter_widget_from_html_core just_audio]
- fwfh_selectable_text 0.8.3+1 [flutter flutter_widget_from_html_core]
- fwfh_svg 0.7.2 [flutter flutter_svg flutter_widget_from_html_core]
- fwfh_text_style 2.7.3+2 [flutter]
- fwfh_url_launcher 0.6.1+3 [flutter flutter_widget_from_html_core url_launcher]
- fwfh_webview 0.6.2+2 [flutter flutter_widget_from_html_core webview_flutter]
- get 4.6.3 [flutter]
- get_storage 2.0.3 [flutter get path_provider]
- gettext_parser 0.2.0
- glob 2.0.2 [async collection file path string_scanner]
- google_sign_in 5.3.0 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- google_sign_in_android 5.2.6 [flutter google_sign_in_platform_interface]
- google_sign_in_ios 5.2.6 [flutter google_sign_in_platform_interface]
- google_sign_in_platform_interface 2.1.2 [flutter quiver]
- google_sign_in_web 0.10.1 [flutter flutter_web_plugins google_sign_in_platform_interface js]
- graphs 2.1.0 [collection]
- html 0.15.0 [csslib source_span]
- http 0.13.4 [async http_parser meta path]
- http_multi_server 3.2.0 [async]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- idb_shim 2.0.1 [sembast collection path js meta]
- image 3.1.3 [archive meta xml]
- io 1.0.3 [meta path string_scanner]
- js 0.6.4
- just_audio 0.9.26 [just_audio_platform_interface just_audio_web audio_session rxdart path path_provider async uuid crypto meta flutter]
- just_audio_platform_interface 4.1.0 [flutter plugin_platform_interface]
- just_audio_web 0.4.7 [just_audio_platform_interface flutter flutter_web_plugins]
- keyboard_actions 4.0.0 [flutter]
- lints 2.0.0
- logging 1.0.2
- mailer 5.1.1 [async logging intl mime path pedantic meta]
- matcher 0.12.11 [stack_trace]
- material_color_utilities 0.1.4
- meta 1.7.0
- mime 1.0.2
- modal_bottom_sheet 2.0.1 [flutter]
- nested 1.0.0 [flutter]
- numerus 1.1.1
- octo_image 1.0.2 [flutter flutter_blurhash]
- package_config 2.0.2 [path]
- package_info_plus_linux 1.0.5 [package_info_plus_platform_interface flutter path]
- package_info_plus_macos 1.3.0 [flutter]
- package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
- package_info_plus_web 1.0.5 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
- package_info_plus_windows 1.0.5 [package_info_plus_platform_interface ffi flutter win32]
- path_drawing 1.0.0 [vector_math meta path_parsing flutter]
- path_parsing 1.0.0 [vector_math meta]
- path_provider 2.0.9 [flutter path_provider_android path_provider_ios path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
- path_provider_android 2.0.13 [flutter path_provider_platform_interface]
- path_provider_ios 2.0.8 [flutter path_provider_platform_interface]
- path_provider_linux 2.1.5 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_macos 2.0.5 [flutter path_provider_platform_interface]
- path_provider_platform_interface 2.0.3 [flutter platform plugin_platform_interface]
- path_provider_windows 2.0.5 [ffi flutter path path_provider_platform_interface win32]
- pdf 3.8.1 [archive barcode crypto image meta path_parsing vector_math xml]
- pedantic 1.11.1
- petitparser 4.4.0 [meta]
- platform 3.1.0
- plugin_platform_interface 2.1.2 [meta]
- pointer_interceptor 0.9.3+2 [flutter]
- pool 1.5.0 [async stack_trace]
- process 4.2.4 [file path platform]
- process_run 0.12.3+2 [path collection charcode string_scanner yaml meta args pub_semver synchronized]
- provider 6.0.3 [collection flutter nested]
- pub_semver 2.1.1 [collection meta]
- pubspec_parse 1.2.0 [checked_yaml collection json_annotation pub_semver yaml]
- qr 3.0.1 [meta]
- quiver 3.0.1+1 [matcher]
- rxdart 0.27.3
- sembast 3.2.0 [meta path synchronized]
- sembast_sqflite 2.0.1 [sembast sqflite_common meta collection]
- sembast_web 2.0.1+1 [sembast idb_shim]
- sentry 6.5.1 [http meta stack_trace uuid]
- shelf 1.3.0 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 1.0.1 [shelf stream_channel web_socket_channel]
- sign_in_with_apple 3.3.0 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- sign_in_with_apple_platform_interface 1.0.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 1.0.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface js]
- sky_engine 0.0.99
- source_gen 1.2.2 [analyzer async build dart_style glob meta path source_span yaml]
- source_helper 1.3.2 [analyzer collection source_gen]
- source_span 1.8.2 [collection path term_glyph]
- sprintf 6.0.0
- sqflite 2.0.2+1 [flutter sqflite_common path]
- sqflite_common 2.2.1+1 [synchronized path meta]
- sqflite_common_ffi 2.1.1 [sqlite3 sqflite_common synchronized path meta]
- sqlite3 1.5.1 [collection ffi meta]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- stream_transform 2.0.0
- string_scanner 1.1.0 [charcode source_span]
- syncfusion_flutter_core 20.1.56 [vector_math flutter]
- tafelkampioen 0.1.41+135 [flutter wijsr_backend wijsr_widgets wijsr_utils cupertino_icons client_information get_storage uuid json_serializable json_annotation build_runner firebase_analytics keyboard_actions]
- tekartik_app_flutter_sembast 0.5.1 [flutter sembast sembast_web sembast_sqflite path_provider path tekartik_app_flutter_sqflite tekartik_lints_flutter]
- tekartik_app_flutter_sqflite 0.5.1 [flutter sqflite sqflite_common_ffi sqflite_common process_run]
- tekartik_lints_flutter 0.1.2 [flutter_lints]
- term_glyph 1.2.0
- test_api 0.4.9 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timing 1.0.0 [json_annotation]
- twitter_login 4.2.3 [flutter crypto http]
- typed_data 1.3.0 [collection]
- universal_html 2.0.8 [async csslib charcode collection html meta source_span typed_data universal_io]
- universal_io 2.0.4 [collection crypto meta typed_data]
- universal_platform 1.0.0+1
- url_launcher_android 6.0.16 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.0.15 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.0.0 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.0.0 [flutter url_launcher_platform_interface]
- url_launcher_platform_interface 2.0.5 [flutter plugin_platform_interface]
- url_launcher_web 2.0.9 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 3.0.0 [flutter url_launcher_platform_interface]
- vector_math 2.1.2
- video_player 2.4.5 [flutter html video_player_android video_player_avfoundation video_player_platform_interface video_player_web]
- video_player_android 2.3.6 [flutter video_player_platform_interface]
- video_player_avfoundation 2.3.5 [flutter video_player_platform_interface]
- video_player_platform_interface 5.1.3 [flutter plugin_platform_interface]
- video_player_web 2.0.10 [flutter flutter_web_plugins video_player_platform_interface]
- wakelock 0.6.1+2 [flutter meta wakelock_macos wakelock_platform_interface wakelock_web wakelock_windows]
- wakelock_macos 0.4.0 [flutter flutter_web_plugins wakelock_platform_interface]
- wakelock_platform_interface 0.3.0 [flutter meta]
- wakelock_web 0.4.0 [flutter flutter_web_plugins js wakelock_platform_interface]
- wakelock_windows 0.2.0 [flutter wakelock_platform_interface win32]
- watcher 1.0.1 [async path]
- web_socket_channel 2.2.0 [async crypto stream_channel]
- webview_flutter 2.8.0 [flutter webview_flutter_android webview_flutter_platform_interface webview_flutter_wkwebview]
- webview_flutter_android 2.8.14 [flutter webview_flutter_platform_interface]
- webview_flutter_platform_interface 1.9.1 [flutter meta plugin_platform_interface]
- webview_flutter_wkwebview 2.8.1 [flutter path webview_flutter_platform_interface]
- win32 2.5.2 [ffi]
- xdg_directories 0.2.0+1 [meta path process]
- xml 5.3.1 [collection meta petitparser]
- yaml 3.1.0 [collection source_span string_scanner]

@MarcVanDaele90 Thanks for the report.
Can you provide the complete error message that is triggered ?
Also, can you try the plugin example and see if you still get same behavior using it ?

@MarcVanDaele90 and @darshankawar I can confirm this issue after replicating and testing with both the example app and my own implementation in an app I am building.

@ronnicknachok I'm not sure this is an exact copy of #8497 : even when no account exists in Firebase, I see the following

"login with Google" on register part of RegisterScreen gives error
"Login with Google" on sign in part of RegisterScreen works  (and creates account on Firebase)

"login with Google" on register part of RegisterScreen gives error

Can you please provide the entire error log you are receiving ?
Does the same error occur using latest plugin version ? https://pub.dev/packages/firebase_auth/changelog#341

Thanks for the update. This seems to be an issue with the flutterfire_ui's, auth_flow as mentioned here: https://github.com/firebase/flutterfire/issues/9064#issue-1299169826, so I am closing this issue in favor of the other.
Please follow-up in it for further updates. If you disagree, write in comments and I'll reopen it.


Taken official name from App.Metrics

Hello. The official developer for App.Metrics created the support for InfluxDB2. Unfortunately, the name is taken by you. Could you, please, check this thread https://github.com/AppMetrics/AppMetrics/pull/701 and free up the name in nuget, or communicate with the contributors from App.Metrics so that we can get this going.
Thank you in advance :) !

Hi! Sorry, for name collision, i did not think in advance) I've unlisted and deprecated my package at nuget, hope this will free up official name.

Thank you very much for the fast response :) !!! I wish you have great Holidays and new year welcoming :) !


Wiki Still valid?

The documentation on
https://github.com/johndyer/mediaelement/wiki
is still valid or be replaced by
https://github.com/johndyer/mediaelement/blob/master/api.md

Will be replaced by API configuration documentation

Or @johndyer what do you think? Is it better if we remove it?

@isantolin I updated it with some links that are listed on README so it will always be up-to-date. Closing this issue


OnCallback error

When I try to use page.set('onCallback',callback) it works fine, but in the documentation http://phantomjs.org/api/webpage/handler/on-callback.html says that i can return data to the html:
var webPage = require('webpage');
var page = webPage.create();

page.onCallback = function(data) {
  if (data && data.secret && (data.secret === 'ghostly')) {
    return 'Accepted.';
  }
  return 'DENIED!';
};

(In this component)
page.set('onCallback', function (response) {
 if (data && data.secret && (data.secret === 'ghostly')) {
    return 'Accepted.';
  }
  return 'DENIED!';
});

In this component I can't, the return doesnt work, how do I pass data to the html?
Thanks

+1

+1

Sadly, I haven't fixed this yet in v2 either. Since I have began rewriting for v2, I am open to ideas on how to do this. I don't know of any other phantom clients that have solved this problem.

Maybe I am fundamentally not understanding how this is supposed to work, I created a very simple example to try describe the problem I am having, I am thinking it is the same as this issue.
require('phantom')
	.create()
	.then(function(ph)
	{
		return new Promise(function(resolve, reject)
		{
			ph.createPage().then(function(page)
			{
				page.property('onCallback', function(data)
				{
					console.log("Data: "+data);
					resolve(data);
					console.log("After");
				});
				page.evaluate(function()
				{
					setTimeout(function()
					{
						window.callPhantom("inside headless browser!");
					}, 1000);
					return;
				});
			});
		});
	})
	.then(function(message)
	{
		console.log("Success! Recieved: "+message);
	});

I would expect logging:
Data: inside headless browser!
Success! Recieved: inside headless browser!
After

but I get only:
Data: inside headless browser!
Am I misunderstanding the use of this function, its as if resolve() is called within phantomjs, and if so how do I get a response out? - is that the problem people have described above?

@Jezternz Yes you are correct that this is the same problem. What's happening is that onCallback is executed in a different process. That process being phantom's process. When you call resolve() it doesn't actually run the code you would expect because it is not in node anymore.
It's really hard to communicate back to Node. You could use #378. I am not sure how I feel about it because it's really a dirty way to do things.
You really have to understand that phantomjs and node are two different processes and you can't just call code between the two.

@amir20 Thanks for the explanation, upon further reading I think I understand the obstacles you have to overcome a little better.
If I understand correctly, it is in phantomjs-node/src/phantom.js line 54, that my message is being printed at.
if (message[0] === '>') {
    let json = message.substr(1);
    logger.debug('Parsing: %s', json);
    const command = JSON.parse(json);

    let deferred = this.commands.get(command.id).deferred;
    if (command.error === undefined) {
        deferred.resolve(command.response);
    } else {
        deferred.reject(new Error(command.error));
    }
    this.commands.delete(command.id);
} else {
    logger.info(message); // This is where it is being printed out.
}

Would it be possible to hack the first evaluate argument (function), so that we replace:
window.callPhantom to be replaced with something like:
(function(s)
{
    var command = JSON.stringify({ "id": "onCallback", "value": s });
    window.callPhantom("> "+command);
})

This would make method calls such as:
    window.callPhantom("inside headless browser!");
    // become:
    (function(s){var command=JSON.stringify({"id":"onCallback","value":s});window.callPhantom("> "+command);})("inside headless browser!");

Then create a new command 'onCallback' that would call onCallback listeners? Just an idea, not sure if it would work, I realize would be rather hacky, so may not be preferable?

I think sending information over console.log is really tricky.  It's really dirty they way you have outlined, because you are trying to communicate back to Node with a message sent with console log.
What if you do something else. Something like
       page.property('onCallback', function(data) {
                    console.log("Data: "+data);
                    DATA = data;
       });

and then use the hack I provided in #378.

function checkForData(){
  phantom.windowProperty('DATA').then(function(data){
       if(data !== undefined){
             // resolve promise(data)
       }else{
            setTimeout(checkForData, 100); // try again in 100ms to see if the data has been set
       }
 });

This works a little better because your are pinging for data.
I am open to pursuing options that your provided, but it has to be a generic solution that would work for any communication to NodeJs. Yours is very specific to callPhantom which scares me.
Another approach is to do something like this:
page.waitForMessage('fooData').then(function(data){
// got data!
});

And then do
page.property('onCallback', function(data) {
                    console.log("Data: "+data);
                    sendMessage('fooData', data);
       });

This last option is obviously the cleanest way to do it. But it's adding a lot of complexity which I don't know if it's worth doing. :/
Either way, you would have to probably send me a pull request since I won't have time do it.
Good luck!

@amir20 Thanks for all the help, I like the way you have coded this module - very readable, the way good code should be!

@Jezternz You're welcome. I am glad you like it!

hi @amir20 ! I have the same query : I am testing some websocket response using Phantom, and I want to quit the testing once the data is received. using the window.callPhantom I am communicating that my tasks are done, but in onCallback property this is not working (console.log part is working though) :
_page.property('onCallback', function (data) {
    console.log('Received response : ' + data.payload)
  _page.close()      // not working
  _ph.exit()             // not working
  })

I have even put in a simple function call from there but its not working as well. From your comments it seems it has to do with separate process for PhantomJS and Node. any way I can bypass it?

I haven't been able to find a solution. Open to ideas though.

I made a pull request that must solve all the event problems. I did it because i needed a better way to detect the events in phantomjs. Hope you find it useful guys, and also if it is included in the main repo, my package.json would thank you @amir20
https://github.com/amir20/phantomjs-node/pull/454

Closing this as #454 looks to have fixed this. /cc @cbetech

I might be missing something, but I am still unable to return data to the front end using the onCallback event:
Node process:
page.on('onCallback', () => {
  return 'stuff';
});

Client Side:
var data = window.callPhantom();
console.log(data) // --> null

Perhaps page.on('onCallback', ...) not working is a bug. I don't think I have ever tried that.

I wrote something based on this library that communicate through bridge file
https://github.com/Attrash-Islam/phantom-tasker (Not completed yet)


don't use a ctab as input for the computation of 2D coordinates

Reference Issue
Fixes #1062
What does this implement/fix? Explain your changes.
Works around an AvalonTools issue in the computation of 2D coordinates, that could ignore/discard the double bond stereochemistry when an intermediate ctab representation is used for an input molecule, and possibly assign inconsistent 2D layout data.
Any other comments?
These changes should resolve the problem in the assignment of a 2D layout. The general correctness of using a mol block in function molToReaccs is still unclear.

LGTM
@bp-kelley : ok with you?

thanks!


Decomposedfs lookup outermost root

When stating a resource by id the decomposedfs will now also return the outermost space root. This allows the gateway to properly reconstruct global paths by combining the space mountpoint and the relative path.
For the owner the root will be the space root, For share recipiens the root will be the outermost shared resource. For now, the root is returned as an opaque property.

Closed in favor of making the gateway dumb again by moving the space lookup logic to clients, when the ocdav handler is one of them.