Syntax Proposal: function coercion "is the key to internal DSLs".

When a function receives a parameter that is a function, allow it to coerce with this form:
Obs: its allow languages to have constructions that assembles language itself using functions.
object block:
{.}
{..}
record block:
{,}
executable block:
{;}
function block:
{}
//Obs: self enclosed function block form ex:  {it => "xx"} or {(it)=>"xx"} | {=>} or {()=>} or {}
let ext1 = (self: string, block: unit=>string) => {
self ++ "xxxx";
};
let ext2 = (self: string, block: string=>string) => {
block(self ++ "xxxx");
};
/actual form/
ext1("x") (()=>{"xx"});
/coerced new form/
ext1("x") {"xx"};
/actual form/
ext2 ("x") ((arg0)=>{"xx"});
/coerced new form/
ext2 ("x") {it => "xx"};

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like i said, this is the secret ingredient to form internal DSLs because assembles a language construct itself.
some(2, 3) {=>
  body
};

some(2, 3) {() =>
  body
};

some(2, 3) {
  body
};
/*You can even use this to create builder forms of high order functions, from function that receives functions as parameters */

some(2, 3) {
  body
} {
  body
};

Instead of:

some(2, 3) () => {
  body
}  () => {
  body
};

/*or like actually valid*/
some(2, 3) (() => {
  body
}) ( () => {
  body
});

kotlin has this, swift has this... might be interesting to try out to see how it would effect real-world codebases. I'm a little skeptical, as it's one more thing to be confused by when learning a syntax, but I understand it can be nice.

It is not because of kotlin, internal DSLs in my humble opinion, open a lot of opportunities and ReasonML is realy near with this small and not intrusive addition, self enclosed function blocks "{it => "xx"}" instead of "it=>{"xx"}" make alot of sense in conjunction with all others self delimited blocks like objects,records and so.

object block:
{.}
{..}
record block:
{,}
function block:
{=>}

Hrmm {a => b; c} currently means "two expressions, the function a => b, and then the value c. Changing it to mean "a function with two expressions, b and c" feels like way too big of a jump.

I' m looking forward to see if it will impact on deployed code base, but this syntax make real sense with the rest of blocks on the language.

I wonder if you or someone agree that self contained blocks make sense for functions, if some one have a suggestion for that.

Maybe semicolon on the end be promoted to resolve it.
function:
{a => b; c}
executable block:
{a => b; c;}

Maybe semicolon "the sequencer operator" on the end be promoted to resolve it.
function:
{a => b; c}
unit function block "can scare someone ;)":
{}
executable block:
{a => b; c;}
unit executable block example:
{;}
Syntax highlight can recognize and make this beautiful

Maybe semicolon "the sequencer operator" be promoted to resolve it.
function:
{a => b; c}
unit function block "can scare someone ;)":
{}
executable block:
{;a => b; c}
unit executable block example:
{;}
Syntax highlight can recognize and make this beautiful

I think that in functional language, function syntax is the queen.

Maybe semicolon "the sequencer operator" be promoted to resolve it.
function:
{a => b; c}
{a =>
b;
c
}
unit function block "can scare someone ;)":
{}
executable block:
{;a => b; c}
{;
a => b;
c
}
unit executable block example:
{;}
Syntax highlight can recognize and make this beautiful

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient form internal DSLs becouse assembles a language construct itself.

some(2, 3) {=>
  body
};
some(2, 3) {() =>
body
};
other("fn") {arg =>
body
};

other("fn") {(arg)=>
body
};
Instead of:

some(2, 3) () => {
  body
};
other("fn") (arg) => {
body
};

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient form internal DSLs becouse assembles a language construct itself.
`
some(2, 3) {=>
body
};
some(2, 3) {() =>
body
};
other("fn") {arg =>
body
};
`
other("fn") {(arg)=>
body
};
Instead of:
`

some(2, 3) () => {
body
};
other("fn") (arg) => {
body
};
`

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient to form internal DSLs, because assembles a language construct itself only using functions.
`
some(2, 3) {=>
body
};
some(2, 3) {() =>
body
};
other("fn") {arg =>
body
};
other("fn") {(arg)=>
body
};
`
Instead of:
`
some(2, 3) () => {
body
};
other("fn") (arg) => {
body
};
`

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like i said, this is the secret ingredient to form internal DSLs, because assembles a language construct itself only using functions.
`
some(2, 3) {=>
body
};
some(2, 3) {() =>
body
};
other("fn") {arg =>
body
};
other("fn") {(arg)=>
body
};
`
Instead of:
`
some(2, 3) () => {
body
};
other("fn") (arg) => {
body
};
`

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient form internal DSLs becouse assembles a language construct itself.
some(2, 3) {=>
  body
};

some(2, 3) {() =>
  body
};

other("fn") {arg =>
  body
};

other("fn") {(arg)=>
  body
};

/*You can even use this to create builder form:*/

some(2, 3) {
  body
} {
  body
};

Instead of:

some(2, 3) () => {
  body
};

other("fn") (arg) => {
  body
};

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient to form internal DSLs because assembles a language construct itself.
some(2, 3) {=>
  body
};

some(2, 3) {() =>
  body
};

other("fn") {arg =>
  body
};

other("fn") {(arg)=>
  body
};

/*You can even use this to create builder forms of high order functions, from function that receives functions as parameters */

some(2, 3) {
  body
} {
  body
};

Instead of:

some(2, 3) () => {
  body
};

other("fn") (arg) => {
  body
};

I think that internal DSLs is the last frontier to make ReasonML an universal replacement to any language, even over Ruby,Kotlin,Groovy,Scala and so on.

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient to form internal DSLs because assembles a language construct itself.
some(2, 3) {=>
  body
};

some(2, 3) {() =>
  body
};

other("fn") {arg =>
  body
};

other("fn") {(arg)=>
  body
};

/*You can even use this to create builder forms of high order functions, from function that receives functions as parameters */

some(2, 3) {
  body
} {
  body
};

Instead of:

some(2, 3)  () => {
  body
}  () => {
  body
};

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient to form internal DSLs because assembles a language construct itself.
some(2, 3) {=>
  body
};

some(2, 3) {() =>
  body
};

some(2, 3) {
  body
};
/*You can even use this to create builder forms of high order functions, from function that receives functions as parameters */

some(2, 3) {
  body
} {
  body
};

Instead of:

some(2, 3) () => {
  body
}  () => {
  body
};

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like a said, this is the secret ingredient to form internal DSLs because assembles a language construct itself.
some(2, 3) {=>
  body
};

some(2, 3) {() =>
  body
};

some(2, 3) {
  body
};
/*You can even use this to create builder forms of high order functions, from function that receives functions as parameters */

some(2, 3) {
  body
} {
  body
};

Instead of:

some(2, 3) () => {
  body
}  () => {
  body
};

/*or like actually valid*/
some(2, 3) (() => {
  body
}) ( () => {
  body
});

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like i said, this is the secret ingredient to form internal DSLs because assembles a language construct itself.
some(2, 3) {=>
body
};
some(2, 3) {() =>
body
};
some(2, 3) {
body
};
/*You can even use this to create builder forms of high order functions, from function that receives functions as parameters */
some(2, 3) {
body
} {
body
};
Instead of:
some(2, 3) () => {
body
}  () => {
body
};
/or like actually valid/
some(2, 3) (() => {
body
}) ( () => {
body
});

I think that is easy to parse and mentally homogeneous this form, since it clearly make blocks self contained, and like i said, this is the secret ingredient to form internal DSLs because assembles a language construct itself.
some(2, 3) {=>
  body
};

some(2, 3) {() =>
  body
};

some(2, 3) {
  body
};
/*You can even use this to create builder forms of high order functions, from function that receives functions as parameters */

some(2, 3) {
  body
} {
  body
};

Instead of:

some(2, 3) () => {
  body
}  () => {
  body
};

/*or like actually valid*/
some(2, 3) (() => {
  body
}) ( () => {
  body
});

hmmm I'm not seeing how making this syntax change would allow us to implement async/await in userland. Could you elaborate here?

implement suspendable functions instead of keywords async/await.
internal DSL it will make possible to create syntax constructions only with functions.
when "suspendable function" "aka coroutine" exists it will be possible without change language syntax.
instead of create a concept of async/await let it be functions.
async will be a function of the core library and await will be a suspendable function of the core library.
i can make a suspendable function by my self.
suspendable functions can be called in context of others suspendable functions.
it will delegate the responsibility of suspension to the leaf most call and free the caller to worry about asynchronous detail, but someone can wait on a promise since i can have a suspendable function that receive a promisse.

implement suspendable functions instead of keywords async/await.
internal DSL it will make possible to create syntax constructions only with functions.
when "suspendable function" "aka coroutine" exists it will be possible without change language syntax.
instead of create a concept of async/await let it be functions.
async will be a function of the core library and await will be a suspendable function of the core library.
i can make a suspendable function by my self.
suspendable functions can be called in context of others suspendable functions.
it will delegate the responsibility of suspension to the leaf most call and free the caller to not worry about asynchronous detail, but someone can wait on a promise since i can have a suspendable function that receive a promisse.

implement suspendable functions instead of keywords async/await.
internal DSL it will make possible to create syntax constructions only with functions.
when "suspendable function" "aka coroutine" exists it will be possible without change language syntax.
instead of create a concept of async/await let it be functions.
async will be a function of the core library and await will be a suspendable function of the core library.
i can make a suspendable function by my self.
suspendable functions can be called in context of others suspendable functions.
it will delegate the responsibility of suspension to the leaf most call and free the caller to not worry about asynchronous detail, but someone can wait on a promise since i can have a suspendable function that receive a promise.

implement suspendable functions instead of keywords async/await.
internal DSL will make possible to create syntax constructions only with functions.
when "suspendable function" "aka coroutine" exists it will be possible without change language syntax.
instead of create a concept of async/await let it be functions.
async will be a function of the core library and await will be a suspendable function of the core library.
i can make a suspendable function by my self.
suspendable functions can be called in context of others suspendable functions.
it will delegate the responsibility of suspension to the leaf most call and free the caller to not worry about asynchronous detail, but someone can wait on a promise since i can have a suspendable function that receive a promise.

