One of my office PC fails to find MSVC when not running in elevated terminal.

I have tried reinstall MSVC 2019/2022, but it doesn't work.
I have to always run vscode/vs installer as administrator in order to use MSVC.
My user account is already in administrators group.
Could it be some components owned by some administrator and not readable by others?

What command are you running? What channel did you install? Note that prereleases and incomplete installs are not shown by default. Running vswhere -help will give you more details.

Hi @heaths
I have tested with latest version of vswhere.

I'm not using prereleases or buildtools.

If the same command works as administrator, it seems you have an atypical permissions issue on %ProgramData%. Install Process Monitor, run that to collect a trace, filter by the process name vswhere, export only the unfiltered results, zip, and attach them here.
Alternative, though it may not be as helpful, run the following in an elevated command prompt:
cmd
icacls "%ProgramData%\Microsoft\VisualStudio\Packages\_Instances"

or
powershell
icacls "${env:ProgramData}\Microsoft\VisualStudio\Packages\_Instances"

/cc @tydunkel

I ran the powershell but problem still exists.
Here's the problem trace: Logfile.zip

Thanks. As I suspected, you're getting an ERROR_ACCESS_DENIED trying to read/list the directory above. icacls should've produced output if you run it elevated, which will help diagnose the problem and suggest a fix. Please paste it in a reply.
Normally, %ProgramData% has read/list (RX) permissions for Everyone, but it seems that's not the case for you or that it has an integrity level higher than normal - allowing only elevated access. icacls will show us that.

Thank you for the information, I managed to recover the permission of the mentioned folder.
The original output of the command is
 pika1  icacls "${env:ProgramData}\Microsoft\VisualStudio\Packages\_Instances"
C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances BUILTIN\Administrators:(F)
                                                          BUILTIN\Administrators:(I)(OI)(IO)(F)
                                                          BUILTIN\Administrators:(I)(CI)(F)

And I replaced all child object permission entries of ${env:ProgramData}\Microsoft\VisualStudio

And it became
 pika1  icacls "${env:ProgramData}\Microsoft\VisualStudio\Packages\_Instances"
C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances Everyone:(I)(OI)(CI)(M)
                                                          BUILTIN\Users:(I)(OI)(CI)(M)
                                                          NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
                                                          BUILTIN\Administrators:(I)(OI)(CI)(F)

Successfully processed 1 files; Failed processing 0 files

And I can access MSVC without administrator privileges!
Here's a question: Is it possible to show some error messages about why it can't find usable MSVC?
In this case, yelling permission error on the folder maybe helpful.


Aer Accelerator: Ability to compute exp-val-z from density matrix

Similar to the statevector mode, where we compute the expectation value from the state vector, we can also implement the exp-val calculation for Aer noisy sim based on the density matrix.
Currently, we can already get the density matrix in the newly-added density_matrix mode. Need to add a helper to compute exp-val-z from the density matrix.

Implemented in https://github.com/eclipse/xacc/pull/379. Closing.


Update version to 2023.0.1

Think that there other places - like in Bazel?

I updated bazel config.
Should I add update version in docs in places like this?

@maria-Petrova, could you please help with this?

Think that there other places - like in Bazel?

I updated bazel config.
Should I add update version in docs in places like this?

Docs would be fine with major/minor but yes in general


RFC-010: Synchronous Document Signing on a Remote Signing Service Provider using Long-Term Certificates and the EUDI Wallet

This Specification defines the procedures for using the EUDI wallet to digitally sign a document, using Long-Term certificates. It specifies a new protocol for executing digital signing, that will ensure successful communication and interoperability with the EUDI wallet and the Signing Service Providers, as well as Remote QES services.

Hi @lalc , do we have a deadline for suggesting changes to this RFC?

Hi @lalc , do we have a deadline for suggesting changes to this RFC?

I hope to get this merged within 15-November. You will still have time to raise issue before EWC RFC release 2.1.
If there are obvious objections, you can of course do so now.
cc: @kerk12 pls comment if you have project commitments etc to get this out on any specific deadline.

We should add section on how the issue the intial RQESAC before merging this to the main branch


The field "time" is missing

The log entries collected by fluentd can be sent to Elasticsearch successfully, and eventually I could see the log entries on Kibana. But the issue is that the field "time" is missing.
I found there was a related issue as below, but I did not find the paramter "time_key" and "keep_time_key" on the official online document, what did I miss?
https://github.com/fluent/fluentd/issues/1360

@repeatedly Something seems broken with time for me as well. Here's a sample configuration I'm testing:
<source>
  @type http
  port 8889
  bind <IP_ADDRESS>
  <parse>
    time_key time
    time_type string
    time_format %Y-%m-%dT%H:%M:%S.%NZ
    keep_time_key true
  </parse>
</source>

<match **>
  @type stdout
</match>

Then I run fluentd via: docker run -it -v pwd/fluentd_etc:/fluentd/etc -p 8889:8889 fluent/fluentd:v1.1.0
And I query it with:
curl -X POST -d 'json={"action":"foo", "time":"2018-01-01T08:01:02.345678999Z"}' http://localhost:8889/some.tag
I get the following output:
2018-02-06 02:06:51 +0000 [info]: parsing config file is succeeded path="/fluentd/etc/fluent.conf"
2018-02-06 02:06:51 +0000 [info]: using configuration file: <ROOT>
  <source>
    @type http
    port 8889
    bind "<IP_ADDRESS>"
    <parse>
      time_key "time"
      time_type string
      time_format "%Y-%m-%dT%H:%M:%S.%NZ"
      keep_time_key true
    </parse>
  </source>
  <match **>
    @type stdout
  </match>
</ROOT>
2018-02-06 02:06:51 +0000 [info]: starting fluentd-1.1.0 pid=5 ruby="2.3.6"
2018-02-06 02:06:51 +0000 [info]: spawn command to main:  cmdline=["/usr/bin/ruby", "-Eascii-8bit:ascii-8bit", "/usr/bin/fluentd", "-c", "/fluentd/etc/fluent.conf", "-p", "/fluentd/plugins", "--under-supervisor"]
2018-02-06 02:06:51 +0000 [info]: gem 'fluentd' version '1.1.0'
2018-02-06 02:06:51 +0000 [info]: adding match pattern="**" type="stdout"
2018-02-06 02:06:51 +0000 [info]: adding source type="http"
2018-02-06 02:06:51 +0000 [info]: #0 starting fluentd worker pid=15 ppid=5 worker=0
2018-02-06 02:06:51 +0000 [info]: #0 fluentd worker is now running worker=0
2018-02-06 02:06:51.941641805 +0000 fluent.info: {"worker":0,"message":"fluentd worker is now running worker=0"}
2018-02-06 02:06:53.376000766 +0000 some.tag: {"action":"foo"}

So it looks as if the time field is not being parsed at all, and it's definitely ignoring the keep_time_key field. There are no errors parsing my config file or anything.
And lastly I've double-checked that my time_format is valid in ruby:
docker run -it -v `pwd`/fluentd_etc:/fluentd/etc -p 8889:8889 fluent/fluentd:v1.1.0 irb
irb(main):001:0> require('time')
=> true
irb(main):002:0> Time.strptime("2018-01-01T08:01:02.345678999Z", "%Y-%m-%dT%H:%M:%S.%NZ")
=> 2018-01-01 08:01:02 +0000

Also worth noting that no "time" event in my curl command will trigger an error or warning in the output, and no bogus values that I can pass in the conf file to time_format or any of the other time values will trigger an error or warning.

@dcosson  It seems that you missed the "@type json" in your parser, so the parser should be as below,
    <parse>
      **@type json**
      time_key "time"
      time_type string
      time_format "%Y-%m-%dT%H:%M:%S.%NZ"
      keep_time_key true
    </parse>

@ahrtr Your particular problem ("time" field discarded while parsing) can be resolved
just by setting the keep_time_key flag to true.
Check the following example configuration how to set the option:
<filter debug.**>
    @type parser
    format json
    key_name log
    reserve_data true
    hash_value_field log
    time_format "%Y-%m-%dT%H:%M:%S"
    keep_time_key true
</filter>

How I've checked it works
I confirmed this actually works on my environment (Fluentd v1.1.0) using the following data record:
{"log":"{\"time\":\"2018-01-27T02:38:16\"}"}

Before turning on keep_time_key, Fluentd discard the "time" field as you reported:
2018-01-27 02:38:16.000000000 +0900 debug.log: {"log":{}}

Then, after turning on keep_time_key:
2018-01-27 02:38:16.000000000 +0900 debug.log: {"log":{"time":"2018-01-27T02:38:16"}}

@fujimotos, thanks for the info. I will try it out sometime later.


Added Programiz PRO which offers DSA Learning Path

Programiz PRO's DSA: A Complete Roadmap Using Python is one of the best resources on the Internet for getting started with DSA.
Programiz PRO offers curated learning paths that consist of interactive courses, challenge courses, and interview preparation courses with hands-on practice for learners.

@firewood @slycelote @abatilo @mlarocca
Hey!
Could you review this Pull Request?


Random Data in Dashboard?

Hey,
Not sure what I am doing wrong, I have followed the guide, everything setup, syncing of data into Influx working well, can see the data in the DB, I have edited the grafana helium_dashboard.json file with the ID of my hotspot and imported but I am getting random data appearing, see pics attached, every time I refresh the dashboard completely different figures show, seems to be random/gibberish?  I can't seem to work out how the dashboard is pulling data from Influx, just seems to point at the API?
Have I missed a step?
Many Thanks
Elliot

So with some more playing, I assumed a connection needed setting up in Grafana to point to Influx, not in the instructions but thought I'd give it a go a voila
https://docs.influxdata.com/influxdb/v2.0/tools/grafana/#view-and-create-influxdb-dbrp-mappings
Good link for anyone else having this issue :)

I'll happily take a PR if you'd like to update the instructions based on your recent experience.


[pyright updated to 1.1.361] Update Version

Auto-generated by create-pull-request

never fixed CI but I do not have time to look into it right now :/


v1.3.5 needs to be signed, tagged and published.

v1.3.5 was just released; https://github.com/docker/docker-bench-security/releases/tag/v1.3.5.
The image needs to be signed by Docker, have a :latest and a version tag added to the image and published.