Actualy i use, suspendable functions to releave my co-workers from create bugs when forget to call await, no more awaits every where and when nessesary they can interact with promise calling await or other espetialized suspendable function can be used to do the job.

Actualy i use, suspendable functions to releave my co-workers from create bugs when forget to call await, no more awaits every where and when nessesary they can interact with promise calling await or other suspendable function can be used to do the job.

implement suspendable functions instead of keywords async/await.
internal DSL will make possible to create syntax constructions only with functions.
when "suspendable function" "aka coroutine" exists it will be possible without change language syntax.
instead of create a concept of async/await let it be functions.
async will be a function of the core library and await will be a suspendable function of the core library.
i can make a suspendable function by my self.
suspendable functions can be called in context of others suspendable functions.
it will delegate the responsibility of suspension to the leaf most call and free the caller to not worry about asynchronous detail, but someone can wait on a promise since i can have a suspendable function that receive a promise.
Who call the core library function suspend(callback(continuation)) is the actual "suspensor" of the computation, and it continues when the callback calls "continuation.resume()".

I know that i'm referencing the Kotlin coroutine framework that enables all kind of async computations, and DSLs are part of that language too.
I'm not bring the language here, but only the concept that is already battle tested and is not new to computation folks "continuations" and "DSLs".

Actualy i use, suspendable functions to releave my co-workers from create bugs when they forget to call await, no more awaits every where and when nessesary they can interact with promise calling await or other suspendable function can be used to do the job.

"adding suspendible functions to the language" isn't really on the table right now -- if you're interested, check out the "algebraic effects for ocaml" work that's being done. It's very promising, but probably a couple years out before it lands. It's not really a trivial "oh just add this to the runtime" kind of a thing 😅
As for this syntax change, I'm still pretty skeptical of it. We already dramatically changed the look & feel of function blocks, and that time it was in service of being more familiar to folks coming from javascript. This would actively work against that, and I'm not convinced that it would offer a ton of benefit.
If we had a concrete example of a codebase that would be made much simpler / easier to write/maintain etc. by this change, then that would be a useful way to further the conversation.

btw I definitely don't want to come off as raining on your parade -- I can tell you're excited about this, and that's what we need for this community to thrive! I'm just cautious about introducing sweeping syntax changes -- there's a very real cost to a change like this, and I want to make sure the benefit is worth it.

The only change that is not compatible with current Syntax are ";" at begin of executable blocks, the rest can stay to keep javascript people happy and function coercion will be a plus.
I'm very glad to be part of this and i'm trying to bring my opinion to prevent this great effort to become like Dart.
In 2011 i participated on a debate almost like that, on Dart forum, folks of Dart say the same thing about  not make peple familiar with Java upset.
In my opinion, people that are happy with javascript will not adopt a new paradigm language only for  syntax familiarity, people that are unhappy or feel limited by the mess of javascript will be open to small syntax changes to bring then great future prof implementations, internal DSLs are a ruge advantage to language syntax.
My sincere admiration to you be patient with my argumentation, thank you ;)

The only change that is not compatible with current syntax is ";" at begin of executable blocks, the rest can stay to keep javascript people happy and function coercion will be a plus.
I'm very glad to be part of this and i'm trying to bring my opinion to prevent this great effort to become like Dart.
In 2011 i participated on a debate almost like that, on Dart forum, folks of Dart say the same thing about not make peple familiar with Java upset.
In my opinion, people that are happy with javascript will not adopt a new paradigm language only for syntax familiarity, people that are unhappy or feel limited by the mess of javascript will be open to small syntax changes to bring then great future prof implementations, internal DSLs are a ruge advantage to language syntax.
My sincere admiration to you be patient with my argumentation, thank you ;)

I'm studying PPX rewriters and encountered a corner case that self contained function block simplify.
When someone annotate a block without enclose with more parenthesis, in fact is annotating only the parameter.
let myFunc = [@cps] {it =>
      it ++ string_of_int(1);
      "xxx";
};

let myFunc =  {[@cps] it =>
      it ++ string_of_int(1);
      "xxx";
};

/*instead of*/

let myFunc = [@cps] it => {
      it ++ string_of_int(1);
      "xxx";
};

let myFunc = [@cps] (it => {
      it ++ string_of_int(1);
      "xxx";
});

hmm it looks like
let myFunc = [@cps] it => {
      it ++ string_of_int(1);
      "xxx";
};

puts the annotation on the function expression, not the argument. If you want to annotate the parameter, this will do it
let myFunc = ([@cps] it) => {
      it ++ string_of_int(1);
      "xxx";
};

(tested locally with Refmt 3.1.1)

The problem seems be only shifted, people will need think about wrap to disambiguate the syntax.

 <Button
                 onPress=(
                   () =>{
                         log(1) ;
                         log(2);
                      }
                 )
                 title="Press"
               />
/* VS */
 <Button
                 onPress={
                         log(1);
                         log(2);
                 }
                 title="Press"
               />


close #874 - implement selection of previous iterations for reviewer and user

This PR is very big, but unfortunately I cannot break it down into smaller pieces, everything is tightly coupled together. I could try to separate changes for reviewer and student pages but it would lead to weird temporary components and helpers which would be overwritten by the very next pr. The initial pr would be about the same size minus a few files.
Main changes are in ReviewCard and ChallengeMaterial components. I'd suggest starting review with ReviewCard, it's shorter and a bit easier to read.
ReviewCard
Currently we're using GetSubmissions query to fetch all open submission for the specified lesson. This PR adds additional query GetPreviousSubmissions which is triggered for every ReviewCard component once it mounts. It's non-blocking data fetching, so render speed will be exactly the same as before.
Is it possible to fetch everything in one query? I don't know, I guess some sql wizard could have done it, but Prisma doesn't support subqueries yet, and the raw sql would be really big and clunky to maintain.
There are two new states - index and submission. Submission is the current selected submission and index is its index in getPreviousSubmissionQuery data.
The initial component got too big, so I split it in two. Review buttons are now in their own ReviewButtons component, their functionality is the same.
ChallengeMaterial
ChallengeQuestionCard component also got too big. Diff rendering is now done in a separate component -  ChallengeQuestionCardDisplay.
Again, there are two new states - index and submission. But unlike ReviewCard there are two useEffects too. One is for updating data after receiving getPreviousSubmissions query and changing current index just like in ReviewCard. Another one is for resetting index when user clicks on different challenge.
updateCache
Both components use the same updateCache helper function which updates getPreviousQuery client side.
For people who are not familiar with updating client cache in apollo. Only server side is updated when you use a mutation, so you need to manually override cache in order to reflect current state of component. Once you do this all updated queries-hooks are triggered which results in rerendering. It's a data loop of sorts.
DiffView
This component had a lot of different props but they all were parts of submissions type. So istead of adding another one I simply passed the whole submission. GeneralStatus is total status of submission (for example, you could have five iterations from getPreviousSubmissions query - 'needMoreWork', 'overwritten', 'overwritten', 'needMoreWork', 'Open') with generalStatus 'Open'.
CommentBox
Again, the same generalStatus. Also, I choose to show comments even on rejected submissions, hiding them makes no sense when you can select previous submissions. Adding comments is disabled when generalStatus isn't 'Open' though.
Test file changes
I added new dummy data file - getPreviousSubmissionsData. We should unify our test data someday, currently most tests use their own data. It makes test files harder to read but more importantly if you update any grapql type you need to update every test mock (grapqh enforces types even in tests).

Vercel (I created test submission under js0, do not comment on students previous iterations yet, users won't be able to see your messages).

There is something off with rejection comment on vercel preview, the last open submission should not have rejection message. I'll check it tomorrow, this is not the intended behavior.

As a small suggestion, please add a screenshot of the new or changed component when you're working on front-end code. It's easier to grasp what the PR is about this way. I know that there is the storybook preview but it's easier if you have a little screenshot on your description.
That said, I think the current styling has way too much whitespace, and that weird box around it.

Maybe the submissions selector could go on the top right, after the challenge name, and make it a little smaller and the boxes more close together. Also that Iteration 3 of 4 text is kinda redundant since it's the same information as the boxes display.

please add a screenshot of the new or changed component when you're working on front-end code

Maybe I should have added general layout with this component. But storybook enforces types, so it's rather cumbersome creating all these dummy files according to proper type definitions.
Anyways, selection counter is now in the top right corner. And accept/reject buttons are hidden for previous submissions (check updated vercel).

Accepted submissions without comment are not showing who was the reviewer.

Should look like this one but without the approval comment text.

Accepted submissions without comment are not showing who was the reviewer.
It should work correctly even without a comment. These submissions were overwritten by user without waiting for approval/rejection.

I need to work on these review cards more though. Maybe add another one for resubmission. And refactor them into separate component to use in challenge page.
But this PR is too big already, so I'd rather make another one for these changes.


Add ability to retrieve registered actors (activated instance or non-activated) for diagnostics

In what area(s)?

/area runtime

Describe the feature
Currently the actor metadata api will allow you to retrieve a list of actors that have been activated.  This request is to enhance the metadata api to allow you to retrieve the full list of registered actors (even if that actor has seen no activations).
This is in the same spirit as an early request around reminders ...
https://github.com/dapr/dapr/issues/2050
the common idea is that ... if something can be set in dapr, there should be a way to retrieve it.

another thought on this ... ideally it would be great to ...

retrieve to complete list of registered actors
be able to retrieve the list of actors registered by the call the calling app (likely a subset)

Hi Folks ... wondering if there is a chance for this anytime soon ... before going off and working on some app level solution for this ... thanks !

Activation statistics can also be viewed in the dashboard as Microsoft Orleans does in its dashboard. I have found it very useful to know the activation statistics of actors.


Proguard rules

I see a couple proguard files but without any active rules. My release version crashed. After adding -keep class <package>.**{*;} and -keep enum <package>.**{*;} for auth and onedriveaccess I got it working again.
Please research what (minimal) proguard rules are required for the example to run or add a wiki entry/hint for proguard.
#enhancement
PS: It'd also be good to point out that the 3rd party libs used may require addition proguard rules.

PPS: I added these for the 3rd party libs (taken from project pages or SO):
### okhttp ###
-dontwarn com.squareup.okhttp.**
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
### retrofit ###
-dontwarn retrofit.**
-keep class retrofit.** { *; }
### gson ###
-keepattributes *Annotation*
### okio ###
-dontwarn okio.**
### joda time ###
-dontwarn org.joda.time.**

Thanks for the request @black-snow!


Where is  local.sample.env

Below is the statement in readme.md
 cp {{ project_name }}/src/{{ project_name }}/local.sample.env {{ project_name }}/src/{{ project_name }}/local.env

but there is no such file. may some one add one?

有這個檔案啊


feat: Require users to supply OS via ami_type and not via platform which is unable to distinquish between the number of variants supported today

Description

Require users to supply OS via ami_type and not via platform which is unable to distinquish between the different variants

Motivation and Context

Resolves #3062

Breaking Changes

No

How Has This Been Tested?

[x] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

[x] I have executed pre-commit run -a on my pull request

This PR is included in version 20.14.0 :tada:


[BUG] Slack alerting notifications regression

What is the bug?
In OpenSearch 1.2.x all Slack notifications was formatted as $subject \n\n $message. And all worked very fine.
In OpenSearch 2.2.0 all Slack notifications formatted as Alerting-Notification Action \n\n $subject \n\n $message. And for now all slack notifications with alerts bad readable because of prefix "Alerting-Notification Action".
How can one reproduce the bug?
Just create any alert with slack notification.
What is the expected behavior?
Please, return old formatting for slack notifications. $subject \n\n $message, without hardcoded prefix "Alerting-Notification Action".
Do you have any additional context?
As i see, hardcoded prefix used here.

Thank you for finding the issue, looking into it.

@praveensameneni I have created a pull request with a "hacky" solution to this issue by passing a blank space, since from my investigation the notification plugin does't send a notification if null or empty string to be passed (see here )
I confirmed by manual testing that it works properly and sends slack messages without this "Alerting-Notification Action".
About integration tests, we don't have any in alerting testing content notifications from what I can see? It is possible to create a socket server to pass notifications to it and then assert them as part of integration test, would that be an acceptable solution?

+1,
Seems like a wider issue.
@praveensameneni - This issue is also impacting SNS, when triggering to SNS, the email subject is no longer the correct one but the "Alerting-Notification Action" is being received, started after upgrading to 2.x from 1.x.
We can no longer distinguish between the alerts due to it by the Subject.

This issue has been fixed with the PR


Ingest images with multiple .

 Issue by andyneff
Wednesday Feb 03, 2016 at 18:25 GMT
Originally opened as https://github.com/ngageoint/voxel-globe/issues/34

If you ingest an image with multiple . in it, the images will not show up in the viewer
This is caused because the filename splitter splits on the first . and not last.

Fix merged in with #36


Show amount of vocabs on start screen

Behind every name of a lecture we should show the number of vocabularies in [] or () brackets.

Specified in new design.

Not relevant anymore (since this repo now is a pure CMS)


fix: body only counts as scrollable if documentElement is scrollable

Fixes #359

:tada: This PR is included in version 2.2.15 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


alexa.APP_ID does not work anymore

It is alexa.appId now.

I did a PR here https://github.com/alexa/skill-sample-nodejs-howto/pull/13 please merge to avoid mistakes for newbies like me.
Thanks to GadgetChannel who ansered my forum question here:
https://forums.developer.amazon.com/questions/64797/warning-application-id-is-not-set.html

not appid,
it should APP_ID

looks like this was resolved through a PR, but the issue was not closed at that time.  Closing...


lilv: 0.24.8 -> 0.24.10

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/lilv/versions.
meta.description for lilv is: "A C library to make the use of LV2 plugins"
meta.homepage for lilv is: "http://drobilla.net/software/lilv"
meta.changelog for lilv is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.24.10 with grep in /nix/store/y1sl0186vlp7nv8jjamgqfg80acmvg42-lilv-0.24.10

directory tree listing: https://gist.github.com/c4c8d3b56a26618d397d010a4bbcf66f

du listing: https://gist.github.com/44415659763c98f0408586239f143412

Rebuild report (if merged into master) (click to expand)

878 total rebuild path(s)

316 package rebuild(s)

316 x86_64-linux rebuild(s)
289 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
273 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
adapta-gtk-theme
almanah
apostrophe
aravis
ardour
ardour_5
areca
astroid
audacity
audio-recorder
azureus
balsa
baresip
birdfont
bookworm
brasero
brasero-original
byzanz
calls
cawbird
chrome-gnome-shell
cinnamon.cinnamon-common
cinnamon.cinnamon-control-center
cinnamon.cinnamon-gsettings-overrides
cinnamon.cinnamon-screensaver
citrix_workspace
citrix_workspace_20_04_0
citrix_workspace_20_06_0
citrix_workspace_20_09_0
citrix_workspace_20_10_0
claws-mail-gtk3
denemo
dropbox-cli
ecasound
eclipse-mat
eclipses.eclipse-committers
eclipses.eclipse-cpp
eclipses.eclipse-java
eclipses.eclipse-modeling
eclipses.eclipse-platform
eclipses.eclipse-scala-sdk
eclipses.eclipse-sdk
elementary-planner
empathy
enlightenment.rage
eolie
ephemeral
epiphany
evince
evolution-data-server

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/y1sl0186vlp7nv8jjamgqfg80acmvg42-lilv-0.24.10 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A lilv https://github.com/r-ryantm/nixpkgs/archive/89259e965ff114f2aeb000e9769e58aef7cbe423.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/y1sl0186vlp7nv8jjamgqfg80acmvg42-lilv-0.24.10
ls -la /nix/store/y1sl0186vlp7nv8jjamgqfg80acmvg42-lilv-0.24.10/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @cillianderoiste for testing.

Changes look okay: http://drobilla.net/2020/09/27/lilv-0-24-10.html


Use of deprecated implicit copy constructor

Appears when -Wdeprecated is enabled on clang.
src/json.hpp:2076:26: warning: definition of implicit copy constructor for 'iterator' is deprecated because it has a user-declared copy assignment
      operator [-Wdeprecated]
        inline iterator& operator=(const iterator& other) noexcept
                         ^
test/unit.cpp:2471:37: note: implicit copy constructor for 'iterator' first required here
                json::iterator it = j.begin();

In file included from test/unit.cpp:13:
src/json.hpp:2579:32: warning: definition of implicit copy constructor for 'const_iterator' is deprecated because it has a user-declared copy
      assignment operator [-Wdeprecated]
        inline const_iterator& operator=(const const_iterator& other) noexcept
                               ^
test/unit.cpp:2496:38: note: implicit copy constructor for 'const_iterator' first required here
                json::const_iterator it = j_const.begin();
                                     ^

There are also some warnings involving floating point comparisons when Wfloat-equal is enabled:
src/json.hpp:1567:53: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
                    return lhs.m_value.number_float == static_cast<number_float_t>(rhs.m_value.number_integer);
                           ~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test/unit.cpp:127:21: note: in instantiation of member function 'nlohmann::operator==' requested here
            CHECK(j == j_reference);
                    ^
test/catch.hpp:8925:44: note: expanded from macro 'CHECK'
#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
                                           ^
test/catch.hpp:1484:39: note: expanded from macro 'INTERNAL_CATCH_TEST'
    } while( Catch::isTrue( false && (expr) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
                                      ^
In file included from test/unit.cpp:13:
src/json.hpp:1571:53: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
                    return lhs.m_value.number_float == rhs.m_value.number_float;
                           ~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~
src/json.hpp:4235:35: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
                    if (float_val == int_val)
                        ~~~~~~~~~ ^  ~~~~~~~

Dear @gnzlbg,
thanks for reporting! It sure looks like a bug. I shall have a look once I'm back from holidays.
All the best
Niels

I currently found no elegant solution to the floating point comparison, and I am not yet sure whether this is an actual issue, because I don't want to do arithmetic inside the JSON values, but only check if two JSON numbers encode the same value... Any comments?

bool approx(T a , T b) { return a > b || a < b; }. By using approx for floating point comparison everywhere we can at least change it easily later if something better comes up.

Thanks!


k8s reporter: Limit node info collection

What this PR does / why we need it:
In order to save time and storage,
collect node info only for nodes which
runs at least one virt-launcher.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
None

/lgtm

Thanks Maya
/cc @AlonaKaplan

/lgtm

/approve

Thanks Alona
/retest

/retest
https://prow.ci.kubevirt.io/view/gs/kubevirt-prow/pr-logs/pull/kubevirt_kubevirt/7366/pull-kubevirt-e2e-k8s-1.23-sig-compute/1504022921734000640
not due to this PR


Link to user card from new stream/group user tables

Like elsewhere in settings tables, clicking on a user in the create stream UI and the create group /#groups UI should open the user card.

@zulipbot claim


Mishandling of a sized localparam bit selector

The problem is demonstrated by the module below:
module test_genvar2localparam
        (
         output [3:0] d_o
         );
        generate
                genvar   i;

                for (i = 0; i < 4; i = i + 1) begin : loop
                        localparam [1:0] di = i; // 0 1 2 3
                        assign d_o[di] = 1'b1;
                end
        endgenerate
endmodule

Expected result:
assign d_o = 4'b1111;
Actual result:
Warning: Range select out of bounds on signal '\d_o' at test_genvar2localparam.v:11: Setting result bit to undef.
Warning: Ignoring assignment to constant bits at test_genvar2localparam.v:11:
old assignment: 1'x = 1'1
new assignment: { } = { }.
Warning: Range select out of bounds on signal '\d_o' at test_genvar2localparam.v:11: Setting 1 LSB bits to undef.
Warning: Ignoring assignment to constant bits at test_genvar2localparam.v:11:
old assignment: 1'x = 1'1
new assignment: { } = { }.

Synthesys output:
/* Generated by Yosys 0.6 (git sha1 UNKNOWN, x86_64-pc-linux-gnu-c++ 5.3.0 -O3 -DNDEBUG -march=native -O2 -fPIC) */

(* src = "async_delay_line.v:1" *)
module test_genvar2localparam(d_o);
  (* src = "async_delay_line.v:3" *)
  output [3:0] d_o;
  assign d_o[0] = 1'b1;
  assign d_o[1] = 1'b1;
  assign {  } = {  };
  assign {  } = {  };
endmodule

You are defining a localparam within the generate loop. Is that even legal?
Shouldn't the localparam assigned only once within the module?

Simplified version of the test case:
module test(output [3:0] y);
        localparam [1:0] idx = 2;
        assign y[idx] = 1;
endmodule

The problem is that the localparam somehow inherits the signedness of the value. (Genvars are signed 32 bit integers, so are decimal integer constants.) So this effectively assigns to y[-2] (see range=[-2:-2] under the AST_ASSIGN node):
-- Running command `read_verilog -dump_ast2 test.v' --

1. Executing Verilog-2005 frontend.
Parsing Verilog input from `test.v' to AST representation.
Generating RTLIL representation for module `\test'.
Dumping Verilog AST after simplification:
    AST_MODULE <test.v:1> [0x24fb640] str='\test'
      AST_WIRE <test.v:1> [0x24fb730] str='\y' output port=1 range=[3:0]
        AST_RANGE <test.v:1> [0x24fbaa0] range=[3:0]
          AST_CONSTANT <test.v:1> [0x24fb8a0] bits='00000000000000000000000000000011'(32) signed range=[31:0] int=3
          AST_CONSTANT <test.v:1> [0x24fb9a0] bits='00000000000000000000000000000000'(32) signed range=[31:0]
      AST_LOCALPARAM <test.v:2> [0x24efff0] str='\idx' range=[1:0]
        AST_CONSTANT <test.v:2> [0x24fcec0] bits='10'(2) range=[1:0] int=4294967294
        AST_RANGE <test.v:2> [0x24f0190] range=[1:0]
          AST_CONSTANT <test.v:2> [0x24f0260] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1
          AST_CONSTANT <test.v:2> [0x24f0330] bits='00000000000000000000000000000000'(32) signed range=[31:0]
      AST_ASSIGN <test.v:3> [0x24ef930]
        AST_IDENTIFIER <test.v:3> [0x24efc90 -> 0x24fb730] str='\y'
          AST_RANGE <test.v:3> [0x24efb90] range=[-2:-2]
            AST_CONSTANT <test.v:3> [0x24f00c0] bits='10'(2) range=[1:0] int=4294967294
        AST_CONSTANT <test.v:3> [0x24efd90] bits='00000000000000000000000000000001'(32) signed range=[31:0] int=1
--- END OF AST DUMP ---
Warning: Range select out of bounds on signal `\y' at test.v:3: Setting result bit to undef.
Warning: Ignoring assignment to constant bits at test.v:3:
    old assignment: 1'x = 1'1
    new assignment: { } = { }.
Successfully finished Verilog frontend.


Add copy button to the View Manifest button

Is your feature request related to a problem? Please describe.
Each resource deployed by a Module is represented in a separate collapse panel which has a View Manifest button. When the button is clicked, it opens a modal with the YAML config for a specific resource.
The scope of the issue is to add a button to the top right corner of the code editor with the manifest that will copy the manifest to the clipboard.

Describe the solution you'd like
Add a button to the the manifest modal.

Hi, I'd love to take on this issue as my first contribution. I have experience with React and would be happy to help. Could you please assign this issue to me?

Hey @sarthakladhwe, sure thing. Let us know if you have any questions


vNext Task: Lumin Platform Support

Overview
Add Lumin platform support for devices like the Magic Leap One
Requires

[x] Adding the ability to support platforms using Lumin
[x] Supporting the magic leap one

Acceptance criteria

[x] User should be able to configure and setup the Lumin platform.
[x] User should be able to configure Totem Controller using the controller profile.
[x] User should be able to build and run any AR Demo scene on the device.
[ ] User should be able to configure all recognizable gestures to Input Actions.

So is this or isnt this going into MRTK 2019? Hard to work out where this will land currently from the activity log

Initially, this will be shipped as an experimental package that you can install alongside the MRTK @isurfraz , depending on how that goes, it may be introduced in to the core or kept as an addon.

This would be great for someone in the community to add as extension.


From server side perspective

Sorry for asking here.
Which node js library fits best with this cron generator?
I need it to accept the generated cron and execute the task on the backend.
Thanks in advance

We use a Java backend and we use Quartz. I imagine any node library that can parse a Quartz expression should do the trick. Check out https://www.npmjs.com/browse/keyword/quartz. I also imagine it wouldn't be hard to convert this project to generate UNIX cron expressions which should make it more trivial to integrate with other node scheduling systems.


Resolving #291

Resolving issue #291. Correcting units on a millisecond timeout to resolve high utilization on the background thread. A timeout in milliseconds was passed to a function expecting seconds.

@blaine141 Hi Blaine, thank you for the fix. I appreciate that. Regards, Kazunari.


When updating geometry, reuse area of existing edge #500

Solves a part of #500 by reusing the geometry area of existing edge if the new point list is not larger.
I had to expose maxGeoRef to be able to test it, I hope it's ok.
I've also decided it would be good to erase existing contents if new point list is smaller than existing. Otherwise we'll have some old coordinates laying around.
Another improvement would be to store the maximum size of the area. Then it would be possible to reuse it even if point list grows but stays beyond that maximum size. Would require storing max size next to count which is probably not so good.

Ok, will do. And yes, you'll need to reformat. I used default Eclipse code formatter, but will probably switch to IntelliJ later on.
Compressibility - I was not thinking about realtime compression, more about storage compression on disc. But let's drop it for now.

Compressibility - I was not thinking about realtime compression, more about storage compression on disc. But let's drop it for now.

We 'store' stuff in-memory (via byte or int arrays) in the identical format we store data on disc. So reading stuff into memory is very simple and also switching to memory mapped. E.g. for memory mapped we read edge properties from a DataAccess but the same happens for an in-memory DataAccess. So at the end there is (currently) no difference between storage compression and realtime compression ... I hope I have not misunderstood what you mean :)

Yes, I understand that and you got me right. I was just thinking of use cases like data transfer where you download the prepared files of the graph as a zipped package and the unzip them. But really, let's drop it, it does not seem to be a direct use case at the moment.
I'll send the fix shortly.

But really, let's drop it, it does not seem to be a direct use case at the moment.

Ah, I now understand what you mean: that is indeed true and could lead to smaller compressed files. We are currently doing compressed graphhopper files for Android (".ghz").

I've removed erasure for now. It's easy to add it later on.

Thanks a lot for this fix! I've just applied minor code formatting ;) and moved the test into the abstract tester, so that all graph implementations run through this. BTW: there is no need to close the graph as this is part of the shutdown method. Also I've removed the (hopefully?) unrelated checkGraph call and some other method calls. Furthermore have added you as contributor :)
See https://github.com/graphhopper/graphhopper/commit/dfd62e2c8fa73f95eceed05b918cb607fdaac813