Relates to #329

@diogomonica @docker/security?

https://github.com/orgs/docker/teams/security/discussions/1

Hmm, Diogo no longer works at Docker. I don't actually know who has access to the signing key (there may be a copy in the safe). @konstruktoid who has done this in the past?

Hi @justincormack, that's good to know since he was the creator (https://github.com/docker/docker-bench-security/commit/487307834fa12a98181365df9bac7225f79a8083) and original maintainer.
He also signed and pushed the images in the past, https://github.com/docker/docker-bench-security/issues/138.

Any progress @justincormack @docker/security?

A pity that this issue did not get proper attention during the 5 month since creation.
All recent additions/improvements are not delivered to image consumers, so everyone is using a 1.3.4 version.
We've managed to workaround it by pushing our own image built on latest state of master branch. But that obviously is not a way we'd like to handle (sitting on upstream docker/docker-bench-security would be way better for obvious reasons).

I totally agree @illyaMs.
Any progress @justincormack @docker/security?

Monthly reminder, @justincormack.

@konstruktoid  I would like to contribute for this issue to be solved. Can you please guide me

Thanks @yaminisridaran , but this is done by the Docker organization. Previously by Diogo Mónica and now ... someone else. See https://github.com/docker/docker-bench-security/issues/405#issuecomment-552887772.

Ping @justincormack

Ping @justincormack

Monthly Yearly reminder.
@justincormack

This has caused a lot of time for me to debug (that the latest docker version is not up to date with the sources here). Maybe we should add this to the README until it is resolved?

So sorry about that @michi88, I actually thought there was.
I merged https://github.com/docker/docker-bench-security/pull/494

Hello @konstruktoid,
Will there be a new release of docker-bench?
Running the script from the master branch, states it is version 1.3.6 but it has not been released.
Thank You!

CIS Docker Benchmark v1.4.0 was published yesterday and I'll will update the scripts to match that one, and then tag and release 1.3.6.
I have no idea if there will be an official Docker image. I guess this comment counts as the yearly reminder.

reminder for 2023 :)
docker/docker-bench-security:latest is now just days away from being 4 years old
last updated: Jan 24, 2019 at 7:48 am

I think we just passed 900 workdays :cake:

Docker not being able to Docker :)

yearly reminder I guess?

You should be kidding o_O.

Celebrating 1200 work days 🍰 🍸


Announcement: WinUI 3 in Windows App SDK 1.1 Preview 1 🎈

1.1 Preview 1 Release of Windows App SDK
We've just released our first preview of the 1.1 release of the Windows App SDK! This preview includes several new capabilities for WinUI 3 apps, including:

Support for running applications with elevated privileges
Self-contained app deployment
Support for multi-window applications (also available in version 1.0.1 and newer)
Push and app notifications
Enabling developers to add, remove, and modify environment variables without having to directly use the registry API.

Known issue for WinUI 3 applications: Users are unable to drop an element when drag and drop is enabled.
To see everything that's new and changed, see the full release notes here.
What's next
To keep up with progress being made on WinUI 3 in the Windows App SDK, please see our feature roadmap, which gets updated regularly.
Providing feedback
As we introduce new & upcoming features in our preview releases, we appreciate all of your feedback as we work towards a stable release:

For WinUI 3 feedback, please open an issue here, on the WinUI repo.
For feedback regarding all other Windows App SDK components, please open an issue on the Windows App SDK repo.

@gabbybilka per https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/preview-channel#version-11-preview-1-110-preview1

The preview channel is not supported for use in production environments, and apps that use the preview releases cannot be published to the Microsoft Store. There are currently no releases available from the preview channel, and we recommend using the latest stable release.

Could use an update.

Thank you so much for the v1.1 Preview 1 as the Self-contained app deployment is an amazing capability... except:
Known issue for WinUI 3 applications: Users are unable to drop an element when drag and drop is enabled.
This is tragic as my drag and drop desktop app is not fit for purpose anymore!
I confirm Dropping an element is crashing the app indeed!
So please can you fix it ASAP? Or is there any quick workaround? Please 'save my life'. Thank you!

Can you guys address this?
https://github.com/microsoft/microsoft-ui-xaml/issues/4804
I would have thought this is a simple fix, pretty poor UX having an app crash for something as trivial as write clicking a textbox.

"Users are unable to drop an element when drag and drop is enabled."
This issue is long overdue for being resolved.
Drag-and-drop is one of the cornerstone UI features of GUI (Windows, Mac, etc.)
Having new features is nice, but please, fix critical outstanding bugs!!!

Support for running applications with elevated privileges is only for Windows 11 folks, while Win32 doesn't have any issue since Vista introduced UAC, a strange trend is starting to show up.

Self-contained works well with the Preview 1, Great and many thanks for that,
but is there a way to get a single .exe file instead of about 344 files next to the .exe file?
Because true does not work for me, sadly.
Has anyone managed to achieve this? Thanks!


Move options to yargs

Add help option and move options to yargs
testrpc --help
Fix for the generation of a given number of accounts
testrpc -t 3 would generated 10 accounts, this is fixed
Version bump

Appreciate this pull request. There are a couple things that need to be discussed in general to make life easier for us.

This PR adds multiple features at once, adding help documentation as well as fixing the -t option. The -t fix isn't controversial, but I'd like to make changes to the help documentation, which requires some discussion. It'd be easier to manage this if the fixes were separated into two different PRs (in this case, fix the -t feature first on its own, then add the yargs feature as a separate PR extending from that fix). Reviewing the changes with me beforehand could mitigate this issue as well (aside: I realize there's no single place to chat for the testrpc; the truffle or ethereumjs-lib gitter could work though).
If possible, don't bump the version when making a change. Often we'll merge multiple PRs at once and we want to be responsible for bumping the version when we're ready to release. Having it bumped in a PR makes it slightly more of a hassle in getting the PR merged, and can in some cases make the git log unclear when reviewing it to see what a version bump includes.

In either case, I really appreciate your desire to contribute, and please keep submitting pull requests!

Thanks for your feedback @tcoulter. Let me remove the version bump from this branch.
I will check if I can exclude the '-t' fix from here and make it a separate PR.

@tcoulter here you go. Same PR without the version bump  and the -t fix (submitted as other PR).

@tcoulter If I made any change to the -a/-t behavior, this is probably in this PR.
I based the options on the document but due to the contradiction for -a, I picked the following:
Usage: bin/testrpc [options...]

Options:
  --port, -p            The port to serve             [string] [default: "8545"]
  --hostname, -h        Hostname to listen on. Defaults to Node's
                        server.listen() default.                        [string]
  --debug               Output VM opcodes for debugging
                                                      [boolean] [default: false]
  --deterministic, -d   Generate deterministic addresses based on a pre-defined
                        mnemonic.                     [boolean] [default: false]
  --seed, -s            Use arbitrary data to generate the HD wallet mnemonic to
                        be used.       [string] [default: "TestRPC is awesome!"]
  --mnemonic, -m        Use a specific HD wallet mnemonic to generate initial
                        addresses.                                      [string]
  --total_accounts, -t  Number of accounts to generate at startup. [default: 10]
  --blocktime, -b       Specify blocktime in seconds for automatic mining.
                        Default is 0 and no auto-mining.            [default: 0]
  --gasPrice, -g        Use a custom Gas Price (defaults to 1)      [default: 1]
  --gasLimit, -l        Use a custom Gas Limit (defaults to 0x47E7C4)
                                                              [default: 4712388]
  --accounts, -a        Specify the accounts to generate at startup. testrpc
                        --account="<privatekey with 0x>,<balance in wei>"
                        [--account="<privatekey>,balance"]              [string]
  --fork, -f            Fork from another currently running Ethereum client at a
                        given block. Input should be the HTTP location and port
                        of the other client, e.g. http://localhost:8545. You can
                        optionally specify the block to fork from using an @
                        sign: http://localhost:8545@1599200
                                                      [boolean] [default: false]
  --network_id, -i      The network id                           [default: 1377]
  --verbose, -v         Tell me more!                 [boolean] [default: false]
  --help                Show some help                [boolean] [default: false]
  --version             Show the version              [boolean] [default: false]

I can adapt once we decide what is the best constellation of options. I think it is less error prone to have it the way I propose here than having confusion between -a being also --account and --accounts doing something else than -a while we anyway provide a single account to --accounts ....
So, as summary, I would suggest:

-t for Total accounts to create   (-n could also be good as Number of accounts)
--accounts Not in use, it creates confusion with --account
-a or --account for a single account creation, --account can be used multiple times

@tcoulter did you have a chance to have a look at those old PRs?

bump. (:

Sounds like some conflicts to fix on my side since the main branch moved on. I will look at it once I find a little time. I would also love to have this PR merged.

another bump (:

What is left for this to be merged?

@axic resolving merge conflicts

I did not give up on that one :)
I am hoping to find some time today in the train on my way to EDCON to look into that again.

Why wait so long? :)
@derhuerst my apologies for the wait and thanks for the multiple bumps. I am looking forward to getting this one merged as it will also allow merging the other smaller PRs that follow.

OK, this PR should be ok to merge now.
I also resolved the conflicts related to the other PRs:  #166, #167 and #172.

@tcoulter Any remaining issue preventing merging this PR?

@chevdor I'm really sorry to see that this PR went for so long without a response. I've just joined the Truffle team, and I'll be maintaining this project for the foreseeable future. If I'm doing my job, PRs like this won't sit quite so long in the future.
Unfortunately with some of the other PRs I've recently merged it looks like we've gotten most of the way there with this change, so I'm inclined to close this. Thanks for your contribution nonetheless.

@benjamincburns Happy to see things improving. Of course not so much to see my work trashed....
Can you point the "other PRs I've recently merged it looks like we've gotten most of the way there with this change"?


chore:update golangci-lint to v1.41.1 and enable additional linters

Reason for Change:

Updates golangci-lint to v1.14.1
Adds linters and fixes errors

Requirements

[x] squashed commits
[x] included documentation
[x] added unit tests and e2e tests (if applicable).

Issue Fixed:

Does this change contain code from or inspired by another project?

[ ] Yes
[x] No