Fix mapbuilder in editor

Description
Refactored some bits of the map builder to work in both the editor and play mode again.
Tests
Testing in a stand alone build atm

Tested in standalone client, no issues


AMBARI-24815 Add column to show which service recommended changes during upgrade refer to

How was this patch tested?
21916 passing (30s)
48 pending

retest this please

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/4363/
Test PASSed.


How do I play? (READ BEFORE DELETING!)

I've opened episode 1 in the correct unity version, But it still opens to a blank unity level with nothing but a camera and light source. Help!

Duplicate of #16

There's probably a scene in the assets. If you've ever used unity you should be able to load the scene.

THANK YOU SO MUCH, I've never used unity before and this helped SO MUCH!

There's probably a scene in the assets. If you've ever used unity you should be able to load the scene.

THANK YOU SO MUCH, I've never used unity before and this helped SO MUCH!

Please close the issue now.

I had this same issue on a site called repl.it, and the run command will always return an error

Are you using a site to run C# code? This project is for Unity with C#.


Opening a notebook from markers view is broken

open GH issues notebook
make sure to have some errors
select an error from the markers view
🐛 the cell opens as readonly editor, not as notebook

This happens because an early return here (we have no editor id and the input reports as being untitled). The original input being untitled seems to have changed recently via 183d11a642b121c3023d3f1c9f2470263c1452bc. fyi @bpasero this breaks our assumption and might have more impact in places which aren't known yet.

fyi @rebornix - there might more usages that only you know of

@jrieken yeah this was a recent change to allow saving readonly editors. Conceptually readonly editors (coming from virtual document providers) are untitled until you save them. This was a necessary change to handle the transition from saving the editor to opening it again after saving possible.
If you must check for untitled editors that are writeable, looking for untitled: scheme seems legit to me.
When I did this change I checked for all users of isUntitled and did not find issues, though I probably missed this one.

Optimistically closing


Add new section for developer documentation about how to recreate the database

Description
Adds a new small section for development docs about how to recreate the database from scratch.
Type of change

[x] Documentation update

How Has This Been Tested

[x] I have generated the documentation in my development environment and the generated document looks as expected.

Checklist

[x] I have merged the original branch into my forked branch
[x] I added relevant documentation
[x] follows the style guidelines of this project
[x] I did a self-review of my code
[x] I made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works (Not necessary)
[ ] I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/) (Not necessary)

Closing and creating it again pointing to 1.6.0 release branch.


Extension doesn't work when there are 2 signed in GitHub accounts

https://github.com/microsoft/vscode-pull-request-github/issues/1941#issuecomment-1177254111
We will not support 2 accounts, but we can, and should, detect that there are 2 accounts and warn the user.

I've been trying so hard to verify this one but I can't get a GitHub Enterprise instance up and running :( I've got some GitHub folks like @aprilla helping me out.
Maybe @McLovin77 could help out here since they are the ones who originally saw the issue.

This could also be verified by code review if no one has an Enterprise instance to use.

@joshaber helped us out :)

Thank you!

I know the issue is closed, but I am signed in to both github enterprise and github.com and both accounts work fine with the plugin. I didn't have any problems reviewing or creating issues or PRs so far.

@jkt628 we should be showing the notification once per workspace. I agree that signing out isn't a good option, but it's better than having the extension just mysteriously not work.
I'll be doing some work soon (maybe even in September) to see what can be done to get GHE officially supported by this extension. I'll try to ping you here when I have something ready or when I have an issue for you to subscribe to.
One thing that would be extremely helpful: can you share what version of GHE you're using?

I am using GHE 3.5.1 and the extension works both for GHE and my github.com public repos. I didn't sign out of either. Seperate workspaces though.


creating connected node when dragging the connection link

This is cool tool. is it possible to extend?
I need to create new connected node when Link is dragged or if user press tab key, new node is added to canvas with link.
could you give idea to extend the above feature if it is possible

Hello @asith-w.
I recommend to wait for the new version. I can't promise this feature will be added, but you will get new code. I'll try to help when I finish refactoring.
Currently I'am working on completely new version. New version will have less code, code will be easier and more productive.
You can follow the progress in "dev" branch.

@AlexeyBoiko Great.
I wish to contribute if I understand the code :)


The chart area re-sizes to table size unwantedly

Lets view this step-wise.

 when i open my page ie the default view:

Say, i select some columns and rows and view tables and charts all cool till now.
![untitled](https://cloud.githubusercontent.com/assets/9017668/5817170/d68bacfa-a0ce-11e4-9ea9-51b79537aaa8.png)
graph for the same set of rows and columns
![untitled](https://cloud.githubusercontent.com/assets/9017668/5817178/f7677f30-a0ce-11e4-9068-ae266c30f5ea.png)

perfect till now?
 Now I select a column which produces MANY rows.
(observe the scroll bar to realize the size of the table)
![untitled](https://cloud.githubusercontent.com/assets/9017668/5817188/309b183e-a0cf-11e4-88c1-bb998fda40ab.png)

Now, i change my renderer to Bar chart.. see the size of the bar chart?
(again see the scroll bars and size of the image)
![untitled](https://cloud.githubusercontent.com/assets/9017668/5817198/6072bfa8-a0cf-11e4-9241-d715314bc410.png)

I think that when a large table is produced, the problem occurs because of re-sizing of div, is it?
Also tested on chrome, firefox and IE. Same for all.

This is rather strange... I can't reproduce this with the examples here on Chrome on OSX. What operating system are you using? Are you able to reproduce this with this URL? http://nicolas.kruchten.com/pivottable/examples/gchart.html (adding the "name" as a row will give you a long table)

I am on windows 8.1 and latest chrome. Also reproduced this on a friend's mac though.
No, your example doesn't produce the same result, but again my data seems to be much larger than "name" column in your example.

I suspect something else in the document is causing this behaviour, as I've never seen it on any size of data...

Any idea/hints what could this be?
Please keep this open so that if someone has similar issues, can report.
On Sun, Jan 25, 2015 at 9:38 AM, Nicolas Kruchten<EMAIL_ADDRESS>wrote:

I suspect something else in the document is causing this behaviour, as
I've never seen it on any size of data...
—
Reply to this email directly or view it on GitHub
https://github.com/nicolaskruchten/pivottable/issues/285#issuecomment-71350788
.

If you can post an example somewhere which displays this behaviour (or even provide me with some fake data that I can load into the Local CSV example) then I can help you debug it, otherwise I'm not sure what I can do to help, given that I can't reproduce it...

Sure, i can share with you the JSON file, please give me your email ID.. I cant publish it on web so. :)

<EMAIL_ADDRESS>

Are you still unable to reproduce this? If so, can I close this issue?

I reproduced this issue (finally) and pushed a fix :)

Hahah finally! May I know what was the issue?
On May 12, 2015 8:46 PM, "Nicolas Kruchten"<EMAIL_ADDRESS>wrote:

I reproduced this issue (finally) and pushed a fix :)
—
Reply to this email directly or view it on GitHub
https://github.com/nicolaskruchten/pivottable/issues/285#issuecomment-101317324
.

The charts were sizing based on the window size rather than the viewport size...

Oh. Alright. thanks a lot man:)
On May 12, 2015 9:02 PM, "Nicolas Kruchten"<EMAIL_ADDRESS>wrote:

The charts were sizing based on the window size rather than the viewport
size...
—
Reply to this email directly or view it on GitHub
https://github.com/nicolaskruchten/pivottable/issues/285#issuecomment-101321463
.


ci(GHA): Use actions/checkout@v4

Kind: bugfix

Description
Avoid the warning: "Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/ ."
Checklist

[x] Read the CONTRIBUTING.md guide and:

[x] Use Atomic Commits so each commit gathers a single logical change
[x] Use Conventional Commits regarding commit messages (needed by our release toolchain)

[ ] Add/update tests

[ ] Add/update documentation

Note to maintainers

Read this wiki page.
Make sure the PR has a milestone.
Assign yourself before merging.
[ ] Either do a regular merge:

for PRs containing several commits following conventional-commits,
or for PRs containing 1 commit shared with a later PR (to preserve the SHA1)

[x] Or do a squash-merge:

for PRs containing only 1 commit (not shared with a later PR),
or for PRs containing several commits that need not be kept in the history;
→ Update the commit message header with a conventional-commit type,
→ Add a footer Close #… if a related issue exists.

Also merging this tiny CI patch.


storage: Make snapshot trait return iterator instead of cursor

What problem does this PR solve?
A prerequisite change of #9758, so TTLIterator can wrap RegionIterator directly
What is changed and how it works?
Change iter() of Snapshot trait from
     fn iter(&self, iter_opt: IterOptions, mode: ScanMode) -> EngineResult<Cursor<Self::Iter>>

to
     fn iter(&self, iter_opt: IterOptions) -> EngineResult<Self::Iter>

Check List
Tests

No code

Release note

None

/merge


Support SELECT * EXCEPT(col1, col2, ...) for BigQueryDialect

I’d like to parse SELECT [* | column.*] EXCEPT(col1, col2, ...) FROM table using BigQueryDialect.
BigQuery Reference: https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#select_except
The query SELECT * EXCEPT (col1, col2) FROM table causes ParserError as I described below.
use sqlparser::dialect::BigQueryDialect;
use sqlparser::parser::*;

fn main() {
    let sql = "SELECT * EXCEPT (col1, col2) FROM table";
    let dialect = BigQueryDialect {};
    let ast = Parser::parse_sql(&dialect, sql).unwrap();
    println!("AST: {:?}", ast);
}

// output:
// thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParserError("Expected SELECT, VALUES, or a subquery in the query body, found: col1")', examples/parse_select.rs:21:48...

@unvalley are you working on this already?
I just worked on EXCLUDE from snowflake on #721, and it seems like a really similar syntax. I can work on that as well.

@AugustoFKL No, I'm not working on this.

I just worked on EXCLUDE from snowflake on https://github.com/sqlparser-rs/sqlparser-rs/pull/721, and it seems like a really similar syntax. I can work on that as well.

Thanks! That helps a lot.

Sure, I'll do that then. I just need to have my 5 PRs merged hahaha, otherwise I'll start pilling up conflicts, which I don't have the love of solving.
Once 2 or 3 are merged, I can go on that. Does that work for you?

@AugustoFKL No problem at all!


Specify Application Url Clarification

For this document to be useful, it would be good to describe how we go about telling DevOps to allow client urls.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1c792d9d-54c9-e8d1-b82c-a60f818a4389
Version Independent ID: d1f483e8-3bd7-5a29-50e1-cfc7788b64ba
Content: Cross-origin resource sharing (CORS) with Azure DevOps Services REST APIs
Content Source: docs/integrate/concepts/cross-origin-resource-sharing.md
Product: devops
GitHub Login: @elbatk
Microsoft Alias: elbatk

@thomps23 - Ryan - I'm reassigning this back to you. Not sure who should be covering Elijah's work, but I know it isn't me.

I might have been confusing the oauth flow and simply auth'ing with a personal access token. With Postman, I was able to call the api with a PAT. When I wired up a test Angular app, the PAT would authorize, but their were no CORS headers returned. I believe this was because I would have to actually implement the oauth flow. At the time, I didn't see any mention of adding a client url.

That's great, @JoshuaBelden. I believe this GitHub Issue can be closed then, but do let us know if you have any other feedback or questions please. We can always create a new issue. Have a great day!


Replacing github.io links with readthedocs links

Hi @seguler, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (seguler). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@serguler, could you submit this PR against master as well.

@rambo-msft I might be missing something, but I believe the target for this PR is the master branch.

Yes that is correct, I meant dev branch! :)


New package: DateShifting v0.1.0

Registering package: DateShifting
Repository: https://github.com/JuliaHealth/DateShifting.jl
Created by: @DilumAluthge
Version: v0.1.0
Commit: d7e2a4cf737c28e10723b77b676d2467756c43c9
Reviewed by: @DilumAluthge
Reference: https://github.com/JuliaHealth/DateShifting.jl/commit/d7e2a4cf737c28e10723b77b676d2467756c43c9#commitcomment-40416007

Temporary block of AutoMerge


Error al subir datos al SIBs Colombia

#error al momento de subir datos a SIBs Colombia

Thank you for contacting us @jhoyosa1988
What exact actions caused the error?
Also to be able to analyze the error we need the IPT log files.

Is this the same error please https://github.com/gbif/ipt/issues/1907 ?

It basically says that resource's EML is invalid and can't be parsed. Feel free to re-open this if this still happens and please provide log files


fixed some spelling/grammer in the README and install guide

Coverage remained the same at 50.704% when pulling bb12288776b95cdeed5fab4a12005b67f46c735e on vegasbrianc:master into 4dd5593bd5cbefa3b2d9aa0c20dfad01882cd895 on vmware:master.

LGTM


MAISTRA-1043: Replace deprecated API's

Similar to https://github.com/Maistra/istio-operator/pull/349 but for 1.1

The test will fail until https://github.com/Maistra/istio-operator/pull/367 is merged

/retest

/retest

/retest


Add Additional Modules