If "Yes," did you notify that project's maintainers and provide attribution?
Special Notes for Reviewers:

/azp run pr-e2e-azure


Page Shortcuts

Similar to tag cycle, define custom keyboard shortcut mappings to page names
From Philippe Kramer on Slack

Audit: Won't do


QWATCH bug: inconsistent types on retrieval

We have a bug in our QWATCH command. We can store a value as an integer but on retrieval it treats it as a string. Running this query in qwatch_test.go  var qWatchQuery = "SELECT $key, $value FROM 'match:100:*' WHERE $value > 1 ORDER BY $value DESC LIMIT 3" will give us an error "2024/08/03 12:43:48 ERRO incompatible types in comparison: string and int".

@JyotinderSingh Can you assign this to me

@JyotinderSingh Can you assign this to me

Assigned

This was already fixed in #363 as a part of another bug fix. But thanks for reporting this.


mmdet: r3_cnn original code

Signed-off-by: Leonardo Rossi<EMAIL_ADDRESS>Motivation
Original code for the paper: Recursively Refined R-CNN: Instance Segmentation with Self-RoI Rebalancing
Modification
R3RoIHead is a more generic version of HybridTaskCascadeRoIHead, in the sense that permits to specify which bbox/mask head use at each step.
BC-breaking (Optional)
It should not break anything.

Hi @hachreak ,
Thanks for your kind contribution. Would you like to fix the lint issue first? You can click the buttons in this section to see the details.

Would you like to fix the lint issue first?

Hi @ZwwWayne , thanks for your comment!
I rebased and I hope to have fixed the issues now (I run pre-commit run --all-files). :smile:

@hachreak Please add the unit test, because the code coverage drops more.

@hachreak Please confirm whether the Cascade Mask RCNN has BC breaking. At the same time, you can simply run an experiment to see if there are any problems. If you need other help, you can contact me.

Hi @hhaAndroid
I think it should not break anything for Cascade R-CNN and neither for HTC.
But I did't consider Cascade Mask RCNN.
Where is the source code for that model to check?
Actually, to run experiments for me now could be a problem because I don't have enough gpus to start some training. :disappointed:

Hi @hhaAndroid any news for the PR? :smile:
How could I help to speed up the integration?

Conflicts should be resolved.
htc_roi_head should not be deleted.
cascade_roi_head.py should not be modified. We suggest restricting the modification inside the r3_roi_head.py You can override these functions in cascade_roi_head.py

Hi @ZwwWayne
thanks to answering :smile:

of course! I'll do it
actually I'm not deleting but generalize it, because R3 RoI Head is a generalization of HTC RoI Head, where I can select the BBox Head to use each time. I could implement a R3 RoI Head separately but it means doubling 90% of the code. Do you think I should reimplement anyway everything? Maybe I can find another way to do it. let me think about it :smile:
I needed to make small changes (but without affecting the Cascade behaviour) to permit me to implement the loop. I mean, I needed to be able to select the BBox Head I want during each step of the for loop (the for loop which implement the cascade, and in my case the loop).
Basically, for Cascade it is mandatory to select the next one, in my case I configure it.


WIP Test current build in Travis w/minimal changes

closing this pull request as it served its purpose. Pushing a number of changes to this branch that are not ready for CI testing.


Add restart integration tests

Add a new optional parameter in tolerance_test to handle restart tests.
Something like this:
tolerance_test(name="dyn_exp_solve_serial",
    input_file="some_input.lua",
    restart_cycle="10")

Then the test workflow would be this:
serac -i some_input.lua  // this runs fully
serac -i some_input --restart-cycle=10  // restarts previous run on cycle 10
// run tolerance_test.py against last summary file and baseline

If the restart_cycle parameter is not given it should not run the second serac command like it is currently.

I believe this may involve changing serac's -c option. It seems to be looking for a file called something like default_datacoll_000001.root in the directory specified in -o. But when I run serac without -c, this .root file is only sometimes created.
I may be able to simply check if these datacoll files are created before running serac with the -c option, but I'm not sure if you'd want that. Plus, the restarted serac run's output will likely override the previous serac run, since the -o option seems to be for both checking the datacoll files as well as the serac run's output.
Also, I'm not sure if the -c option works, since if I run it with a test that does have datacoll files (such as dyn_imp_solve_restart), it will always begin at step 1 even if I specify -c as 4, for example. But I haven't verified this - it might just be printing the previous steps.


Recursive schema definition potentially causing an infinite loop

Hi. Firstly, thanks for all the work on graphql-elixir and plug-graphql.
I'm having trouble with a circular schema definition. Using plug_graphql in phoenix and the server freezes up no matter the query when the circular definitions are in play.

Recurring
Transaction
Tag

Relations are:

Tags many to many Recurring
Tags many to many Transaction

https://github.com/Bockit/budget/tree/master/apps/api-server/web/graphql is the graphql schema I have for this model. The root query provides a singular and list type query for each model. Each model has a resolve tag for its relations.
Before I added the relations to the Tag schema, things were great but once I added the recurrings and transactions relations to the Tag schema all requests freeze up in what appears to be an infinite loop. Even if you don't request any of the relation fields.
If you comment out the tags field on Transaction, and the recurrings field on Tag (breaking the circle) then you can do the following and it works as expected:
$ curl "http://<IP_ADDRESS>:4000/api?query=\{recurring(id:11)\{amount,tags\{tag,transactions\{amount\}\}\}\}"
{
  "data": {
    "recurring": {
      "tags": [
        {
          "transactions": [
            {
              "amount": 24.53
            }
          ],
          "tag": "Utilities"
        },
        {
          "transactions": [
            {
              "amount": 60.0
            }
          ],
          "tag": "Development"
        }
      ],
      "amount": 50.0
    }
  }
}

If this is confusing I can make a simpler, proof-of-concept reproduction tomorrow. If I'm correct and this is causing an infinite loop with a circular reference as described then a simple schema with 2 object types that both refer back to each other should cause the same effect.
Thanks for your time.

Thanks for the bug report! I'll see if can reproduce this and let you know if I have any questions.

@joshprice I put together a reproduction as a test and it passes so it looks like things are good. I think the infinite loop is me calling schema, calling schema, calling schema, calling schema in my definitions.
If you want the test in here I can make it a PR, otherwise I'll drop the branch. Either way, I think this issue is closable. Sorry if you wasted any time on it!

Hadn't had a chance to look at it yet, but glad you got to the bottom of it. A PR with that recursion test in would be fantastic thanks!

Turns out my test wasn't a circular dep, if I went any levels deeper it wouldn't work because elixir isn't immutable and my last reference to fruit in basket doesn't have a basket field.
Basically something like this that I would do in node isn't something I can do in elixir.
var a = {}
var b = {}
b.a = a
a.b = b
console.log(a.b.a.b.a.b.a.b === b) // true
Which in a long story short is to say in the end it's not testing anything you aren't already testing :)
Just had a chat about it in #general in the elixir slack. The tip about recursive traversal algorithms is intriguing but seeing as the use case I have for it can be solved by using my own recursion for how deep I define the schema I'm going to go with that and the recursive algorithm traversal is probably way out of scope for this library.

So, I saw this Issue just before starting to travel, and ended up coming with a solution analogous to the js reference implementation of graphql. Where they wrap the fields in an anonymous function to delay execution, I think we can quote ours.

Thanks @markolson, really great!