In the readme, it says "Initially, the focus is on WASI Core, an API module that covers files, networking, and a few other things. Additional modules are expected to be added in the future."
I'm curious as to what it would take to start adding additional modules (I'm interested in contributing, and possibly helping design APIs outside of file management and networking).
Feature
Adding an API modules to cover something like a canvas (using JavaScript terminology), audio support, etc.
Benefit
Opens up possibilities to make graphics applications on WASI, or make a WASI virtual machine operating system (both are things I'm interested in doing).
Implementation
I think fairly minimal and simple asynchronous APIs inspired from cala::speaker/cala::microphone and cala::pixels/cala::draw could be used (Cala is my project that I would like to use these features for).  wasmtime could possibly depend on it too or borrow some of the code from it in order to implement a "canvas" or "audio" module in the runtime.  A current issue with that proposal at the moment, is that most of the cala APIs currently only work on Linux, but that will likely change in the (hopefully) near future.
Alternatives
I'm guessing there's a way to link a WASI program to a native program, with some FFI calls, say between a Rust program that includes wasmtime to run the web assembly (similar to just using the wasm32-unknown-unknown target).  Although, at that point it would be fine to just use the wasm32-unknown-unknown target.  I think it would be better if wasmtime included the additional modules.
Also, has any work been done to add any other modules besides WASI Core, that I am not aware of?

This may help: I'm working on a POC for an inference module, trying to follow the proposal process. I started by creating a draft spec, wasi-nn and proposing it in one of the WASI meetings. That was enough to get the idea into stage 0 (or 1? not sure) to start proving out the concept. That approach might help you with this idea.

Thanks!  This helped me find relevant issues to what I'm trying to accomplish: https://github.com/WebAssembly/WASI/issues/53, https://github.com/WebAssembly/WASI/issues/171, https://github.com/WebAssembly/WASI/issues/285.

I've been very interested in this concept for some time, yet am not confident I could hammer it out alone. If you reach a point of having a one or more WebGPU features implemented, I'd be happy to study that code, deriving from it further functions towards completion.


chore: import repository https://github.com/borderx/jx-test3.git

this commit will trigger a pipeline to generate the CI/CD configuration which will create a second commit on this Pull Request before it auto merges

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


autocmd runs multiple times than expected

I put autocmd in init.vim for input method selecting. It works well in neovim.
augroup im_select
    autocmd!
    autocmd InsertLeave * silent !c:\im-select.exe 1033
    autocmd InsertEnter * silent !c:\im-select.exe 2052
    autocmd BufRead * silent !c:\im-select.exe 1033
    autocmd CmdlineLeave * silent !c:\im-select.exe 1033
    autocmd CmdlineEnter * silent !c:\im-select.exe 2052
augroup END

But in vscode-neovim it runs multiple time than expected. When I enter insert mode (now im switch to 2052), then insert multiple new lines via <Enter> or vscode command editor.action.insertLineBefore or editor.action.insertLineAfter, and then go back to normal mode the im-select not only switch to 1033 but runs extra times swiching bewteen 2052 and 1033 (one extra execution per new line I just insert), and the vim command panel recurs when it runs.
I remove CmdlineLeave and CmdlineEnter lines in augroup, vim command panel doesn't recurs anymore. But the extra execution problem still exists if there are still InsertLeave and InsertEnter autocmds.

I roughly read the code. Is that when I insert new lines in insert mode then back to normal mode, vscode-neovim syncs my inputs to nvim backend line by line, with entering and leaving insert mode per line?
The issue doesn't happen when I break a line in the middle to multiple lines ( in the middle of line), or change multiple lines' contents. It only happens when I insert a conpletely empty new line (  at end of line or vscode insertLine commands ). I wonder why it behaves not the same as breaking lines.

I roughly read the code. Is that when I insert new lines in insert mode then back to normal mode, vscode-neovim syncs my inputs to nvim backend line by line, with entering and leaving insert mode per line?
The issue doesn't happen when I break a line in the middle to multiple lines ( in the middle of line), or change multiple lines' contents. It only happens when I insert a conpletely empty new line (  at end of line or vscode insertLine commands ). I wonder why it behaves not the same as breaking lines.

@slbb Does the problem still happen if you remove BufRead here ?

@slbb Does the problem still happen if you remove BufRead here ?

@slbb Does the problem still happen if you remove BufRead here ?
Can you try with empty init.vim only with these autocmds enabled?

Thank you for the reminding. I tried several times with commenting different lines in init.vim. finally located the problem.
fun! Exec(cmd)
	exe a:cmd
	return ''
endf
inoremap <NL> <C-r>=Exec("normal o")<CR>      " <C-Enter> to insert new line in insert mode

Maybe vscode-neovim recognizes Enter as <NL> and calls the function.
Anyway, vscode doesn't need this. I removed it and solved the problem.

@slbb Does the problem still happen if you remove BufRead here ?
Can you try with empty init.vim only with these autocmds enabled?

Thank you for the reminding. I tried several times with commenting different lines in init.vim. finally located the problem.
fun! Exec(cmd)
	exe a:cmd
	return ''
endf
inoremap <NL> <C-r>=Exec("normal o")<CR>      " <C-Enter> to insert new line in insert mode

Maybe vscode-neovim recognizes Enter as <NL> and calls the function.
Anyway, vscode doesn't need this. I removed it and solved the problem.


Maybe sort the output of the keys command

It would be nice if the output of keys was in a predictable order; i.e., sorted. Especially in an interactive context the current random order is somewhat annoying:
> keys $str:
▶ has-prefix~
▶ title~
▶ trim~
▶ contains~
▶ trim-suffix~
▶ index-any~
▶ trim-left~
▶ has-suffix~
▶ to-lower~
▶ last-index~
▶ to-title~
▶ contains-any~
▶ index~
▶ join~
▶ compare~
▶ trim-prefix~
▶ trim-space~
▶ count~
▶ to-upper~
▶ equal-fold~
▶ replace~
▶ split~
▶ trim-right~

⬥ keys $str: | to-lines | sort | all
⮕ compare~
⮕ contains-any~
⮕ contains~
⮕ count~
[… and so on …]

But of course you knew that already. I agree that having them sorted is nice to have, as this has been an irritant to me too. But unless this is literally a two line fix (it might be), I wouldn't give this a really high priority at present. For my own uses, I'll just turn the above into a function, possibly without the trailing all.

I don't know any languages that offer any promises in the order of keys in a hash/dictionary. I agree this would be nice in an interactive context, but then it should be a feature of the editor. Particularly since sorting the output of the keys command would imply (as mentioned in the chat) coercing all keys to the same type. I personally find the ability to have arbitrary objects as keys useful sometimes.

I don't know any languages that offer any promises in the order of keys in a hash/dictionary.

That is true for hash based maps which is, as you note @zzamboni, a widely used implementation strategy. But there are tree based implementations that do guarantee the order of the keys. And some languages, such as Python, have had ordered dictionaries for a long time. Although, in the case of Python it wasn't the default behavior until very recently.

I personally find the ability to have arbitrary objects as keys useful sometimes.

Me too. I'm not proposing restricting keys to strings. I'm proposing requiring that the keys for a particular map be the same data type; whether that is string, float64, list, or something else. Regardless of the merits of having keys always sort the keys. Note that @hanche's example for sorting the keys only does "the right thing" for strings:
> m = [&(float64 11)=a &(float64 3)=c]
> keys $m | to-lines | sort
11
3

Since the keys are numbers I would expect the order to be 3, 11. Lists as keys also produce the wrong sorted order when coerced to strings:
> m = [&[1]=a &[1 2]=b &[1 1]=c]
> keys $m | to-lines | sort
[1 1]
[1 2]
[1]

There was an IM/Gitter discussion about this wherein @xiaq pointed out that preserving insertion order is often more useful than sorting the map's keys. Which is why Python's collections.OrderedDict exists and has recently become the default implementation for its dictionaries/maps. If Elvish static maps like the $str: namespace are constructed in a fashion where the keys are inserted in sorted order and iterating over the map preserves that order then this issue becomes moot. Other than any requisite documentation updates.

It would be okay if the output of keys was predictable but not necessarily sorted. Having the output of keys be based on insertion order would resolve this issue if maps like $str: had their content initialized with the keys sorted.

Regarding whether map keys should be homogenous this, from "When to release Elvish 1.0", seems relevant:

Static type system. A language without any kind of static type system is not likely to be future-proof. I have this vague idea that Elvish should have an optional structural type system much in the style of TypeScript, but there are many details to be figured out.

Revisiting this I'm going to close this issue. It's now easy enough to do keys $str: | order. The order command builtin was added a few days after my previous comment. If someone can make a convincing argument that the default enumeration of map keys should be predicated on insertion order they should open a new issue. I still, however, feel that Elvish map keys should be homogenous. While that is clearly orthogonal to the original intent of this issue I'm still extremely bothered that examples like this are valid Elvish:
> var x = [&x=y &(num 0)=z &[a b]=why]
> pprint $x                                                                                369 µs
[
 &(num 0)=	z
 &[
  a
  b
 ]=	why
 &x=	y
]

I'm still convinced that heterogenous key types should be disallowed. Note that I am not arguing for disallowing heterogenous value types.

Note that the order builtin requires the values to be homogenous:
> order [a [a]]
Exception: bad value: inputs to "compare" or "order" must be comparable values, but is uncomparable values

It's not obvious why maps should not include a similar restriction. Certainly the Go language, and pretty much all other languages, require maps to have a homogenous key type.

Closing again, because even though Elvish maps allow heterogenous key types that will rarely be true in practice. And if someone wants to use heterogenous key types they should be aware that order [(keys $map)] will fail (at least at this time). That inability to use the order command in that situation does not justify automatically ordering the output of keys since doing so could be accomplished by an equivalent modification to the order command to support heterogenous value types. Ultimately Elvish should either require map keys to be homogenous or the order command should be modified to support ordering heterogenous value types.


[core] DisableCursor() does not hide on web builds in windowed mode

Please, before submitting a new issue verify and check:

[x] I tested it on latest raylib version from master branch
[x] I checked there is no similar issue already reported
[x] My code has no errors or misuse of raylib

Issue description
This was working in raylib 3.5, which can be tested in the first person example on the website. Expected behavior is that when the user clicks to focus on the canvas, it captures the cursor until the user presses escape. In 3.8 this does not happen. It looks like this is a result of removing the emscripten mouse callback that locked the pointer was the solution to another user's problem here. It does still work if you enter fullscreen mode; this issue is only for when the canvas is not fullscreen.
Environment
Tested on Mac in Safari and Windows in Edge and Chrome
Issue Screenshot
Here's my web build with 3.8 as an example: https://kyleappelgate.com/fire_guy/index.html -- I've also tried it separately with 3.5 which fixes the issue.
Code Example
Just call DisableCursor() once before you start the game loop, it works on 3.5 but not on 3.8.

@grenappels Actually I think the implementation is correct:
// Enables cursor (unlock cursor)
void EnableCursor(void)
{
#if defined(PLATFORM_DESKTOP)
    glfwSetInputMode(CORE.Window.handle, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
#endif
#if defined(PLATFORM_WEB)
    emscripten_exit_pointerlock();
#endif

    CORE.Input.Mouse.cursorHidden = false;
}

// Disables cursor (lock cursor)
void DisableCursor(void)
{
#if defined(PLATFORM_DESKTOP)
    glfwSetInputMode(CORE.Window.handle, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
#endif
#if defined(PLATFORM_WEB)
    emscripten_request_pointerlock("#canvas", 1);
#endif

    CORE.Input.Mouse.cursorHidden = true;
}

but it could be affected by web security.

@grenappels Could you try activating that function on a mouse click event?
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) DisableCursor();

That doesn't work either, but I think I have found why the regression happened. In 3.5 there was a function EmscriptenMouseCallback and it was registered with emscripten_set_click_callback("#canvas", NULL, 1, EmscriptenMouseCallback). Here's the funny thing: that function can be totally empty and just return 0, but adding it back to core.c makes DisableCursor() behave as it should. Meaning, you get no mouse locking if you don't ever call it, if you call it once at the start, the mouse locks the first time you click only, and if you call it on IsMouseButtonPressed it locks every time you click the window. Not sure if this is the right way to go about it but it unblocked me for now. I put the changes here if you wanna have a look: https://github.com/grenappels/raylib/commit/7be1d3f067224e4b59731dc76b71397557576312

@grenappels Wow! This is very unexpected but, well, if it does the trick I can add that callback. Feel free to send a PR.

done https://github.com/raysan5/raylib/pull/1900 😄


!cache-hit is false when cache-hit is false

This is the workflow I caught red-handed: https://github.com/andreasabel/hasktorch/actions/runs/6536754694/job/17749144021

Version: actions/cache@v3 SHA:704facf57e6136b1bc63b828d79edcd491f0ee84 https://github.com/andreasabel/hasktorch/actions/runs/6536754694/job/17749144021
Cache restored from restore-key https://github.com/andreasabel/hasktorch/actions/runs/6536754694/job/17749144021#step:7:4 Run actions/cache/restore@v3
 with:
   path: ~/.cabal/store
   key: macOS-cabal-<IP_ADDRESS>-ghc-9.2.8-plan-813f23bfbcb4c800c8178d743c3df6e501ec38580a651c180dcd99b0abc9319d
   restore-keys: macOS-cabal-<IP_ADDRESS>-ghc-9.2.8-
 ...
Cache restored from key: macOS-cabal-<IP_ADDRESS>-ghc-9.2.8-813f23bfbcb4c800c8178d743c3df6e501ec38580a651c180dcd99b0abc9319d

Note that this key is not the primary key, which has an additional -plan before the SHA.
The step "Cache dependencies" (if: !steps.cache.outputs.cache-hit) is skipped", it's code is https://github.com/andreasabel/hasktorch/actions/runs/6536754694/workflow - name: Cache dependencies
   if:   ${{ !steps.cache.outputs.cache-hit }}
   uses: actions/cache/save@v3
   with:
     path: ~/.cabal/store
     key: ${{ steps.cache.outputs.cache-primary-key }}

According to the docs, outputs.cache-hit should not be true if the cache was restored with a fallback key.
This is stressed here:
https://github.com/actions/cache/blob/704facf57e6136b1bc63b828d79edcd491f0ee84/README.md?plain=1#L63-L65
And again for the restore action:
https://github.com/actions/cache/blob/704facf57e6136b1bc63b828d79edcd491f0ee84/restore/README.md?plain=1#L15-L22

Update: Debug printing shows that actually, it is not that cache-hit is true:
https://github.com/andreasabel/hasktorch/actions/runs/6537791407/job/17757232711#step:7:8229
##[debug]Set output cache-primary-key = macOS-cabal-<IP_ADDRESS>-ghc-9.2.8-plan-813f23bfbcb4c800c8178d743c3df6e501ec38580a651c180dcd99b0abc9319d
##[debug]Set output cache-matched-key = macOS-cabal-<IP_ADDRESS>-ghc-9.2.8-813f23bfbcb4c800c8178d743c3df6e501ec38580a651c180dcd99b0abc9319d
##[debug]Set output cache-hit = false

However, ! cache-hit is nevertheless false: https://github.com/andreasabel/hasktorch/actions/runs/6537791407/job/17757232711#step:9:2
##[debug]Evaluating: (success() && !steps.cache.outputs.cache-hit)
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Not:
##[debug]....Evaluating Index:
##[debug]......Evaluating Index:
##[debug]........Evaluating Index:
##[debug]..........Evaluating steps:
##[debug]..........=> Object
##[debug]..........Evaluating String:
##[debug]..........=> 'cache'
##[debug]........=> Object
##[debug]........Evaluating String:
##[debug]........=> 'outputs'
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'cache-hit'
##[debug]....=> 'false'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && !'false')
##[debug]Result: false

So cache-hit isn't a proper boolean, it is a String, and negation isn't boolean negation, but something abstruse.
🤣
When have type systems be invented? 1970s? Earlier than that?
And when is now? 21th century?  I actually doubt it... 😢

This must be a regression, because I have used the pattern !steps.cache.outputs.cache-hit in the past and it worked as expected.
Here is evidence where it works:
https://github.com/andreasabel/bnfc3/actions/runs/6539942580/job/17758962129#step:3:25
Run andreasabel/fix-whitespace-action@v1
Run export EXEDIR="$HOME/.local/fix-whitespace/bin"
Run actions/cache@v3
Cache not found for input keys: Linux-fix-whitespace-0.1
Run # Download binary
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

100 16.0M  100 16.0M    0     0  35.1M      0 --:--:-- --:--:-- --:--:-- 35.1M
curl exit code: 0
curl http code: 200
-rw-r--r-- 1 runner docker ... /home/runner/.local/fix-whitespace/bin/fix-whitespace

What happens here is that a cache is not found, and thus the following download step is executed.  This download step is guarded by !steps.CACHE_STEP_ID.outputs.cache-hit, as can be seen here:
https://github.com/andreasabel/fix-whitespace-action/blob/e60f45943b1dfbd36fbc0412a4783945de29102b/action.yml#L47-L55
I am totally confused now...

I'm not sure how this would have worked before, unless cache-hit was an empty string. Unfortunately your workflow run where it worked correctly now gives a 404, so we can't see the details any more.
Action outputs are always strings, see the docs here. So this is a limitation of GitHub Actions generally, and isn't specific to this one. That said, I do agree that the docs for this action should be clarified around this 👍

Yes, I looked at the source code and there wasn't a recent regression.  A clarification proposal of the docs has been submitted here:

#1263

I'd be happy to get my PR merged.

Clarified this behavior in #1467


Polish translation

Finished Polish translation

Thank you very much for your hard work it's amazing. :)

Happy to contribute. Good luck with Your project!


testloss would lead to model update on eval mode

Is this a bug?

@li10141110
in test_loss, the self.opt is set to None
        model.eval()
        test_loss = run_epoch(val_dataloader, model,
              SimpleLossCompute(model.generator, criterion, None))

Thus the
if self.opt is not None:
is not performed.
What is the issue then?

In test_loss loss.backward() is performed, this mean grad is calculated. Than in train_loss, grad calculated grad is used by opt.step()

@Sanster Thank for answer to @gussmith's question😄

Wouldn't it be simply recalculated before opt.step()?
Or you are suggesting it is being accumulated and therefore is updating weights?
So it should read instead:
class SimpleLossCompute:
    "A simple loss compute and train function."
    def __init__(self, generator, criterion, opt=None):
        self.generator = generator
        self.criterion = criterion
        self.opt = opt

    def __call__(self, x, y, norm):
        x = self.generator(x)
        loss = self.criterion(x.contiguous().view(-1, x.size(-1)),
                              y.contiguous().view(-1)) / norm
        #loss.backward()
        if self.opt is not None:
            loss.backward()
            self.opt.step()
            self.opt.optimizer.zero_grad()
        return loss.data * norm

This part of the code, as the authors indicate is the same as in:
https://nlp.seas.harvard.edu/2018/04/03/attention.html

https://discuss.pytorch.org/t/model-eval-vs-with-torch-no-grad/19615

Or you are suggesting it is being accumulated and therefore is updating weights

loss.backward() does accumulate gradients and is clearly written in pytorch documentation.
So it's very clear that this code trains models on the test set.


Add documentation versioning

We’d like docs to have different versions given a release.
This tool can do it.
https://github.com/jimporter/mike/blob/master/README.md

This will be the final state of #465 you can generate a PDF docs for each version and attach it to a release of trigger a release on ReadTheDocs...


Stop depending on Circuit Metadata | Upgrade Qiskit-Terra Dependency Cap the Qiskit-Terra version

What is the expected behavior?
Running tests yields:
Test the error rates using some repetition codes. ... python3.9/site-packages/qiskit_aer/backends/aerbackend.py:463: DeprecationWarning: Setting metadata to None was deprecated in Terra 0.24.0 and this ability will be removed in a future release. Instead, set metadata to an empty dictionary.
  circ.metadata = metadata

In order to upgrade to Terra 0.24.0, we need to be sure that the metadata isn't necessary for our code to run properly. If it is, we need to create a workaround.

Is there any more info on this issue? I don't see this test failure (even when I remove the cap), and I don't know what dependance on metadata is causing it.

Same as #365 issue. Handled in PR: #385


Debug mode fix

This is a fix for issue #51, which in production the DEBUG is set to True,
Thing that are updated

Separated the compose file into two: compose.yml for local development and compose-prod.yml for production.
The same approach has been applied to the Dockerfile, with separate Dockerfiles for the production and local environments.
Production container's start script now includes collectstatic, and the server has been changed to gunicorn.
Production Backend staticfile changed from whitenoise.storage.CompressedManifestStaticFilesStorage to django.contrib.staticfiles.storage.StaticFilesStorage
Finally, in production.py, check if REDIS_URL is set before configuring the CACHES settings.

Production .django env

USE_DOCKER=yes
IPYTHONDIR=/app/.ipython
DJANGO_SETTINGS_MODULE=config.settings.production
DJANGO_SECRET_KEY=[required]
DJANGO_ADMIN_URL=[required]
MAILGUN_API_KEY=[not-required-if-not-implemented]
MAILGUN_DOMAIN=[not-required-if-not-implemented]
SENTRY_DSN=
DJANGO_DEBUG=False

Just fixed it, it was on server side.


exposing http.Client to allow testing with mocking

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add documentation for sending emails with Symfony on GAE

Resolves committer issues in #1022

@googlebot I consent

@bshaffer On the first commit I was using the profile of another project instead of github... I found the trick a bit too late but everything seems ok now thanks to you ;)


Signature::fromHex wrong in 1.3.0

I think https://github.com/paulmillr/noble-curves/commit/2f1460a4d7f31e5a61db9606266f5b9a5c659c9d introduced a bug into Signature::fromHex, in this part of the change:
-       const z1 = bytesToNumberBE(hex.slice(0, half));
-       const z2 = bytesToNumberBE(hex.slice(half));
+       const z1 = bytesToNumberBE(value.slice(0, half));
+       const z2 = bytesToNumberBE(value.slice(half));

Here half is hex.length / 2, aka the number of bytes encoded in hex. This is the same as the full length of value, so the slices are wrong.
I repro'd using this test
    should(`this work`, () => {
        const pk = a7623a93cdb56c4d23d99c14216afaab3dfd6d4f9eb3db23d038280b6d5cb2caaee2a19dd92c9df7001dede23bf036bc0f33982df41e8fa9b8e96b5dc3e83d55ca4dd146c7eb2e8b6859cb5a5db815db86810b8d12cee1588b5dbf34a4dc9a5';
        const sig = b89e13a212c830586eaa9ad53946cd968718ebecc27eda849d9232673dcd4f440e8b5df39bf14a88048c15e16cbcaabe';
        const msg = '68656C6C6F';

        deepStrictEqual(bls.verifyShortSignature(sig, msg, pk), true);
    });

This is a valid signature (at least according to both zkcrypto/bls12_381 and MIRACL) but the public key is rejected as not being in the subgroup.
This seems to fix it
-        const z1 = bytesToNumberBE(value.slice(0, half));
-        const z2 = bytesToNumberBE(value.slice(half));
+        const z1 = bytesToNumberBE(value.slice(0, half/2));
+        const z2 = bytesToNumberBE(value.slice(half/2));

i also encountered this

a7623... has length 191 , which seems invalid

Sorry something must have gone wrong when I pasted into the issue, corrected now

1.4.0 is out


feature: human readable cloud provider

Reference Issues or PRs
Issue targetted issue-1708
Updated the ProviderEnum values.
Changing the value raised some other issues, so updated the enum_to_list() to add a  case to avoid to lower() a string.
Also updated a few lines where comparison was made with Enum values
What does this implement/fix?

[x ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds a feature)
[x ] Breaking change (fix or feature that would cause existing features not to work as expected)
[ ] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] Other (please describe):

Testing

[ x] Did you test the pull request locally?
[ ] Did you add new tests?

Any other comments?
Some tests are failing on my local, and it needs to be checked if there is some value hardcoding in tests. Need help on this.

@shashvatshah9 @iameskild
I think we should make the following changes before we merge:

We are not using lower=False so we should remove that change
I have some suggestions on the new text.

Instead of

local = "local"
existing = "existing K8s cluster"
do = "DigitalOcean"
aws = "Amazon Web Services (AWS)"
gcp = "Google Cloud Platform (GCP)"
azure = "Microsoft Azure"

Lets clean up slightly for consistency

local = "Local test k8s cluster (using 'kind')"
existing = "Existing k8s cluster"
do = "DigitalOcean (DO)"
aws = "Amazon Web Services (AWS)"
gcp = "Google Cloud Platform (GCP)"
azure = "Microsoft Azure (Azure)"

Hey @shashvatshah9, this PR looks like it's really close to being done. Do you have time to wrap this up? Thanks :)

Hey @shashvatshah9, this PR looks like it's really close to being done. Do you have time to wrap this up? Thanks :)

Updated the ProviderEnum with the latest string values, but tests are failing due to missing env variable in local NEBARI_DISABLE_INIT_CHECKS. So need some help here with test configuration.
FAILED tests/test_dependencies.py::test_build_by_conda_forge - subprocess.CalledProcessError: Command '['conda', 'build', PosixPath('/private/tmp/pytest-of-root/pytest-0/te...
FAILED tests/test_schema.py::test_schema[setup_fixture0] - KeyError: 'provider'
FAILED tests/test_schema.py::test_schema[setup_fixture1] - KeyError: 'provider'
FAILED tests/test_schema.py::test_schema[setup_fixture2] - KeyError: 'provider'
FAILED tests/test_schema.py::test_schema[setup_fixture3] - KeyError: 'provider'
FAILED tests/test_upgrade.py::test_upgrade_4_0[./qhub-config-yaml-files-for-upgrade/qhub-config-do-310.yaml-False-False] - KeyError: 'provider'
FAILED tests/test_upgrade.py::test_upgrade_4_0[./qhub-config-yaml-files-for-upgrade/qhub-config-do-310-customauth.yaml-False-True] - KeyError: 'provider'
FAILED tests/test_upgrade.py::test_upgrade_4_0[./qhub-config-yaml-files-for-upgrade/qhub-config-do-310-customauth.yaml-True-False] - KeyError: 'provider'