I'm using @markolson's branch with this fix, however when using graphql-relay, running GraphQL.Relay.generate_schema_json! throws this error:
[debug] Updating GraphQL schema.json
** (FunctionClauseError) no function clause matching in GraphQL.Type.CompositeType.do_get_fields/1
    (graphql) lib/graphql/type/composite_type.ex:33: GraphQL.Type.CompositeType.do_get_fields({:%{}, [], [max_score: {:%{}, [], [type: {:%, [], [{:__aliases__, [alias: false], [:GraphQL, :Type, :Float]}, {:%{}, [], []}]}, resolve: {:fn, [], [{:->, [], [[{:_, [], VideoSchema}, {:_, [], VideoSchema}, {:_, [], VideoSchema}], 1]}]}]}, videos: {:%{}, [], [type: {{:., [], [Access, :get]}, [], [{:video_connection, [], VideoSchema}, :connection_type]}, args: {{:., [], [{:__aliases__, [alias: GraphQL.Relay.Connection], [:Connection]}, :args]}, [], []}, resolve: {:fn, [], [{:->, [], [[{:videos, [], VideoSchema}, {:args, [], VideoSchema}, {:_ctx, [], VideoSchema}], {:__block__, [], [{{:., [], [{:__aliases__, [alias: false], [:IO]}, :inspect]}, [], [{:args, [], VideoSchema}]}, {:=, [], [{:cursor_count, [], VideoSchema}, {:try, [], [[do: {{:., [], [{:__aliases__, [alias: GraphQL.Relay.Connection.List], [:Connection, :List]}, :cursor_to_offset]}, [], [{:||, [context: VideoSchema, import: Kernel], [{{:., [], [Access, :get]}, [], [{:args, [], VideoSchema}, :after]}, {{:., [], [Access, :get]}, [], [{:args, [], VideoSchema}, :before]}]}]}, rescue: [{:->, [], [[{:__aliases__, [alias: false], [:FunctionClauseError]}], 0]}]]]}]}, {:=, [], [{:count, [], VideoSchema}, {:+, [context: VideoSchema, import: Kernel], [{:+, [context: VideoSchema, import: Kernel], [{:cursor_count, [], VideoSchema}, {{:., [], [Access, :get]}, [], [{:args, [], VideoSchema}, :first]}]}, 1]}]}, {{:., [], [{:__aliases__, [alias: GraphQL.Relay.Connection.List], [:Connection, :List]}, :resolve]}, [], [{:videos, [], VideoSchema}, {:args, [], VideoSchema}]}]}]}]}]}]})
    (graphql) lib/graphql/type/schema.ex:56: GraphQL.Schema.reduce_types/2
    (stdlib) lists.erl:1262: :lists.foldl/3
    (graphql) lib/graphql/type/schema.ex:57: GraphQL.Schema.reduce_types/2
    (stdlib) lists.erl:1262: :lists.foldl/3
    (graphql) lib/graphql/type/schema.ex:57: GraphQL.Schema.reduce_types/2
    (graphql) lib/graphql/type/schema.ex:31: GraphQL.Schema.reduce_types/1
    (graphql) lib/graphql/type/schema.ex:26: GraphQL.Schema.type_from_ast/2
    (graphql) lib/graphql/lang/ast/type_info_visitor.ex:100: GraphQL.Lang.AST.Visitor.GraphQL.Lang.AST.TypeInfoVisitor.enter/3
    (graphql) lib/graphql/lang/ast/composite_visitor.ex:71: GraphQL.Lang.AST.Visitor.GraphQL.Lang.AST.CompositeVisitor.call_in_order/5
    (graphql) lib/graphql/lang/ast/reducer.ex:33: GraphQL.Lang.AST.Reducer.visit/3
    (graphql) lib/graphql/lang/ast/reducer.ex:21: GraphQL.Lang.AST.Reducer.visit/3
    (graphql) lib/graphql/lang/ast/reducer.ex:51: GraphQL.Lang.AST.Reducer.visit_each_child/3
    (graphql) lib/graphql/lang/ast/reducer.ex:36: GraphQL.Lang.AST.Reducer.visit/3
    (graphql) lib/graphql/lang/ast/reducer.ex:16: GraphQL.Lang.AST.Reducer.reduce/3
    (graphql) lib/graphql/validation/validator.ex:29: GraphQL.Validation.Validator.validate_with_rules/3
    (graphql) lib/graphql.ex:44: GraphQL.execute_with_optional_validation/6
    lib/graphql_relay.ex:28: GraphQL.Relay.introspection/0
    lib/graphql_relay.ex:23: GraphQL.Relay.generate_schema_json!/0
    (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6

I'm not sure whether this is an issue with graphql-elixir or graphql-relay?

Thanks for the bug report.
Not sure which branch you mean, but please try using the latest GraphQL
release. Also it would be great to see your schema to help debug this.
On Mon, Apr 18, 2016 at 3:19 PM, Ashley Williams<EMAIL_ADDRESS>wrote:

I'm using @markolson https://github.com/markolson's branch with this
fix, however when using graphql-relay, running
GraphQL.Relay.generate_schema_json! throws this error:
[debug] Updating GraphQL schema.json
** (FunctionClauseError) no function clause matching in GraphQL.Type.CompositeType.do_get_fields/1
(graphql) lib/graphql/type/composite_type.ex:33: GraphQL.Type.CompositeType.do_get_fields({:%{}, [], [max_score: {:%{}, [], [type: {:%, [], [{:aliases, [alias: false], [:GraphQL, :Type, :Float]}, {:%{}, [], []}]}, resolve: {:fn, [], [{:->, [], [[{:, [], VideoSchema}, {:, [], VideoSchema}, {:_, [], VideoSchema}], 1]}]}]}, videos: {:%{}, [], [type: {{:., [], [Access, :get]}, [], [{:video_connection, [], VideoSchema}, :connection_type]}, args: {{:., [], [{:aliases, [alias: GraphQL.Relay.Connection], [:Connection]}, :args]}, [], []}, resolve: {:fn, [], [{:->, [], [[{:videos, [], VideoSchema}, {:args, [], VideoSchema}, {:_ctx, [], VideoSchema}], {:block, [], [{{:., [], [{:aliases, [alias: false], [:IO]}, :inspect]}, [], [{:args, [], VideoSchema}]}, {:=, [], [{:cursor_count, [], VideoSchema}, {:try, [], [[do: {{:., [], [{:aliases, [alias: GraphQL.Relay.Connection.List], [:Connection, :List]}, :cursor_to_offset]}, [], [{:||, [context: VideoSchema, imp
ort: Ker
nel], [{{:., [], [Access, :get]}, [], [{:args, [], VideoSchema}, :after]}, {{:., [], [Access, :get]}, [], [{:args, [], VideoSchema}, :before]}]}]}, rescue: [{:->, [], [[{:aliases, [alias: false], [:FunctionClauseError]}], 0]}]]]}]}, {:=, [], [{:count, [], VideoSchema}, {:+, [context: VideoSchema, import: Kernel], [{:+, [context: VideoSchema, import: Kernel], [{:cursor_count, [], VideoSchema}, {{:., [], [Access, :get]}, [], [{:args, [], VideoSchema}, :first]}]}, 1]}]}, {{:., [], [{:aliases, [alias: GraphQL.Relay.Connection.List], [:Connection, :List]}, :resolve]}, [], [{:videos, [], VideoSchema}, {:args, [], VideoSchema}]}]}]}]}]}]})
(graphql) lib/graphql/type/schema.ex:56: GraphQL.Schema.reduce_types/2
(stdlib) lists.erl:1262: :lists.foldl/3
(graphql) lib/graphql/type/schema.ex:57: GraphQL.Schema.reduce_types/2
(stdlib) lists.erl:1262: :lists.foldl/3
(graphql) lib/graphql/type/schema.ex:57: GraphQL.Schema.reduce_types/2
(graphql) lib/graphql/type/schema.ex:31: GraphQL.Schema.reduce_types/1
(graphql) lib/graphql/type/schema.ex:26: GraphQL.Schema.type_from_ast/2
(graphql) lib/graphql/lang/ast/type_info_visitor.ex:100: GraphQL.Lang.AST.Visitor.GraphQL.Lang.AST.TypeInfoVisitor.enter/3
(graphql) lib/graphql/lang/ast/composite_visitor.ex:71: GraphQL.Lang.AST.Visitor.GraphQL.Lang.AST.CompositeVisitor.call_in_order/5
(graphql) lib/graphql/lang/ast/reducer.ex:33: GraphQL.Lang.AST.Reducer.visit/3
(graphql) lib/graphql/lang/ast/reducer.ex:21: GraphQL.Lang.AST.Reducer.visit/3
(graphql) lib/graphql/lang/ast/reducer.ex:51: GraphQL.Lang.AST.Reducer.visit_each_child/3
(graphql) lib/graphql/lang/ast/reducer.ex:36: GraphQL.Lang.AST.Reducer.visit/3
(graphql) lib/graphql/lang/ast/reducer.ex:16: GraphQL.Lang.AST.Reducer.reduce/3
(graphql) lib/graphql/validation/validator.ex:29: GraphQL.Validation.Validator.validate_with_rules/3
(graphql) lib/graphql.ex:44: GraphQL.execute_with_optional_validation/6
lib/graphql_relay.ex:28: GraphQL.Relay.introspection/0
lib/graphql_relay.ex:23: GraphQL.Relay.generate_schema_json!/0
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
I'm not sure whether this is an issue with graphql-elixir or graphql-relay
?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/graphql-elixir/graphql/issues/38#issuecomment-211206530

This is using the master branch. I think this is the relevant schema:

  def node_interface do
    Node.define_interface(fn(obj) ->
      case obj do
        %{videos: _videos} ->
          video_list
        _ ->
          video
      end
    end)
  end

  def video_connection do
   %{
     name: "Video",
     node_type: video,
     edge_fields: %{},
     connection_fields: %{},
     resolve_node: nil,
     resolve_cursor: nil
   } |> Connection.new
  end

  def video_list do
    %GraphQL.Type.ObjectType{
      name: "Videos",
      description: "List of Videos",
      fields: quote do %{
        videos: %{
          type: video_connection[:connection_type],
          args: Connection.args,
          resolve: fn(videos, args, _ctx) ->
            cursor_count = try do
              Connection.List.cursor_to_offset(args[:after] || args[:before])
            rescue
              FunctionClauseError -> 0
            end
            count = cursor_count + args[:first] + 1
            Connection.List.resolve(videos, args)
          end
        }
      } end
    }
  end

  def video do
    %GraphQL.Type.ObjectType{
      name: "Video",
      description: "A Video",
      fields: quote do %{
        id: Node.global_id_field("video"),
        more_like_this: %{
          type: video_list,
          args: %{
            count: %{type: %GraphQL.Type.Int{}}
          },
          resolve: fn a, _, _ ->
            IO.inspect a
          end
        }
      } end,
      interfaces: [node_interface]
    }
  end

Thanks!

So the quote fix is deprecated since we support referencing types as modules (see https://github.com/graphql-elixir/graphql/blob/master/test/support/star_wars/schema.exs for an example).

Ah — thanks!
Although I think there may still be an issue. type: %{type: VideoList} doesn't work, yet type: %List{ofType: Video} does. Is that intended? Or am I doing something wrong? :)
  defmodule VideoList do
    def video_connection do
     %{
       name: "Video",
       node_type: Video,
       edge_fields: %{},
       connection_fields: %{},
       resolve_node: nil,
       resolve_cursor: nil
     } |> Connection.new
    end

    def type do
      %ObjectType{
        name: "Videos",
        description: "List of Videos",
        fields: %{
          videos: %{
            type: video_connection[:connection_type],
            args: Connection.args,
            resolve: fn(videos, args, _ctx) ->
              cursor_count = try do
                Connection.List.cursor_to_offset(args[:after] || args[:before])
              rescue
                FunctionClauseError -> 0
              end
              count = cursor_count + args[:first] + 1
              Connection.List.resolve(videos, args)
            end
          }
        }
      }
    end
  end

  defmodule Video do
    def type do
      %ObjectType{
        name: "Video",
        description: "A YouTube video",
        fields: %{
          id: Node.global_id_field("video"),
          more_like_this: %{
            type: %{type: VideoList},
            resolve: fn _, _, _ -> end
          }
        }
      }
    end
  end

[debug] Updating GraphQL schema.json
** (FunctionClauseError) no function clause matching in GraphQL.Schema.reduce_types/2
(graphql) lib/graphql/type/schema.ex:36: GraphQL.Schema.reduce_types(%{"Channel" => %GraphQL.Type.ObjectType{description: "YouTube channel", fields: %{title: %{type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}, video_list: %{type: VideoSchema.VideoList}}, interfaces: [], isTypeOf: nil, name: "Channel"}, "Float" => %GraphQL.Type.Float{description: "The Float scalar type represents signed double-precision fractional\nvalues as specified by IEEE 754.\n", name: "Float"}, "ID" => %GraphQL.Type.ID{description: "The ID scalar type represents a unique identifier, often used to\nrefetch an object or as key for a cache. The ID type appears in a JSON\nresponse as a String; however, it is not intended to be human-readable.\nWhen expected as an input type, any string (such as \"4\") or integer\n(such as 4) input value will be accepted as an ID.\n", name: "ID"}, "Int" => %GraphQL.Type.Int{description: "The Int scalar type represents non-fractional signed whole numeric\nvalues. Int can represent values between -(2^53 - 1) and 2^53 - 1 since\nrepresented in JSON as double-precision floating point numbers specified\nby IEEE 754.\n", name: "Int"}, "Query" => %GraphQL.Type.ObjectType{description: "", fields: %{channel: %{args: %{id: %{type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, resolve: &VideoSchema.show_channel/3, type: VideoSchema.Channel}, mostPopular: %{resolve: #Function<0.116378938/3 in VideoSchema.schema/0>, type: VideoSchema.VideoList}, search: %{args: %{query: %{type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, resolve: #Function<1.116378938/3 in VideoSchema.schema/0>, type: VideoSchema.Search}, video: %{args: %{yt_id: %{type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, resolve: &VideoSchema.show_video/3, type: VideoSchema.Video}, viewer: %{resolve: #Function<2.116378938/3 in VideoSchema.schema/0>, type: VideoSchema.Viewer}}, interfaces: [], isTypeOf: nil, name: "Query"}, "String" => %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}, "Video" => %GraphQL.Type.ObjectType{description: "A YouTube video", fields: %{id: %{description: "The ID of an object", name: "id", resolve: #Function<1.110845899/3 in GraphQL.Relay.Node.global_id_field/1>, type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.ID{description: "The ID scalar type represents a unique identifier, often used to\nrefetch an object or as key for a cache. The ID type appears in a JSON\nresponse as a String; however, it is not intended to be human-readable.\nWhen expected as an input type, any string (such as \"4\") or integer\n(such as 4) input value will be accepted as an ID.\n", name: "ID"}}}, more_like_this: %{resolve: #Function<0.119064294/3 in VideoSchema.Video.type/0>, type: %{type: VideoSchema.VideoList}}}, interfaces: [], isTypeOf: nil, name: "Video"}, "VideoConnection" => %GraphQL.Type.ObjectType{description: "A connection to a list of items.", fields: %{edges: %{description: "Information to aid in pagination.", type: %GraphQL.Type.List{ofType: %GraphQL.Type.ObjectType{description: "An edge in a connection.", fields: %{cursor: %{description: "A cursor for use in pagination", resolve: nil, type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, node: %{description: "The item at the end of the edge", resolve: nil, type: VideoSchema.Video}}, interfaces: [], isTypeOf: nil, name: "VideoEdge"}}}, pageInfo: %{description: "Information to aid in pagination.", type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.ObjectType{description: "Information about pagination in a connection.", fields: %{endCursor: %{description: "When paginating forwards, the cursor to continue.", type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}, hasNextPage: %{description: "When paginating forwards, are there more items?", type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.Boolean{description: "The Boolean scalar type represents true or false.\n", name: "Boolean"}}}, hasPreviousPage: %{description: "When paginating backwards, are there more items?", type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.Boolean{description: "The Boolean scalar type represents true or false.\n", name: "Boolean"}}}, startCursor: %{description: "When paginating backwards, the cursor to continue.", type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, interfaces: [], isTypeOf: nil, name: "PageInfo"}}}}, interfaces: [], isTypeOf: nil, name: "VideoConnection"}, "VideoEdge" => %GraphQL.Type.ObjectType{description: "An edge in a connection.", fields: %{cursor: %{description: "A cursor for use in pagination", resolve: nil, type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, node: %{description: "The item at the end of the edge", resolve: nil, type: VideoSchema.Video}}, interfaces: [], isTypeOf: nil, name: "VideoEdge"}, "Videos" => %GraphQL.Type.ObjectType{description: "List of Videos", fields: %{max_score: %{resolve: #Function<0.47853847/3 in VideoSchema.VideoList.type/0>, type: %GraphQL.Type.Float{description: "The Float scalar type represents signed double-precision fractional\nvalues as specified by IEEE 754.\n", name: "Float"}}, videos: %{args: %{after: %{type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}, before: %{type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}, first: %{type: %GraphQL.Type.Int{description: "The Int scalar type represents non-fractional signed whole numeric\nvalues. Int can represent values between -(2^53 - 1) and 2^53 - 1 since\nrepresented in JSON as double-precision floating point numbers specified\nby IEEE 754.\n", name: "Int"}}, last: %{type: %GraphQL.Type.Int{description: "The Int scalar type represents non-fractional signed whole numeric\nvalues. Int can represent values between -(2^53 - 1) and 2^53 - 1 since\nrepresented in JSON as double-precision floating point numbers specified\nby IEEE 754.\n", name: "Int"}}}, resolve: #Function<1.47853847/3 in VideoSchema.VideoList.type/0>, type: %GraphQL.Type.ObjectType{description: "A connection to a list of items.", fields: %{edges: %{description: "Information to aid in pagination.", type: %GraphQL.Type.List{ofType: %GraphQL.Type.ObjectType{description: "An edge in a connection.", fields: %{cursor: %{description: "A cursor for use in pagination", resolve: nil, type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, node: %{description: "The item at the end of the edge", resolve: nil, type: VideoSchema.Video}}, interfaces: [], isTypeOf: nil, name: "VideoEdge"}}}, pageInfo: %{description: "Information to aid in pagination.", type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.ObjectType{description: "Information about pagination in a connection.", fields: %{endCursor: %{description: "When paginating forwards, the cursor to continue.", type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}, hasNextPage: %{description: "When paginating forwards, are there more items?", type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.Boolean{description: "The Boolean scalar type represents true or false.\n", name: "Boolean"}}}, hasPreviousPage: %{description: "When paginating backwards, are there more items?", type: %GraphQL.Type.NonNull{ofType: %GraphQL.Type.Boolean{description: "The Boolean scalar type represents true or false.\n", name: "Boolean"}}}, startCursor: %{description: "When paginating backwards, the cursor to continue.", type: %GraphQL.Type.String{description: "The String scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.\n", name: "String"}}}, interfaces: [], isTypeOf: nil, name: "PageInfo"}}}}, interfaces: [], isTypeOf: nil, name: "VideoConnection"}}}, interfaces: [], isTypeOf: nil, name: "Videos"}}, %{type: VideoSchema.VideoList})

The second argument that function looks wrong: %{type: VideoSchema.VideoList} should be just VideoSchema.VideoList I suspect.
If that is still broken please open a new issue as this isn't related to the original issue. Or ping me in the GraphQL or Elixir slacks.

@joshprice You're right, it should just be type: VideoList, not type: {type: VideoList}. Thank you for your help! 😊


removed edsc from all matmul onnx lowering

Added support for krnl constructors for krnl iterate with index expression, and used it in lowering of matmul from onnx to krnl IR.
migrated matmul lit test to the ones using canonicalize
Signed-off-by: Alexandre Eichenberger<EMAIL_ADDRESS>

Jenkins Linux amd64 Build #1253 [push] removed edsc from all ma... started at 22:16

Jenkins Linux s390x Build #1251 [push] removed edsc from all ma... started at 23:16

Jenkins Linux ppc64le Build #399 [push] removed edsc from all ma... started at 23:19

Jenkins Linux s390x Build #1251 [push] removed edsc from all ma... passed after 41 min

Jenkins Linux amd64 Build #1253 [push] removed edsc from all ma... passed after 47 min

Jenkins Linux ppc64le Build #399 [push] removed edsc from all ma... passed after 54 min


Subsample counts fix

Hi,
I found a bug.
subsampleCounts led to an error, when there were no samples after subsampling.
library(mia)
data(GlobalPatterns)

tse.subsampled <- subsampleCounts(GlobalPatterns,
                                  min_size = 6000000,
                                  name = "subsampled",
                                  replace = TRUE,
                                  seed = 1938)

-Tuomas

Now this returns NULL and message, if there are no samples

The solution was a bit to much windows dressing for my taste. Again the fix was 15 lines away from the cause. This is now rectified and it errors in this case.
Reporting NULL would mean a difference in input and output type, which is not expected I would argue, therefore the error. An another option would be just report an SE without any columns and let the use figure it out for themselves.


Do not relocate generated Model Classes

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Run mvn clean verify to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Doing so with this pattern breaks the clients, as the shade plugin will
rewrite the gRPC method name as well, which servers do not implement.
All calls will then be broken.

R: @kennknowles @lukecwik (any)

It was actually protobuf that relies on the strings during converting text to proto.

That's a different thing entirely, but also an issue. Probably a good reason not to use the text format, since it doesn't benefit from proto's compatibility features, even when it would be easy to do so.

run java precommit

run java precommit


Pokémon XD: Add file format 0x11 (& fix GTX I8 format)

Dumps 4 more textures in GXXP01 (Pokémon XD Gale of Darkness, PAL).
As the commit message explains, only 2 files uses such format, but just one file gets actually loaded.
So some work is probably still needed for the other file (and/or maybe look into Colosseum if it implements that format). Also since that file doesn't get loaded ingame anyway, we technically doesn't need to dump it.

You really get every texture out of the game :D


[ZEPPELIN-3212] delete extra ">" in notebook-actionBar.html

What is this PR for?
Delete extra ">" in  notebook-actionBar.html after </span>
What type of PR is it?
[Improvement]
What is the Jira issue?
ZEPPELIN-3212
Screenshots (if appropriate)

Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

Thanks @Savalek for the improvement. LGTM

Merge to master and branch-0.8


Enhance User Engagement by Introducing an "Audiobook"

Related Issue
None
Fixes:  #3074
Description
This PR introduces a new "Audiobook" section in the website's navigation bar to improve user engagement and functionality. The "Audiobook" section will feature a collection of audiobooks, with each container displaying the title, author, cover image, and an audio player that starts playing directly when selected. Users will have the ability to pause the audio and use a slider to select a specific timestamp to resume listening. This enhancement aims to enrich the user experience by providing a new medium for book consumption, increasing engagement, and extending time spent on the site.
Type of PR

[ ] Bug fix
[X] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
recording.webm
Checklist:

[X] I have made this change from my own.
[X] My code follows the style guidelines of this project.
[X] I have performed a self-review of my own code.
[X] I have commented my code, particularly in hard-to-understand areas.
[X] My changes generate no new warnings.
[X] I have tested the changes thoroughly before submitting this pull request.
[X] I have provided relevant issue numbers and screenshots after making the changes.

@anuragverma108 Please review this PR once anurag and label it with appropriate GSSOC and Hacktoberfest level.
Hoping it will be atleast level3 as I made a whole separate page enhancing an actual feature for user engagement.
Thankyou for assigning it to me

@snehhhcodes resolve coflicts


PHP Warning – yii\base\ErrorException  register_shutdown_function(): Invalid shutdown callback '' passed

register_shutdown_function(): Invalid shutdown callback '' passed

in /usr/local/nginx/tcms/vendor/yiisoft/yii2/log/Logger.php
/**

Initializes the logger by registering [[flush()]] as a shutdown function.
*/
public function init()
{
parent::init();
register_shutdown_function(function () {
// make sure "flush()" is called last when there are multiple shutdown functions
register_shutdown_function([$this, 'flush'], true);
});
}

/**

Logs a message with the given type and category.
If [[traceLevel]] is greater than 0, additional call stack information about
the application code will be logged as well.
@param string|array $message the message to be logged. This can be a simple string or a more
complex data structure that will be handled by a [[Target|log target]].
@param integer $level the level of the message. This must be one of the following:

php version : 5.4.30

it's recursie ?

register_shutdown_function into register_shutdown_function

unable to reproduce, also no problem here: http://3v4l.org/4KB60
please provide more information about environment and stack trace.

I don't know what is wrong ， tcms.127n.com
system: centOS 6
php: v5.4.30

how u detect php version ? php can have other version then php-cli

@JiangYahui stacktrace would be very helpful

@cebe I have the same problem.
system : centOS 6.3
php 5.4.39 (yum install)

@qvink stacktrace?

debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) result :
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/base/Object.php
[line] => 107
[function] => init
[class] => yii\log\Logger
[type] => ->
)
Array
(
[function] => __construct
[class] => yii\base\Object
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 366
[function] => newInstanceArgs
[class] => ReflectionClass
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 151
[function] => build
[class] => yii\di\Container
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 340
[function] => get
[class] => yii\di\Container
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 364
[function] => createObject
[class] => yii\BaseYii
[type] => ::
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/log/Dispatcher.php
[line] => 115
[function] => getLogger
[class] => yii\BaseYii
[type] => ::
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/log/Dispatcher.php
[line] => 87
[function] => getLogger
[class] => yii\log\Dispatcher
[type] => ->
)
Array
(
[function] => __construct
[class] => yii\log\Dispatcher
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 372
[function] => newInstanceArgs
[class] => ReflectionClass
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 151
[function] => build
[class] => yii\di\Container
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 344
[function] => get
[class] => yii\di\Container
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/ServiceLocator.php
[line] => 133
[function] => createObject
[class] => yii\BaseYii
[type] => ::
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/base/Application.php
[line] => 302
[function] => get
[class] => yii\di\ServiceLocator
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/web/Application.php
[line] => 63
[function] => bootstrap
[class] => yii\base\Application
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/base/Application.php
[line] => 267
[function] => bootstrap
[class] => yii\web\Application
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/base/Object.php
[line] => 107
[function] => init
[class] => yii\base\Application
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/base/Application.php
[line] => 206
[function] => __construct
[class] => yii\base\Object
[type] => ->
)
Array
(
[file] => /home/dev/yii2/backend/web/index.php
[line] => 17
[function] => __construct
[class] => yii\base\Application
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/base/Object.php
[line] => 107
[function] => init
[class] => yii\log\Logger
[type] => ->
)
Array
(
[function] => __construct
[class] => yii\base\Object
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 366
[function] => newInstanceArgs
[class] => ReflectionClass
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 151
[function] => build
[class] => yii\di\Container
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 340
[function] => get
[class] => yii\di\Container
[type] => ->
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 364
[function] => createObject
[class] => yii\BaseYii
[type] => ::
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php

@samdark
and debug_backtrace() result :
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/base/Object.php
[line] => 107
[function] => init
[class] => yii\log\Logger
[object] => yii\log\Logger Object
(
[messages] => Array
(
)
        [flushInterval] => 1000
        [traceLevel] => 0
        [dispatcher] =>
        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
    )

)
Array
(
[function] => __construct
[class] => yii\base\Object
[object] => yii\log\Logger Object
(
[messages] => Array
(
)
        [flushInterval] => 1000
        [traceLevel] => 0
        [dispatcher] =>
        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
        [0] => Array
            (
            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 366
[function] => newInstanceArgs
[class] => ReflectionClass
[object] => ReflectionClass Object
(
[name] => yii\log\Logger
)
[type] => ->
[args] => Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                    )

            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 151
[function] => build
[class] => yii\di\Container
[object] => yii\di\Container Object
(
[_singletons:yii\di\Container:private] => Array
(
)
        [_definitions:yii\di\Container:private] => Array
            (
            )

        [_params:yii\di\Container:private] => Array
            (
            )

        [_reflections:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => ReflectionClass Object
                    (
                        [name] => yii\web\ErrorHandler
                    )

                [yii\web\Request] => ReflectionClass Object
                    (
                        [name] => yii\web\Request
                    )

                [yii\log\Dispatcher] => ReflectionClass Object
                    (
                        [name] => yii\log\Dispatcher
                    )

                [yii\log\Logger] => ReflectionClass Object
                    (
                        [name] => yii\log\Logger
                    )

            )

        [_dependencies:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\web\Request] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Dispatcher] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Logger] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

            )

        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
        [0] => yii\log\Logger
        [1] => Array
            (
            )

        [2] => Array
            (
            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 340
[function] => get
[class] => yii\di\Container
[object] => yii\di\Container Object
(
[_singletons:yii\di\Container:private] => Array
(
)
        [_definitions:yii\di\Container:private] => Array
            (
            )

        [_params:yii\di\Container:private] => Array
            (
            )

        [_reflections:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => ReflectionClass Object
                    (
                        [name] => yii\web\ErrorHandler
                    )

                [yii\web\Request] => ReflectionClass Object
                    (
                        [name] => yii\web\Request
                    )

                [yii\log\Dispatcher] => ReflectionClass Object
                    (
                        [name] => yii\log\Dispatcher
                    )

                [yii\log\Logger] => ReflectionClass Object
                    (
                        [name] => yii\log\Logger
                    )

            )

        [_dependencies:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\web\Request] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Dispatcher] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Logger] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

            )

        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
        [0] => yii\log\Logger
        [1] => Array
            (
            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 364
[function] => createObject
[class] => yii\BaseYii
[type] => ::
[args] => Array
(
[0] => yii\log\Logger
)
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/log/Dispatcher.php
[line] => 115
[function] => getLogger
[class] => yii\BaseYii
[type] => ::
[args] => Array
(
)
)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/log/Dispatcher.php
[line] => 87
[function] => getLogger
[class] => yii\log\Dispatcher
[object] => yii\log\Dispatcher Object
(
[targets] => Array
(
)
        [_logger:yii\log\Dispatcher:private] =>
        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
    )

)
Array
(
[function] => __construct
[class] => yii\log\Dispatcher
[object] => yii\log\Dispatcher Object
(
[targets] => Array
(
)
        [_logger:yii\log\Dispatcher:private] =>
        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
        [0] => Array
            (
                [traceLevel] => 3
                [targets] => Array
                    (
                        [0] => Array
                            (
                                [class] => yii\log\FileTarget
                                [levels] => Array
                                    (
                                        [0] => error
                                        [1] => warning
                                    )

                            )

                    )

            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 372
[function] => newInstanceArgs
[class] => ReflectionClass
[object] => ReflectionClass Object
(
[name] => yii\log\Dispatcher
)
[type] => ->
[args] => Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                        [traceLevel] => 3
                        [targets] => Array
                            (
                                [0] => Array
                                    (
                                        [class] => yii\log\FileTarget
                                        [levels] => Array
                                            (
                                                [0] => error
                                                [1] => warning
                                            )

                                    )

                            )

                    )

            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/Container.php
[line] => 151
[function] => build
[class] => yii\di\Container
[object] => yii\di\Container Object
(
[_singletons:yii\di\Container:private] => Array
(
)
        [_definitions:yii\di\Container:private] => Array
            (
            )

        [_params:yii\di\Container:private] => Array
            (
            )

        [_reflections:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => ReflectionClass Object
                    (
                        [name] => yii\web\ErrorHandler
                    )

                [yii\web\Request] => ReflectionClass Object
                    (
                        [name] => yii\web\Request
                    )

                [yii\log\Dispatcher] => ReflectionClass Object
                    (
                        [name] => yii\log\Dispatcher
                    )

                [yii\log\Logger] => ReflectionClass Object
                    (
                        [name] => yii\log\Logger
                    )

            )

        [_dependencies:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\web\Request] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Dispatcher] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Logger] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

            )

        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
        [0] => yii\log\Dispatcher
        [1] => Array
            (
            )

        [2] => Array
            (
                [traceLevel] => 3
                [targets] => Array
                    (
                        [0] => Array
                            (
                                [class] => yii\log\FileTarget
                                [levels] => Array
                                    (
                                        [0] => error
                                        [1] => warning
                                    )

                            )

                    )

            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/BaseYii.php
[line] => 344
[function] => get
[class] => yii\di\Container
[object] => yii\di\Container Object
(
[_singletons:yii\di\Container:private] => Array
(
)
        [_definitions:yii\di\Container:private] => Array
            (
            )

        [_params:yii\di\Container:private] => Array
            (
            )

        [_reflections:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => ReflectionClass Object
                    (
                        [name] => yii\web\ErrorHandler
                    )

                [yii\web\Request] => ReflectionClass Object
                    (
                        [name] => yii\web\Request
                    )

                [yii\log\Dispatcher] => ReflectionClass Object
                    (
                        [name] => yii\log\Dispatcher
                    )

                [yii\log\Logger] => ReflectionClass Object
                    (
                        [name] => yii\log\Logger
                    )

            )

        [_dependencies:yii\di\Container:private] => Array
            (
                [yii\web\ErrorHandler] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\web\Request] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Dispatcher] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

                [yii\log\Logger] => Array
                    (
                        [0] => Array
                            (
                            )

                    )

            )

        [_events:yii\base\Component:private] => Array
            (
            )

        [_behaviors:yii\base\Component:private] =>
    )

[type] => ->
[args] => Array
    (
        [0] => yii\log\Dispatcher
        [1] => Array
            (
            )

        [2] => Array
            (
                [traceLevel] => 3
                [targets] => Array
                    (
                        [0] => Array
                            (
                                [class] => yii\log\FileTarget
                                [levels] => Array
                                    (
                                        [0] => error
                                        [1] => warning
                                    )

                            )

                    )

            )

    )

)
Array
(
[file] => /home/dev/yii2/vendor/yiisoft/yii2/di/ServiceLocator.php
[line] => 133
[function] => createObject
[class] => yii\BaseYii
[type] => ::
[args] => Array
(
[0] => Array
(
[traceLevel] => 3
[targets] => Array
(
[0] => Array
(
[class] => yii\log\FileTarget
[levels] => Array
(
[0] => error
[1] => warning
)
                            )

                    )

                [class] => yii\log\Dispatcher
            )

    )

)
....need more info ?

....need more info ?

https://help.github.com/enterprise/11.10.340/user/articles/markdown-basics/

I found the problem.  eAccelerator not compatible with anonymous function . After disabled eAccelerator, everything go well.

That explains it.


user changes not located in content folder

The plugin connects to hooks triggered if a user is created or edited, but the changed account files are not in the content folder and therefor are not versioned.

Good Point! Same goes for Avatars, I will kick those out as there is no chance to version it at the moment

I have forked it and will send you a pull request. Best would be to make it optionally with seperate repos.

Am 28.10.2015 um 11:30 schrieb Pascal<EMAIL_ADDRESS>Good Point! Same goes for Avatars, I will kick those out as there is no chance to version it at the moment
—
Reply to this email directly or view it on GitHub.


getStructure

Just trying to have a more clear look of the changes required to implement getStructure on most nodes. Currently ClassDeclaration, FunctionDeclaration and ArrowDeclaration working with its required child kinds. Probably I will ask you to review some concrete decisions / implementation here, but not now - let me first make sure everything is correct so your time is not waste in vane. Thanks and sorry for the noise.

Coverage decreased (-0.05%) to 94.455% when pulling dd0df6080789be484ed1a4365ad541eb0bfc2c16 on cancerberoSgx:structure into 598deb55a524342e3ef439f82bd89279604dd219 on dsherret:master.

So, I made all the changes you asked David, with the exception of  if (!TypeGuards.isClassDeclaration(decl)), that's my way of type-guard instead of using orThrows and also this one :

Hmmm, could we always use the same base (ConstructorDeclarationBase.prototype), but instead strip the unused properties when this.isOverload() is true? Then we can catch changes to the base that shouldn't be in there in a unit test.

Regarding:

By the way, if at any time you want to merge this I can merge it into a branch and then I'll pick up the work to finish it off.

I would really like to have this feature in the library since I'm generating a log of code in my projects and basically working with my handcrafted "getStructure" methods. If you think it's more practical that you finish off the work in your own branch then go ahead (I feel you wasted more time in th elast review than if you implemented by yourself.) But to be sincere I would like to keep working on this and give support for getStructure to the rest of the nodes. But primariy, as I said before I would really need this integrated in master ASAP.
Thanks!

@cancerberoSgx I don't view it as wasting time because you taking on this work saves me a lot of time and plus it's another person who learns the inner workings of the library, which is always a plus. I just provided that as an option in case you didn't want to spend the time changing all my comments.
I'm going to be moving over the next week (lots of time spent packing) and attending some family events so I won't have time to work on this for the next while. Please continue working on it 😄

Nice thanks! BTW I also want to take this opportunity to learn about the inners of the library. I must say it was kind of intuitive once you point me how to workaround that mysterious build error :) Also I must say you are a very careful developer (compared to me) :P What do you think is missing in order to merge this work ? SHould I keep implementing getStructure for the rest of Node kinds ? As I said before I'm kind o fan urgency of having this feature and I woulnd't want to use my own branch... Please advice.
BTW I'm using the library to build TLS plugins for code fixes and refactors common in other typed languages / ides like Java/eclipse.  See https://github.com/cancerberoSgx/typescript-plugins-of-mine/tree/master/typescript-plugin-proactive-code-fixes - there are some .gifs at the bottom.  I bet you didn't imagine tsa being used like this. It saved me a lot of time although some of the refactors could take more than one second to apply ... Just experimenting and learning - let's see if I reach a production - ready product some day.
THanks!

For it to be merged into master this would have to be complete. So for the definition of complete I would say:

For every currently existing Structure interface there should exist a corresponding .getStructure() method on the node.
For every .getStructure() there should exist a test that checks the return value. <-- we don't need to go over the top and test every combination, but rather just ensure things generally seem to be working (maybe ballpark 1-3 tests per .getStructure() method, but obviously use discretion in the scenario)

If you urgently need this feature, then I recommend publishing your fork to npm and using that package in what you need .getStructure() for.
RE the plugins: very cool! For performance, have you looked into why it's taking so long? Should be pretty quick if you're just looking at the AST and not any symbols or types, but yes, it could be a bit slow otherwise. By the way, see the performance tip I recently added here: https://dsherret.github.io/ts-simple-ast/manipulation/performance -- not sure if it would help though.

Re plugins performance, I'm creating a new project every time a refactor is applied. Probably this can be improved - but the most slow thing is typeChecker.getTypeAtPosition or type inferring in general - no matter if the project is reused or not. Sincerily didn't put much focus in performance right now but I will, thanks!

@cancerberoSgx thanks for still working on this! Let me know when you'd like me to take a look again.

I can do a commit to fix the conflicts. I'll probably do it next weekend though.

I'm looking at the changes and I need time to understand how to merge these: NamedNode, BindingNamedNode correctly using NamedNodeBase. I don't have much time this week probably next one I can do it - would be ideal if you help / do it - thanks! ;P

Hey @cancerberoSgx, thanks a lot once again for this! It's easier for me to do the remaining work so I'll be working on this over the next while and hopefully we can get this merged this month.

This is merged now, but will be released in v15. Thanks for the help @cancerberoSgx! This was so much work.

Hey @cancerberoSgx, this is released now and seems to work well (in 15.0.1). The .fill method is deprecated now though. Use .set instead or the .addX methods.


DO NOT MERGE: Added vocable-ios-voice-spm

Adds the vocable-ios-spm package.

Commit include in PR 427.

Commit include in PR 427.


Unified product version management

Required for all PRs:

[ ] Updated associated README.md.
[ ] Wrote appropriate unit tests.

resolves #

/approve

/cherry-pick release/1.5 release/1.6-alpha.1


new URL

Documentation is

[ ] Missing
[ ] Outdated
[X] Confusing
[ ] Not sure?

Explain in Detail
I mistakenly used the new URL during development, resulting in the online image could not be displayed, so I conducted a test and found the following situation: Picture 1 is the development phase, picture 2 is online. imgUrl2 and imgUrl6 are correct, and I also know that the easiest way to solve this problem is to make the judgment outside that the first argument to the new URL is always a string. Through the double comparison of imgUrl1, imgUrl2, imgUrl3, imgUrl4, imgUrl5 and imgUrl6, I find that + cannot be used, but how can I explain imgUrl4 and imgUrl6?
picture1:

picture2:

Your Suggestion for Changes
Can the official add to the documentation how to use it properly?
Reproduction
No response
Steps to reproduce
No response

Actually, this is explained in the documentation.
https://vitejs.dev/guide/assets.html#new-url-url-import-meta-url


Parameterization of node features

Hi,
Thanks for your great work.
I have some confusions  about https://github.com/HKUDS/OpenGraph/blob/main/link_prediction/model.py#L31 . It seems that features obtained from svd_proj is warped as parameter and involved during training. Why does make such feature trainable? It is just like we make an input is trainable, which confused me a lot.
Looking forward your reply.

代码里的优化器好像只优化OpenGraph模型里的参数， 虽然将特征作为参数，但其实好像是不被优化的。你可以运行代码打印看看是否特征真被训练，我没运行过
@mt-cly

Thank @mt-cly for raising the issues, and thank @wuhaoxz for answering it. Indeed, although we wrap the features in nn.Parameter, they are not included as trainable parameters in the optimizer. Wrapping the features in nn.Parameter might have led to some confusion. This writing style is only a legacy one. I believe in old versions of the code, I tested learning independent embeddings which needs this wrapping.


[range-v3] update to 0.10.0

Library name: range-v3
New version number: 0.10.0
Other information that may be useful (release notes, etc...)
https://github.com/ericniebler/range-v3/releases/tag/0.10.0

Hi @davidhunter22
Thanks for posting this issue.
range-v3 has been updated in PR #9986.
Please try to update vcpkg and use this port.


[VS Code] Joining collaboration session: The specified value isn’t a valid Live Share URL. Please check the link provided by the host and try again.

Error:
Joining collaboration session: The specified value isn’t a valid Live Share URL. Please check the link provided by the host and try again.
Steps to Reproduce:

Version Data

extensionName
VSLS

extensionVersion
1.0.18

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.33.0

platformName
MacOS

platformVersion
18.2.0

Hi, @AlaaAlhilly, I'm guessing you were trying to join with VSCode through the browser? There's a known bug with that, for which we're in the process of deploying a fix. In the meantime, joining directly from the client should unblock you.


Add tables aliasing to avoid conflict in embeds with self reference fks

Fixes #987.  Using the family_tree TABLE provided in https://github.com/begriffs/postgrest/issues/987#issue-260720899 we do a:
GET /family_tree?id=eq.3&select=family_tree.parent(*) and currently this generates the following query:
SELECT COALESCE((
  SELECT array_to_json(array_agg(row_to_json("family_tree")))
  FROM (
    SELECT  "test"."family_tree".* FROM  "test"."family_tree"
    WHERE  "test"."family_tree"."parent" = "test"."family_tree"."id") "family_tree"),
 '[]') AS "family_tree" FROM  "test"."family_tree"  WHERE  "test"."family_tree"."id" = '3'::unknown;
-- Gives []
-- It should give [{"id":"5","name":"Grandkid Two","parent":"3"}]

The problem is that the subquery should be referring to the parent "test"."family_tree", to get the correct result the query should be like:
SELECT COALESCE((
  SELECT array_to_json(array_agg(row_to_json("family_tree")))
  FROM (
    SELECT  "test"."family_tree".* FROM  "test"."family_tree"
    WHERE  "test"."family_tree"."parent" = x."id") "family_tree"),
 '[]') AS "family_tree" FROM  "test"."family_tree" x  WHERE  x."id" = '3'::unknown;
-- Gives [{"id":"5","name":"Grandkid Two","parent":"3"}]

So to solve this the parent "test"."family_tree" needs to be aliased.
To generalize the fix I initially thought of adding an uuid alias to every FROM but what I've done is to add a Level attribute to the ReadNode type that represents the level of the tree where the node is at and then when building the query the FROM target can be aliased as target_{level}.

Seems to work fine. The code is complex, but the results are cool.

(When you're comfortable with this branch, it looks OK to merge, at least to my not fully-comprehending pass over it. Passes the tests and all.)


[Feature]: Provide a way to remove all obsolete browser revisions in the cache

Feature description
In Puppeteer 20 the BrowserFetcher class was removed in favor of the new @puppeteer/browsers package, but sadly the latter doesn't seem to provide a way to remove browsers and get all installed browsers/revisions that the former did.
The use case for this is that currently the cache directory can grow indefinitely, which is a problem locally and when running on fixed CI bots, so we need a way to prune old downloaded browsers. This used to be done by Puppeteer before, but was removed in https://github.com/puppeteer/puppeteer/commit/344bc2af62e4068fe2cb8162d4b6c8242aac843b, however we still could do this ourselves with BrowserFetcher.localRevisions and BrowserFetcher.remove. This is now also not an option anymore since Puppeteer 20; all we can use is the Cache.clear method, but that is not fine-grained enough because it will remove all browsers in the cache, including the current ones which we'd then have to download again. This is quite suboptimal, and it leads to solutions like https://github.com/alphagov/govuk-frontend/blob/d915dfccbe178d76ddeee288b565320a91549074/shared/helpers/jest/browser/download.mjs which mostly work but require quite a bit of error-prone orchestration in user code.
It would be much nicer if Puppeteer's browser package provided a simple API to remove all obsolete (non-current) browser revisions. If that is not possible, it should get a similar API to BrowserFetcher with getInstalledBrowsers and remove methods. Note that getInstalledBrowsers already exists on the Cache, but that doesn't seem like the most logical place to me and seems to fit in much nicer in the browsers package, also to encapsulate the browsers logic a bit more. This would at least provide user code with a simple way to enumerate all revisions and throw away the ones they are not interested in.

The trimCache functionality looks exactly like what I had in mind here and will make cleaning the cache in user code trivial. Thank you @OrKoN for implementing this; once a release is made I'll be happy to test this over at Mozilla's PDF.js project and then there should be no blockers anymore for upgrading to Puppeteer 20 from our side I think!

@timvandermeij thanks for taking a look!

The trimCache functionality works now, but I haven't gotten it working in the way I had expected it to. I tried to use this:
const puppeteer = require("puppeteer");
await puppeteer.trimCache()

but this always results in the following error:
node_modules/puppeteer-core/lib/cjs/puppeteer/node/PuppeteerNode.js:230
        const cacheDir = (_a = this.configuration.downloadPath) !== null && _a !== void 0 ? _a : this.configuration.cacheDirectory

This happens at https://github.com/puppeteer/puppeteer/pull/10199/files#diff-e611ba63f1ac00e3c588e82158e82190abc697aad9f2d377c569990c2f152c50R296-R297 because somehow this.configuration is undefined. I couldn't figure out why because looking at https://github.com/puppeteer/puppeteer/blob/4f396b6147db9518c44388920e39653412fd737c/packages/puppeteer/src/puppeteer.ts#L30-L56 the trimCache method I use from the top-level import should be the one from the PuppeteerNode object and that in turn should always have configuration according to https://github.com/puppeteer/puppeteer/blob/4f396b6147db9518c44388920e39653412fd737c/packages/puppeteer/src/puppeteer.ts#L25.
I was able to get it working with this instead:
const puppeteer = require("puppeteer");
await puppeteer.default.trimCache()

since the PuppeteerNode was exposed in the default key. However, I'm not sure if this is intended API usage or a bug?

I think it is a bug, thanks for reporting!

I can now confirm that the PR above fixed this issue as well. On our side we've now upgraded to Puppeteer 20 with the trimCache work fully integrated, so this issue can be closed now. Thanks again for your efforts!


Build benches as part of CI checks

We probably want to know when they break ?

Isn't this covered by build --all-targets? We don't want to actually run the benchmarks, which is what this PR does.

I believe --no-run argument inhibits running.
Yes, --all-targets builds benches, I didn't notice that. Thanks.
Sorry for the vapor PR then. I got confused because benches seem to panic on the current code state.

Ah, no worries! If the benchmarks are panicing we should sort that out regardless.


[ci] Use GitHub token to avoid ripgrep download issue

In a recent CI run, I noticed this error:
"Downloading ripgrep failed: Error: Request failed: 403"
This can randomly happen on CI machines, because GitHub has limits when anonymously accessing its API, which we do when downloading ripgrep. There's an easy fix: use an auto-generated GitHub token when building the Theia app.
Also tidied-up the workflow file a little, to make it easier to read.

While in there, I have cleaned-up the labels used for the workflow, i.e. its name and the build and step names. I think it will look nicer in the PR "checks" section and also in the detailed Actions page. Let me know if you do not like.


[request] Allow Multi-Import

Hi,
a Usability Request:
It would be easier to have a multi-select popup on the asset selection droddown in order to start multiple imports at once.
Mockup:

br.
Johannes

I see the UX reasons behind this, but there would be 2 major limitations:

by default data is stored in sqlite. Each import (is currently designed to) run in a seperate process which means they cannot share one database connection. Sqlite will start complaining pretty fast, see #664.
allowing users to start a lot of imports in parallel is a great way to get rate limited / API banned from the exchange really fast. Without sufficient information on hard/soft caps it's better to not try your luck imo.


Error response from the container registry, https://pacbio.azurecr.io

Hello! We had been able to use the pipeline in production. But the last pipelining had the problem with the container registry below. Can you help with the issue?

Error response from daemon: Head "https://pacbio.azurecr.io/v2/pb-human-wgs-workflow/manifests/latest": error parsing HTTP 403 response body: unexpected end of JSON input: ""

Hi Byunggil, we have a temporary outage and we're working to address it.  Hoping to have it taken care today.

Thanks a lot, @williamrowell!

@williamrowell,
Would you let us know when the issue is resolved? Thanks!

I definitely will let you know as soon as it's fixed.

@byoo Sorry for the delay. We're working to avoid this kind of downtime in the future.
Can you verify that service has been restored?

@williamrowell It looks good and the first set of tasks fixed successfully. I will report if there are any issues. Thanks!

@byoo Thanks for verifying, and sorry for the downtime.


Feature/simple custom handler

fixed some bugs regarding layer-obtaining, also enabled an easier way to add new handlers

Codecov Report

Merging #40 (8f2cefd) into main (2de894f) will increase coverage by 0.18%.
The diff coverage is 98.21%.

@@            Coverage Diff             @@
##             main      #40      +/-   ##
==========================================
+ Coverage   90.81%   91.00%   +0.18%
==========================================
  Files          22       22
  Lines        1481     1534      +53
==========================================
+ Hits         1345     1396      +51
- Misses        136      138       +2

Impacted Files
Coverage Δ

...a_toolbox/encodings/pytorch/ingest_architecture.py
90.90% <0.00%> (-1.07%)
:arrow_down:

rfa_toolbox/__init__.py
53.84% <100.00%> (ø)

rfa_toolbox/encodings/pytorch/__init__.py
100.00% <100.00%> (ø)

rfa_toolbox/encodings/pytorch/layer_handlers.py
91.74% <100.00%> (+1.21%)
:arrow_up:

rfa_toolbox/encodings/pytorch/utils.py
90.00% <100.00%> (+23.33%)
:arrow_up:

tests/test_encodings/test_pytorch.py
100.00% <100.00%> (ø)

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 35414ff...8f2cefd. Read the comment docs.


Null-valued expression and unvalid location

When running the deployment script I recieve two error messages. They seem to have something to do with the chosen location:

The location I chose is westeurope.

@Jorenvd can you please let me know the parameters that you used for the location when you ran the script please?

@alexc-MSFT ofcourse, I used the westeurope parameter.

Hello @alexc-MSFT , Have you been able to investigate the error I recieve? Unfortunately I have not been able to roll out the app yet because of this error.
Your help would be really appreciated.
Thank you in advantage

I had the same problem today, with the latest release.
The problem is that the variable "$global:location" is set to $null in the beginning of the script. Line 240.
So when we pass in a $location variable, it is set to $null as well.
I did a workaround by commenting out line 240.
Worked fine after this.


can enable or disable coupon

can enable or disable the coupon based on is_enable column in coupons table

Hey there @syamsoul 👋
Please, fix PR checks and review my suggestions.
Note: BC check is probably acceptable since this is the model's casts and I don't see the need to rely on the default value of this property.

Hey there @syamsoul 👋
Please, fix PR checks and review my suggestions.
Note: BC check is probably acceptable since this is the model's casts and I don't see the need to rely on the default value of this property.

hi @michael-rubel , i just did some amendments based on your request.

@syamsoul tests are still failing.
Also, I'd add the default value true for the isEnabled method for those who still don't have the is_enabled column in their database.

@syamsoul tests are still failing in PR.
Also, I'd add the default fallback to true in the isEnabled method for those who still don't have the is_enabled column in their database.

@michael-rubel , I just pushed new commits but not sure why 3 tests are still failing

@syamsoul I'll take a look.

Thank you @syamsoul
Released as v7.1.0.

Thank you @syamsoul
Released as v7.1.0.

Thank you very much !