Also, we do need lower=False in enum_to_list() method call. It not an ideal way of doing things, but somehow that's how the comparisons are being done with enums in this codebase

Hi @shashvatshah9, we will be closing this PR for now. There is a large refactor in the work that will incorporate the changes you proposed so thank you for your contributions :)


BCAPI.dfsAllPaths() returns an array of length 1

I try BCAPI.dfsAllPaths() but it returns an array of length 1. Plus that if I use
let bc = app.plugins.plugins.breadcrumbs

then the methods for BCAPII don't apply. I thought they are the same
Windows 11, Obsidian 0.14.6, Breadcrumbs 2.55.2

Gonna close this as a duplicate of #187


Three Broken Links

The Safe App tutorial found at https://docs.gnosis.io/safe/docs/sdks_safe_apps/ contains a list of links to existing safe apps. Two of which (as far as I can tell) are broken.

Compound:
https://github.com/gnosis/safe-react-apps/tree/development/src/apps/Compound
https://github.com/gnosis/safe-react-apps/tree/development/apps/compound

Transaction Builder
https://github.com/gnosis/safe-react-apps/tree/development/src/apps/TxBuilder
https://github.com/gnosis/safe-react-apps/tree/development/apps/tx-builder

Aave
https://github.com/mrdavey/gnosis-safe-app
Does not seem to exist on @mrdavey's github anywhere.

Also, perhaps this would be a good place to update the list to include Wallet Connect

Hey thanks for noticing! The Aave app is currently a private repo located at https://github.com/aave/gnosis-safe-app. Just waiting for Gnosis to update the SDK so I don't have to reveal infura keys to the world.


(chore) Add useSubscription to docs. Closes #112

Documents usage of useSubscription. Closes #112 .

@all-contributors add @bdunn313 for doc


ENH: Fold fftconvolve into convolve/correlate functions as a parameter

As mentioned in https://github.com/scipy/scipy/pull/337 and https://github.com/numpy/numpy/issues/1858#issuecomment-9688656, I think fftconvolve should be deprecated as a standalone function, and its functionality should be incorporated into convolve, correlate, convolve2d, and correlate2d, enabled by a parameter.  The parameter should be able to force one implementation or another, but should also have an "automatic" default that chooses implementation based on the types and sizes of the inputs.

FFT has several disadvantages: it does not work for object arrays, can be memory hungry, and slower when only a few values of the correlation is needed. https://github.com/numpy/numpy/issues/1858#issuecomment-9688657

(...as well as slower when one input is very small.)
So the automatic mode needs to take into account

The types of the inputs
The sizes of the inputs
The size of the output (maxlag parameter https://github.com/numpy/numpy/pull/5978)

Syntax possibilities:

fft={True, False, 'auto'} (as used in the (deprecated) STScI convolve2d/correlate2d functions)
method={'direct', 'fft', 'heuristic'}
mode={'direct', 'fft', 'auto'}  (as used in Intel MKL library)
...

FYI: The scikit-image developers are looking into something similar: https://github.com/scikit-image/scikit-image/pull/1792

I started to do this at one point, but it was confusing because convolve calls correlate, while correlate2d calls _convolve2d.

+1. I'd like to hide the implementation details from the user and a keyword argument seems to be the right method to allow control.
I'm the author of the scikit-image PR and we've fit a curve for the time ratio. We decide which convolution method to use based on the image and kernel size; maybe that should be the default method?

Closed by https://github.com/scipy/scipy/pull/5608.  Thanks, @stsievert !


Platform not found for

Describe the bug
Get greated with this error while trying to install on my home assistant ;
Logger: homeassistant.setup
Source: setup.py:403
First occurred: 3:10:33 PM (4 occurrences)
Last logged: 3:10:33 PM

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 834, in get_platform
    cache[full_name] = self._import_platform(platform_name)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 851, in _import_platform
    return importlib.import_module(f"{self.pkg_path}.{platform_name}")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/config/custom_components/hoymiles_wifi/sensor.py", line 43, in <module>
    from .entity import HoymilesCoordinatorEntity, HoymilesEntityDescription
  File "/config/custom_components/hoymiles_wifi/entity.py", line 21, in <module>
    @dataclass(frozen=True)
     ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 1220, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 993, in _process_class
    raise TypeError('cannot inherit frozen dataclass from a '
TypeError: cannot inherit frozen dataclass from a non-frozen one

To Reproduce
Steps to reproduce the behavior:

Install through HACS version 0.2.3 on a containerized Home Assistant (?)
restart HA
Notice the log of error

Expected behavior
No error and new entity created
Additional context
I just did the simplest path as presented on the README using HACS.  I do not know yet what is going wrong...

Thanks, this might be an issue with python 3.11.
I will have a look at it.

I updated my base image and the error disappeared.  So probably python 3.11 causing some issue...