fixed to set logger in report_utils module so no need to pass the log…

…ger from other programs

Sure @valearna

@valearna fixed =)

Thanks for looking over the code! @valearna


Install pyyaml in the setup-macos.sh required for format fix

It looks like cmake-format is only installed in the mac script, should we add it to the other scripts, otherwise pyyaml in those scripts is a bit superfluous.

It looks like cmake-format is only installed in the mac script, should we add it to the other scripts, otherwise pyyaml in those scripts is a bit superfluous?

@assignUser good point! Limited the install to the mac script.


Switching between different sources in 'Camera frames sample' doesn't work with two Kinects

Two Kinects are recognised as multiple source groups, but switching between the sources shows preview from just one all the time.

I'm sorry but multiple Kinect devices on a single system is currently not supported by these APIs. To workaround this at this time you can try using the existing Kinect SDK.


Use exponentiation operator instead of Math.pow

JavaScript now support the exponentiation operator (**). This essentially does the same thing as Math.pow. There is an ESLint rule called prefer-exponentiation-operator (which we currently have disabled) - and it makes the argument for the rule as follows:
Introduced in ES2016, the infix exponentiation operator ** is an alternative for the standard Math.pow function.

Infix notation is considered to be more readable and thus more preferable than the function notation.

So this PR is a suggestion to poll opinion as to whether we adopt officially **.
I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

I prefer Math.pow. ** looks like something that is easy to mistype or mis-read

Personally I like removing fluff from code, to make it as expressive in least amount of space. Never even realized that **=is possible, I like that one.
There are three cases of resMult = 1 / 2 ** mipLevel; which could become resMult = 0.5 ** mipLevel; to get rid of the division and its just a bit shorter (not sure if its easier to understand).

@kungfooman ** takes precedence over / so you can't make that substitution.

@willeastcott Its a special case, you can also write 2 ** -mipLevel.

Not sure I prefer ** given the extra complication of operator precedence, but it's not a strong objection.

I feel the same. To me the code is harder to understand, if the brackets are missing. Perhaps we should have brackets around it (apart from a trivial code).
Exponentiation is also right-associative (unlike multiply and divide) but it's on common to have code like 2 ** 3 ** 4 so this is a small issue.
I also checked ES5 compilation, and its transpiled to Math.pow .. so that's great.
I'm approving, but I'm not 100% behind this.

This doesn't seem to be overwhelmingly superior to Math.pow so I think I'll close this for now.


Minimum policy for amplify pull

Is this feature request related to a new or existing Amplify category?
No response
Is this related to another service?
No response
Describe the feature you'd like to request
There's a developer in our team to whom we want to grant "readonly" access to resources.
We want him to run amplify pull but not amplify push or any other commands that "writes" to resources.
We'd like to have either
(a) An AWS managed policy that will give him the least privileges required for "readonly" amplify commands.
(b) policies required for "readonly" access (e.g., amplify:List*) to be in AWS Managed policy ReadOnlyAccess
Describe the solution you'd like
I've noticed through trial and error that all we need is to add the following statement to AWS Managed policy ReadOnlyAccess policy:
    {
        "Effect": "Allow",
        "Action": [
            "amplify:List*",
            "amplify:Get*"
        ],
        "Resource": "*"
    }

If these statements were in ReadOnlyAccess policy we can simply attach it to his role and call it a day.
Ideally though, to follow the least privilege principle I think there ought to be a AWS Managed policy that describes the minimum policies required for read-only access.
This would be equivalent to a write-only version of the AdministratorAccess-Amplify policy.
Describe alternatives you've considered
Since we could not find any existing policy that does the job, we currently maintain a custom policy and add it on top of ReadOnlyAccess.
The additional policy allows the actions "amplify:List*",  "amplify:Get*".
Additional context
No response
Is this something that you'd be interested in working on?

[ ] 👋 I may be able to implement this feature request

Would this feature include a breaking change?

[ ] ⚠ This feature might incur a breaking change

Hey @sergeant-wizard :wave: thanks for raising this! While we do not provide a minimal policy set in our documentation, it is possible to block amplify push attempts by removing CloudFormation create* permissions such as "cloudformation:CreateStack",

I think this would also be a great question to ask other developers in our community Discord server

Closing due to inactivity


Grid causes segfaults when updating the state after an event

Description
When rendering a grid with a checkbox in it and then clicking on the checkbox, you get a segfault
Minimal example:

Run this:

import owlkettle

viewable App:
  discard

method view(app: AppState): Widget =

  result = gui:
    Window():
      Grid():
        CheckButton() {.x: 2, y:5.}:
          state = true
          proc changed(state: bool) =
            echo "Potato"

brew(gui(App()))

click on the checkbox

Stacktrace
Traceback (most recent call last)
/home/philipp/dev/playground/src/playground.nim(16) playground
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle.nim(180) brew
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/mainloop.nim(55) runMainloop
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgets.nim(1488) toggledCallback
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetutils.nim(31) redraw
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetdef.nim(79) redraw
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetdef.nim(52) update
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetdef.nim(525) update
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgets.nim(149) updateState
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetutils.nim(112) updateChild
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetutils.nim(84) updateChild
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetdef.nim(52) update
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetdef.nim(525) update
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgets.nim(2318) updateState
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgets.nim(2264) attach
/home/philipp/.nimble/pkgs/owlkettle-#head/owlkettle/widgetdef.nim(73) unwrapInternalWidget
SIGSEGV: Illegal storage access. (Attempt to read from nil?)

Further information
The last 2 procs that are being called are:
proc attach(grid: GtkWidget, child: GridChild[WidgetState]) =
  gtk_grid_attach(grid,
    child.widget.unwrapInternalWidget(),
    child.region.x.cint,
    child.region.y.cint,
    child.region.width.cint,
    child.region.height.cint
  )

which calls
proc unwrapInternalWidget*(state: WidgetState): GtkWidget =
  result = state.unwrapRenderable().internalWidget

It appears that the state has become nil and "unwrapRenderable()" deals with that by also responding with nil have become nil somehow during the update-cycle (?).
With a modified "unwrapInternalWidget" proc :
proc unwrapInternalWidget*(state: WidgetState): GtkWidget =
  echo "A"
  echo state == nil
  echo "B"
  echo state.unwrapRenderable() == nil
  echo "C"
  result = state.unwrapRenderable().internalWidget
  echo "D"

You will get these results when running and then clicking the checkbox
A
false
B
false
C
D
A
false
B
false
C
D
A
false
B
false
C
D
A
false
B
false
C
D
------ CLICK -------
Potato
A
false
B
false
C
D
A
true
B
true
C

Why am I assuming this is heavily Grid related? If you try this with box it will work as expected:
import owlkettle

viewable App:
  discard

method view(app: AppState): Widget =

  result = gui:
    Window():
      Box():
        CheckButton():
          state = true
          proc changed(state: bool) =
            echo "Potato"

brew(gui(App()))

Another interesting question would be I think: How could we make an example or test that checks this? I know we have a grid example that would've caught it if a change made it no longer compile, but this is something that happens when running the application. Is there a way we could test for this?

Works for me, thank you

Well that was an embarrassing oversight :sweat: (https://github.com/can-lehmann/owlkettle/commit/3f41a02f69cd76a447273d4254982217e4bb7cbf) I should have really tested if the updating works. I am currently working on a better example which will allow properly testing all updating code paths.

The new grid example is a full grid editor, so it should allow pretty extensive testing of the Grid widget. It was definitely worth implementing, because I found yet another bug while doing so...


Change assert plugin path to relative

The PR is no longer valid as we found another way to fix it


Import of LogstashLayout as JsonTemplateLayout

This is the very first draft of my work on contributing log4j2-logstash-layout into Log4j core. Please note that this is still a work in progress. I want to have your feedback and support on the following issues which I will share below.
Goals
Below is the list of goals I plan to deliver in order:

[X] Update manual
[X] Replace Uris with LoaderUtils
[X] Add directive for "nanos of epoch millis", "millis of epoch seconds", etc.
[X] Move pattern, timeZone, locale parameters into timestamp key level.
[ ] Add benchmark to log4j-perf
[X] Rename log4j-layout-jackson-json-template to log4j-layout-json-template
[X] Replace TLAs with a user-provided 3-way caching strategy

I will update this list upon progress.
Module and package name
I chose JsonTemplateLayout as the new module name, which clearly communicates the intent. I am not totally convinced with the package name o.a.l.log4j.jackson.json.template.layout though. I have my doubts about whether we can remove Jackson dependency in the future or not. This ambition does look neither feasible, nor practical in the short-term. That said, from an API perspective, why shall an internal detail like jackson get exposed in the package name? I am considering to place it under o.a.l.log4j.layout.json.template. Any ideas?
Documentation
LogstashLayout has quite some configuration knobs which renders it inconvenient to explain it in /src/site/asciidoc/manual/layouts.adoc. I have skimmed through the source code with the hope of finding a similar documentation pattern, but failed to do so. Would somebody mind shedding some light onto the convention I should follow here, please?
MapMessage#getFormattedMessage() JSON encoding bug
As reported in LOG4J2-2703, MapMessage#getFormattedMessage() is incorrectly formatting Objects for JSON. As a workaround in LogstashLayout, I had a LogstashLayout.Builder#mapMessageFormatterIgnored property, which I have dragged into JsonTemplateLayout.Builder too. The property instructs the layout to ignore MapMessage#getFormattedMessage() and do its own magic to properly encode the MapMessage into JSON. Shall I keep this ad-hoc fix or rather resolve LOG4J2-2703 first?
Performance tests
I have some test utility classes that I want to leverage in performance tests, but test classpath of log4j-jackson-json-template module is not accessible by log4j-perf module. What is the work around here?
What to do with JsonLayout?
I do not intend to implement JsonLayout by leveraging JsonTemplateLayout, at least, not now. I would rather just leave it be and get deprecated eventually. Put another way, is this PR the right place to address this issue?
Missing features compared to JsonLayout
You might have noticed that JsonTemplateLayout misses certain features (e.g., compact, complete, header, footer, etc.) compared to JsonLayout. This is a deliberate decision of mine. If you have any objections, please chime in.
Thread locals
Even though the existing TLA usage of LogstashLayout is dragged in, I am going to replace it with an object pool. I have spotted ThreadLocalVsPoolBenchmark and will start from there.

@jvz, I could not get the test-jar thing working. I have pushed my progress: 7084934. I will be so glad if you can spare some time to help me with figuring out the missing piece.

It's possible that there's a corresponding configuration to enable for the test jar to make it available as a dependency like in log4j-core:test-jar.

@jvz, I have the cloned maven-jar-plugin configuration in /log4j-layout-json-template/pom.xml and I can see both log4j-layout-json-template-3.0.0-SNAPSHOT.jar and log4j-layout-json-template-3.0.0-SNAPSHOT-tests.jar in /log4j-layout-json-template/target directory. But still Maven falls over its face:
[ERROR] Failed to execute goal on project log4j-perf: Could not resolve dependencies for project org.apache.logging.log4j:log4j-perf:jar:3.0.0-SNAPSHOT: Could not find artifact org.apache.logging.log4j:log4j-layout-json-template:jar:tests:3.0.0-SNAPSHOT

I will really appreciate some more help, please.

I'm not really sure what else there is to configure. I can't get it working at the moment myself.

@remkop, in case you are interested in, dae3be0 introduces the abstraction for different caching strategies we have discussed: dummy, thread-local, and queue.

For the records, I am done. The only missing bit is getting test-jar working for log4j-perf module.

OK. I hope I can look at that this weekend. I am also planning on trying to get a release out this weekend so I would expect to merge the PR right after that.
Ralph

On Feb 20, 2020, at 2:20 AM, Volkan Yazıcı<EMAIL_ADDRESS>wrote:
For the records, I am done. The only missing bit is getting test-jar working for log4j-perf module.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/apache/logging-log4j2/pull/335?email_source=notifications&email_token=AAA5MX6JUO3KY7HWVRO5UOTRDZDOBA5CNFSM4KMYDMS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMMNB2A#issuecomment-588828904, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5MXYAHF4LB4IOI7OT2XDRDZDOBANCNFSM4KMYDMSQ.

The logging in the cloud docs need to be discussed or reverted.

How shall we proceed? Do you want to discuss in the mailing list or here?

mailing list. This is already too long.

Hi, do you have a documentation for JsonTemplateLayout?

@ramazanpolat, you can access the latest version of the manual here. Due to .vm (Velocity template) suffix, GitHub is not able to render the AsciiDoc properly. You can copy the content and either paste it into asciidocLive or use your own IDE (IDEA, Eclipse, etc.) for the rendered view.
The changes are landed both on master and release-2.x branches. With the upcoming Log4j 2.x release (which I am trying to steer the rest of the Log4j maintainers toward as of this writing) the layout will be available in log4j-layout-template-json artifact ID and the website will be updated accordingly.

Thank you @vy
I think you made a great addition to log4j2 with this work.

@vy One quick question: Will JsonTemplateLayout have the ability to jsonify the message object passed to Logger?
e.g: Currently with using JsonLayout, this code:
  logger.info("This is an info message");

produces something like this:
{
  "timeMillis" :<PHONE_NUMBER>782,
  "thread" : "main",
  "level" : "INFO",
  "loggerName" : "com.example.Test",
  "message" : "This is an info message",
  "endOfBatch" : false,
  "loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger",
  "contextMap" : { },
  "threadId" : 1,
  "threadPriority" : 5
}

But if we pass an object to the logger like this (considering the object constructor is MyDummyEventBean(String msg, String user, String ip):
  logger.error(new MyDummyEventBean("Something bad happened", "john", "<IP_ADDRESS>");

JsonLayout gets appends .toString() result of the MyDummyEventBean and produces this:
{
  "timeMillis" :<PHONE_NUMBER>782,
  "thread" : "main",
  "level" : "INFO",
  "loggerName" : "com.example.Test",
  "message" : "{\"message\":\"Something bad happened\",\"userId\":\"john\",\"ip\":\"<IP_ADDRESS>\"}"
  "endOfBatch" : false,
  "loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger",
  "contextMap" : { },
  "threadId" : 1,
  "threadPriority" : 5
}

@ramazanpolat, yes, JsonTemplateLayout can do that. You just need to set stringified to false (the default) as follows:
{
  "$resolver": "message",
  "stringified": false
}

Further, LogstashLayout can also do that. In LogstashLayout, you just need to use ${json:message:json} directive rather than ${json:message}.
HTH.

@vy Sorry but LogstashLayout spits my object's as toString() output:
{
  "line" : 123,
  "class" : "tr.gov.sgk.logclient.DAO",
  "message" : "MyLogBean2{message='LogBean Message', userId='LogBean userId', ip='LogBean IP'}",
  "level" : "ERROR",
  "method" : "errorWithExceptionLogstash1",
  "logger" : "logstashLogger"
}

Maybe I'm doing something wrong. My LogstashJsonEventLayoutV1.son file:
{
  "line": "${json:source:lineNumber}",
  "class": "${json:source:className}",
  "message": "${json:message:json}",
  "level": "${json:level}",
  "method": "${json:source:methodName}",
  "logger": "${json:logger:name}"
}

My LogstashLayout in log4j2.xml:
<LogstashLayout eventTemplateUri="classpath:LogstashJsonEventLayoutV1.json"
                prettyPrintEnabled="true"
                locationInfoEnabled="true"
                stackTraceEnabled="true" />

The class I want to be printed as Json(maybe this class needs to implement an interface?):
public class MyLogBean2 {
    private String message;
    private String userId;
    private String ip;

    public MyLogBean2() {    }

    public MyLogBean2(String message, String userId, String ip) {
        this.message = message; this.userId = userId; this.ip = ip;
    }

    public String getMessage() { return message;}

    public void setMessage(String message) {this.message = message;}

    public String getUserId() {return userId;}

    public void setUserId(String userId) {this.userId = userId;}

    public String getIp() {return ip;}

    public void setIp(String ip) {this.ip = ip;}

    @Override
    public String toString() {
        return "MyLogBean2{" +
                "message='" + message + '\'' +
                ", userId='" + userId + '\'' +
                ", ip='" + ip + '\'' +
                '}';
    }

}

Unless there is a reason to do so, I would avoid custom classes to represent the logging structure. In your case a simple logger.info(new MapMessage(Map.of("message", message, "userId", userId, "ip", ip))) fits the bill.
You should have either used logger.info(new ObjectMessage(customLogBean)) or implement Message interface in the CustomLogBean class.

Hi, I am aware of this development after open this Jira issue: LOG4J2-2936
Please, could you tell me:

When will be the JsonTemplateLayout released?

Is there someway to resolve the message parameters? As explained in the ticket, I would like to isolate the message parameters in a different JSON section.

If one of the additional fields configured under <EventTemplateAdditionalField> resolves an empty value, the relative JSON field will be rendered with an empty string as value or not rendered at all?

Thanks in advance and congrats for your work!

Let me try to answer your questions @diepet:

When will be the JsonTemplateLayout released?

Next Log4j 2.x release (2.14.0?) will contain the JsonTemplateLayout. @rgoers is busy with rolling the release out.

Is there someway to resolve the message parameters? As explained in the Jira issue linked above, I would like to isolate and to render the message parameters in a different JSON section.

JsonTemplateLayout doesn't provide a built-in resolver for message parameters. (AFAIK, neither PatternLayout does.) That said, I question this approach. (I will comment more about this in the linked Jira issue.)

If one of the additional fields configured under <EventTemplateAdditionalField> resolves an empty value, the relative JSON field will be rendered with an empty string as value or not rendered at all?

Yes, it will be rendered as is. If it is null, "", or "\t\n", etc. whatever, it will be rendered intact. JsonTemplateLayout doesn't employ any blank value elimination.

Thanks @vy for the feedbacks!
Ok, so let's move the discussions for the point 2 in the Jira issue.
Could be possible, in the future, to plan a new <EventTemplateAdditionalField> boolean attribute for disabling the rendering of these kind of fields in case of empty/null values?
I am looking forward to download the new log4j2 release!

[Sorry for the late reply, I am pretty much swamped with my day job nowadays.]
@diepet, I have deliberately left out blank value elimination in JsonTemplateLayout (while I was the one who has introduced it in LogstashLayout) mostly due to the following reasons:

It incurs an extra runtime cost.
Most of the time you don't care. You persist logs in a storage system, e.g., ELK stack, and there null value elimination is provided out of the box by the storage engine in the most efficient way.

If you have a use case which necessitates such a feature, I would like to hear more about it.

Ehy @vy, better a late reply than a null reply!
Thanks, your points  are clear and understandable.
I am looking forward to using the message parameters resolver discussed in Jira!

Thanks for the feedback @diepet, keep 'em coming!


amazone --amazonec2-ssh-keypath not used

I've generated an ssh key ssh-keygen -t rsa -b 4096 -C "email"and used the public key aws.pub for importing an key-pair in AWS
when i create an instance with
docker-machine create --driver amazonec2 --amazonec2-region eu-west-1 --amazonec2-instance-type t2.micro --amazonec2-tags Name,prod --amazonec2-ssh-keypath ~/.ssh/aws prod
The instance is created, but a prod key-pair is created (on AWS) and used for the EC2 instance
I prefer my own key so i can use it to FTP to the EC2 instance. What am I doing wrong? or is it a bug.
Thanks Willem

There is already a similar issue. It seems like machine will always create new key pairs.

There is already a similar issue. It seems like machine will always create new key pairs.

Not ideal. Why would I want to create a new keypair for every instance I create?


[Part 2] Add Intra-broker IPC support

Verified with the test case with the following configuration

Broker app installed, and it contains the updated .aidl
Broker app installed, but it doesn't have the new function added to .aidl.
Broker app not installed.

        Logger.verbose(TAG + methodName, "Removed previous key pair info.");

Please put this in the telemetry.

Refers to: common/src/main/java/com/microsoft/identity/common/adal/internal/cache/StorageHelper.java:831 in 9323db7. [](commit_id = 9323db79a3a7f47aba7520881a05afdfe50b0806, deletion_comment = False)


restore script doesn't allow change of storage engine

When I try to use InnoDB I get an error.
(venv)greg@Ithilien:~/Documents/ecs260/dump/mod_dump$ ./ght-restore-mysql -uroot -proot -eInnoDB .
./ght-restore-mysql: illegal option -- e
Invalid option: -
Usage: ./ght-restore-mysql [-u dbuser ] [-p dbpasswd ] [-h dbhost] [-d database ] dump_dir

Am I doing something wrong here?

Try explicitly defining the -h and -d flags, and see if that fixes the issue.

This was related to a pull request I made. I should have closed this ticket after it was accepted


fix change brpc connection type to single (#34883)

Proposed changes
Cherry-pick  #34883
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

closing because branch-4.0 is abandoned.


User is not able to deploy cluster because agent manifest is unknown

What kind of request is this (question/bug/enhancement/feature request): bug
Steps to reproduce (least amount of steps as possible):

On master-head
Deploy a one node DO cluster
the cluster fails to come up.
Error seen on the Node page: Unable to find image 'rancher/rancher-agent:master-44caa588962a9004e192faf28ae9296ac46cb164-head' locally docker: Error response from daemon: manifest for rancher/rancher-agent:master-44caa588962a9004e192faf28ae9296ac46cb164-head not found: manifest unknown: manifest unknown. See 'docker run --help'. Process exited with status 125 : exit status 1

Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): master-head commit id: 44caa5889
Installation option (single install/HA): HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): DO node driver
Kubernetes version (use kubectl version):

1.18

Tested with master-d19f179c4ff15bb782e27ed50d33d169dad79f80-head
This issue is not seen any more.
Able to deploy a DO cluster successfully.


Create test.md - update

qqq

ccccccc

you have: created a branch, created a file and made a commit, and opened a pull request

you have: created a branch, created a file and made a commit, and opened a pull request

you have: created a branch, created a file and made a commit, and opened a pull request


Update endpoint interaction of UI.

Coverage remained the same at 55.224% when pulling 9c6e49c5ddcb593f5c8440fb0715b50a333577fb on wknet123:master-jit into e6380567d499d76cccb35874edd91627ba5fc80c on vmware:master.


Added TypeScript declaration and test

@jgravois, second route is fine by me
I can make a separate branch for the first commit--the one that added a test for listDependencies--which is independent of the typings.

awesome!

I can make a separate branch for the first commit

we could just 🍒-pick it too.

@jgravois, would you please review the adlib.d.ts file in this PR?  If it's OK, I can close this PR and remove the branch after submitting the file to DefinitelyTyped.
I had trouble getting TypeScript to accept both adlib's default returned function adlib and its auxiliary function adlib.listDependencies.  The latter is in adlib.d.ts as a standalone function that has to be called as adlib.listDependencies when adlib is required (necessary for path change from node_modules) and as listDependencies when adlib is imported. Seems untidy, but I've been unable to find a better way.

i just did a quick snoop and it looks like there is some goofiness in how adlib is exported that we should fix.
primarily:

It is bad practice to mix default and named exports in the same module. - reference

i'll take a crack at that today. i'm hopeful that it'll help with what you're trying to do .


Overhaul TUI

This PR overhauls the TUI. It involves some major code restructuring in order to be able to do this. Notably, the code is now much more readable and reusable. I'm sure there are further gains to be had in code reuse.
There may be other needs down the road.
Fixes #42, #102, #104

[ ] Test optargs

This PR is a resubmission after an accidental push in #99.

I have left behind some TODOs for the future in #35. This code is somewhat duplicative in that both tui_dialog and tui_curses intend to accomplish the same thing. I think both have value and a mix of the two is nice to have, i.e., dialog file picker, dialog tasklist for package install feedback; and curses for general better looking appearance.
To play around with the code, you can switch between the types of dialogs (curses or pydialod) by changing the dialog bool in the various functions. This gives us a lot of freedom.

Some early feedback:

So we need a check then in the TUI code to determine someone's dialog version to make sure it is at least a particular version, then we need to change the dialog flag to be a config option…

Current conflicts exist because I cherry-picked a commit for #102.

Attempting to test a function to test the dialog version and hitting an error when running ./main.py -I. Hold on review.

Fixed the issue. It appears Logos introduced a BOM in their XML data.

Fixed -I. Now I'm getting errors on my dialog version checker. Progress!

And the test is now fixed. Should be ready for review. Again, the conflicts are due to a cherry-pick followed by a rebase.

Dropped the XML BOM commit and fixed the cherry-pick/rebase issue.

And I have reworked the dialog package detection so that it should fallback to curses if the dialog package is outdated. This may break the installer but since I cannot test it at present, I am assuming it will work. The one place I expect it to break is when choosing the install path.

Most recent push simplifies tui_app.set_tui_menu_options().

Most recent push should fix process sharing between main.py and wine.py.

Success! (mostly) I assume the following error is due to ICU files:

I'm going to test again with 29.x.

Well, I got the same error, except I got it because the GUI still installs 34.x instead of the 29.x that I selected. That's a separate issue due to the config file's release version for some reason taking precedence over the once chosen in the GUI. See here. After removing the config file and trying again it works.
In short, I think we're ready to merge this in.


Converting asset fields may be broken

From @ssanderson :
Oof.  Thanks for the catch.  We're currently doing:
def _convert_asset_timestamp_fields(dict):
    """
    Takes in a dict of Asset init args and converts dates to pd.Timestamps
    """
    for key, value in dict.items():
        if (key in _asset_timestamp_fields) and (value is not None):
            dict[key] = pd.Timestamp(value, tz='UTC')

when we pull an entry out of the database.  Both for efficiency and correctness, this loop should probably be:
def _convert_asset_timestamp_fields(dict):
    """
    Takes in a dict of Asset init args and converts dates to pd.Timestamps
    """
    for key in _asset_timestamp_fields:
        value = dict[key]
        if value is not None:
            dict[key] = pd.Timestamp(value, tz='UTC')

_convert_asset_str_fields is also almost certainly broken.
# A set of fields that need to be converted to strings before building an
# Asset to avoid unicode fields
_asset_str_fields = frozenset({
    'symbol',
    'asset_name',
    'exchange',
})

def _convert_asset_str_fields(dict):
    """
    Takes in a dict of Asset init args and converts from unicode to string
    where applicable
    """
    for key, value in dict.items():
        if key in _asset_str_fields:
            dict[key] = str(value)

This will return bytes in Python 2 and unicode in Python 3.  The statement "converts from unicode to string" is not meaningful in a Python 2/3 compat library.

@StewartDouglas Could you tackle these fixes at your earliest opportunity?

ACK looking now

Adding to AssetFinder bugs noticed while looking at this: we're no longer correctly testing for duplicate symbol resolution in test_lookup_generic.  The code that builds the test cases for that method currently uses these two assets:
            {
                'sid': 0,
                'symbol': 'duplicated_0',
                'start_date': dupe_0_start.value,
                'end_date': dupe_0_end.value,
                'exchange': '',
            },
            {
                'sid': 1,
                'symbol': 'duplicated_1',
                'start_date': dupe_1_start.value,
                'end_date': dupe_1_end.value,
                'exchange': '',
            }

We then query for 'duplicated_0' and 'duplicated_1', but
the intent of this test is to ensure that if we have two different assets that share a symbol, then we correctly resolve them based on a provided symbol resolution date.  The test was originally written like this:
            {
                'sid': 0,
                'file_name':  'duplicated',
                'company_name': 'duplicated_0',
                'start_date_nano': dupe_0_start.value,
                'end_date_nano': dupe_0_end.value,
                'exchange': '',
            },
            {
                'sid': 1,
                'file_name':  'duplicated',
                'company_name': 'duplicated_1',
                'start_date_nano': dupe_1_start.value,
                'end_date_nano': dupe_1_end.value,
                'exchange': '',
            },

@ssanderson I think your following proposal will raise a KeyError when run with equities:
def _convert_asset_timestamp_fields(dict):
    """
    Takes in a dict of Asset init args and converts dates to pd.Timestamps
    """
    for key in _asset_timestamp_fields:
        value = dict[key]
        if value is not None:
            dict[key] = pd.Timestamp(value, tz='UTC')

Since keys such as expiration_date are not defined for equities, hence the existing if (key in _asset_timestamp_fields) check. As an alternative we could use try...catch or define two different methods to handle equites and futures.

dict.get(key) is probably what you want then.

_convert_asset_str_fields may not be necessary at all, as all tests currently pass for me for both python 2.7 and 3.3, including the tests which we'd expect to complain: test_repr and test_root_symbols in tests_assets.py.

@StewartDouglas If you leave the timestamp code intact, I'll update it with my performance changes.

@richafrank sure, made a commit for it but will just delete it.

Ok, thanks.

@jfkirk I think this issue can be closed now since:

_convert_asset_timestamp_fields has been refactored.
_convert_asset_str_fields has been removed.
test_lookup_generic now correctly tests for duplicates.

([Link] (https://github.com/quantopian/zipline/commit/c8c83a9f2bf52806178b9cd4d0a0aa7d6845e399#diff-e38a95b451336da451f69f2b60840da6L67) to the _convert_asset_timestamp_fields refactoring.)


Use a map to find the index of a level in O(1) time

This is fairly subjective and given the size of the array it is not really required.
Feel free to do whatever you want with this pr.

<EMAIL_ADDRESS>x 1,485,526 ops/sec ±0.59% (95 runs sampled)
console-log-level#6b2040b x 1,639,820 ops/sec ±0.65% (89 runs sampled)
Fastest is console-log-level#6b2040b

In the best case (when using log.fatal) this is faster by 10% :smile:

@lpinca I originally opted for the simpler, but marginally slower approach because the code is only running when the module is first initialised. I don't see a use-case where you'd like to create a lot of new loggers at runtime.
Unless I've misunderstood your PR, this only changes the startup time right? I think prefer the simpler and less clever code :wink:

This patch does not improve the start time of the logger, it actually makes it slower.
This patch gets rid of this loop which is run every time you log something.
In the worst case this takes O(n) where n is the size of the array of levels.

@lpinca Ah true - missed that.
Wouldn't a simpler approach be to just have all log-level functions below the treshold be a noop? This could easily be achieved by moving the shouldLog check outside the actual log function? Here is a quick and untested mockup based on the old code:
  levels.forEach(function (level) {
    logger[level] = shouldLog(level) ? log : noop

    function log () {
      var prefix = opts.prefix
      var normalizedLevel

      switch (level) {
        case 'trace': normalizedLevel = 'info'; break
        case 'debug': normalizedLevel = 'info'; break
        case 'fatal': normalizedLevel = 'error'; break
        default: normalizedLevel = level
      }

      if (prefix) {
        if (typeof prefix === 'function') prefix = prefix()
        arguments[0] = util.format(prefix, arguments[0])
      }

      console[normalizedLevel].apply(console, arguments)
    }
  })

The noop function can just be defined in the top of the file: var noop = function () {}
That way the shouldCheck only runs on initialisation :smiley:

Sounds good and a lot cleaner :+1:

@lpinca do you want to make the change or should I?

As you wish, I can probably do this this afternoon, but if you have time go ahead :)
Closing this.


Release version

Hi,
I see a lot of work being done but I would like to know when is the next version getting released or how do I even build the source into a useable version?

We are looking at a few different options for releasing WinFile -- appveyor, Windows Store, some internal Microsoft thing, and direct to github.
To build master for Windows 7+, use VS 2015 or 2017, load src\WinFile.sln and press F6.

The other option is though windows update like they do with office?

2nd question is the v10 branch getting updated or the other branch?

@T8z5h3 Using Microsoft Update is certainly not an option. It would probably rely on a lot of negotiations with MsU division/team/folks and would really make some limitations for us (like, probably, impossibility for per-user installation, no support for older OS-es, publishing Microsoft Knowledge Base articles). I think it isn't a thing to happen.
And we've got only one branch right now.

@T8z5h3 the Windows Store's auto updating system will essentially take care of that need. If you are running Windows 10, that should be sufficient. You don't even need a Microsoft account to be able to use the store version and get automatic updates.

@NazmusLabs what about windows 7

@craigwi i wonder if sysinternals maybe willing to host it they have a lot of "admin" level tools that are not directly supported by Microsoft.

As noted elsewhere, we will have a few different distribution mechanisms. Windows Update will not be one of them.


Update Allnodes RPC Endpoints

Docs PR Template
Why this should be merged
We added new rpc endpoints + changed brand to Allnodes
How this works
RPC Endpoints
How these changes were tested
We just made text changes
To prevent any errors while building

[] run vale /docs/file/path on all changed .md files to ensure all grammar rules pass
[] run markdownlint /docs/file/path on all changed .md files to ensure all linting rules pass
[] complete the above two checks and all additional rules outlined in style-checker-notes.md to
ensure all checks pass

If a document was removed/deleted

[] the path to that doc must be redirected to a valid URL via the
_redirects file
[] _redirects were manually verified with the cloudflare preview link
[] sidebars.json reflects all changes made to file path

If a document was moved

[] all files that were moved from their current directory to a new path have had their paths
redirected via the _redirects file
[] _redirects were manually verified with the cloudflare preview link
[] sidebars.json reflects all changes made to file path

LGTM!


[4.2.16] Eloquent bug in querying float values

Our provider upgraded to PHP 5.4.36 and this problem arrived: When eloquent fetches float numbers from MySQL for example 333.33, it returns 330 - all float values are rounded in tens!
This appeared with some early Laravel 4.0 but I just upgraded to 4.0.10 and problem persists.

Only Laravel 4.2.16 is supported. All other versions are unsupported. Sorry.

I just upgraded to 4.2.16 and the problem persists! How can I debug this?

Probably ask on the forums. This doesn't look like a bug with laravel itself.

I just verified that connecting MySQL and querying with plain PHP gets the floats right...

Started a thread on this: http://laravel.io/forum/01-12-2015-eloquent-returns-floats-as-integers-rounded-in-tens

@GrahamCampbell this must be an Eloquent issue! Or an compatibility issue with certain PHP + MySQL version combo, but with Eloquent still.
How else this can output 333.33 :
$result = mysql_query("SELECT someval FROM sometable WHERE id = 8");
WHILE ($row = mysql_fetch_array($result)) {
    echo $row{'someval'};
}

...when this outputs 330 and gettype() returns "double":
return Sometable::where('id', 8)->pluck('someval');

Described problem persist on 4.2.17. MySql 5.6.21 PHP 5.5.17.

4.x is not supported

I had the same problem with PHP 5.6.1 and it's working now with 5.6.7

This issue popped up for me when using Laravel 5.0.27. It has nothing to do with Laravel, but rather with how floating point values are stored in MySQL and how PDO returns the value. This is fixed by using a DECIMAL type instead.

@aparticka thanks for the explanation! I'm running  4.2.17 and have the same issue. Is there something we could do besides changing the type to fix this problem?


Support Windows 7

Some members of the community have asked for us to support Windows 7. Whilst Windows 7 is no longer a supported OS, there isn't a particular reason why Limit Theory can't be compiled to support it on a best effort basis.
I think it's likely going to be too difficult to use Visual Studio to compile an executable that will work on Windows 7, so it might make sense to use CMake to generate makefiles using the mingw-w64 toolchain instead, which definitely comes with the GitHub Windows runner. mingw-w64 binaries should work fine on older Windows platforms.

I was able to successfully build from source an x86 executable (lt32.exe) with just a small tweak to pull in a 32bit FMOD dependency.
Here is my change:
diff --git a/libphx/cmake/External.cmake b/libphx/cmake/External.cmake
index a734a11..60aa10e 100644
--- a/libphx/cmake/External.cmake
+++ b/libphx/cmake/External.cmake
@@ -85,10 +85,17 @@ if (FMOD_ADDED)
   add_library(fmod SHARED IMPORTED)
   target_include_directories(fmod INTERFACE "${FMOD_SOURCE_DIR}/include")
   if (WIN32)
+    if (ARCH_X86)
     set_property(TARGET fmod PROPERTY IMPORTED_LOCATION
-      "${FMOD_SOURCE_DIR}/lib/win/x86_64/fmod.dll")
+      "${FMOD_SOURCE_DIR}/lib/win/x86/fmod.dll")
     set_property(TARGET fmod PROPERTY IMPORTED_IMPLIB
-      "${FMOD_SOURCE_DIR}/lib/win/x86_64/fmod_vc.lib")
+      "${FMOD_SOURCE_DIR}/lib/win/x86/fmod_vc.lib")
+    else ()
+      set_property(TARGET fmod PROPERTY IMPORTED_LOCATION
+        "${FMOD_SOURCE_DIR}/lib/win/x86_64/fmod.dll")
+      set_property(TARGET fmod PROPERTY IMPORTED_IMPLIB
+        "${FMOD_SOURCE_DIR}/lib/win/x86_64/fmod_vc.lib")
+    endif ()
   elseif (APPLE)
     set_property(TARGET fmod PROPERTY IMPORTED_LOCATION
       "${FMOD_SOURCE_DIR}/lib/macos/libfmod.dylib")

So far it works on Win10 and Win10 (Windows 7 compatibility mode).
Might be worth a try?

Actually,, testing ARCH_X86 is not correct. But if we can detect 32/64bit windows then it should work.

I feel like ARCH_X86 should be set correctly if the target architecture is x86. Perhaps the code where we set ARCH_X86 needs to be fixed?


Error: Not implemented

Project Name: Alien     While training/ recognizing sounds (using Firefox browser on Ubuntu Mate) I am repeatedly getting the message Error: Not Implemented.
As a result, the accuracy of the training model is compromised. Have tried different sound variation with larger data set but same the error keeps coming each time the "Learn & Test" option is executed.
Looking forward to your kind help and support to resolve the issue.

While training/ recognizing sounds (using Firefox browser on Ubuntu Mate)

Do you mean you only see the error on Firefox on Ubuntu? Does using a different web browser show the same problems?

I am repeatedly getting the message Error: Not Implemented.

Do you mean you're getting that error from this page?

When do you get that error? (Can you describe the exact steps that recreate the problem, please?)
By "repeatedly" do you mean that it happens every time? Or only some times?

As a result, the accuracy of the training model is compromised.

I'm not quite sure what you mean by that.

Have tried different sound variation with larger data set but same the error
keeps coming each time the "Learn & Test" option is executed.

Do you mean you're seeing errors on this page?

What error do you get? When do you get that error? (Can you describe the exact steps that recreate the problem, please? Is it when you click on Train? Or Start Listening?)

Closing as it's not possible to investigate this without details.


Feature request

Is your feature request related to a problem? Please describe.
Hey I cannot see the folder of the famous algorithm YOLO- You only look once
Describe the solution you'd like
I would like to make a folder using YOLO
Describe alternatives you've considered
I have considered making version wise folder so it will be easy to navigate
Additional context
https://pjreddie.com/darknet/yolo/

already present check in recognition algo folder


WebSocketHubProvider onConnect, onDisconnect

Is there a way to receive websocket connect/disconnects events from WebSocketHubProvider dependency? Just "experimenting".

Hi,
Edit (tldr): Not out of the box, but the pieces are there for you to build one if you want. Happy to guide you through this, though the mailing list is probably a better forum.
Original thoughts:
The WebSocketHubProvider is a dependency provider. Listening to connection events probably maps best to a nameko entrypoint. We don't have one out of the box, but it should be relatively straightforward to build one yourself. Like the WebSocketRpc entrypoint it would make use of the WebSocketServer, which would need to be subclassed to have add_websocket and remove_websocket also look for providers and invoke them (as it does in handle_websocket_request).
As I said, if you're interested in building this and want a hand, please post to the mailing list and I'd be happy to help.
Best,
D

Thank you kindly, I will do just that!


openssl exit status is "wrong" on non-macOS platforms, fix code to work anyway

The old code
success = system(command.join(' '))
UI.crash!("Error decrypting '#{path}'") unless success

depends on the command (which is openssl ... in this case) to correctly return an "exit status" to initate the expected crash when decrypting fails:

system returns true if the command gives zero exit status, false for non zero exit status. Returns nil if command execution fails.
https://ruby-doc.org/core-2.4.0/Kernel.html#method-i-system

For the macOS implementation of openssl this seems to be true.
Unfortunately, it is not for the Ubuntu/WSL implementation where even if decryption fails, the exit status is true (but an error output is generated, which system didn't surface.).
Using Open3.capture3 enables us to look at or for that error output and "fix" success to false if something is returned, which indicates a failure.
(First line of PR also fixes a tiny typo)

Alternatively I could wrap this new code in a conditional is_mac and leave the Mac code path unchanged.


Share movies

Create share links to a specific movie

https://gophie.cam/Server1/d8007fe0-7989-4c2b-ae0e-af23b5470895
There seems to be a links but they do not work for mobile or web client. Is this a routing issue?

The link looks like one for a shared movie. However if that id does not exist i.e d8007fe0-7989-4c2b-ae0e-af23b5470895 then it simply redirects you home

Okay, I copied this link from the site for the movie Micheal Clayton  so i think the id should be valid.

Copying the link won't work. Make use of the share
button instead.


Agile monkeys "templates"

scope of work, template specification (in progress)
[x] material.io - web or vuetify?
[x] easy to change themes (logo/colors), "skins"
[x] verify scope of work
[x] design round 1
[x] design round 2
[x] receipt of templates

Templates received and moved to develop via RP #153


Calculation of percentage is wrong

https://github.com/DavideTriso/aria-progressbar/blob/27e90c49f9c02b5f0349b82e918a726613b00d33/src/js/aria-progressbar.js#L110
The line should be:
self.valuePercent = (value*100.0)/(settings.maxVal - settings.minVal);

With your version it just works when max == 100

Tank you for reporting. Fixed in v0.4.0. Also removed minVal option because unneeded.


SqlConnection.Open first time very slow android - 10 times slower than windows

Greetings all,
We have s strange issue and cannot get the reason behind.
We are using this connection string:
string connectionString = @"Server=webserver;" +
"Database=MyDB;" +
"User Id=sa;" +
"Password=mysecretpass;" +
"Persist Security Info=False;" +
"Encrypt=True;" +
"TrustServerCertificate=True";
Connection encryption is forced by SQL server. In our project we have that certificate so we can make the connection.
When we use:
Microsoft.Data.SqlClient.SqlConnection con = new Microsoft.Data.SqlClient.SqlConnection(connectionString);
con.Open(); // <-- on Windows this is around 500 ms to 1s on android same code goes above 5s on Android device, in emulator this is bellow 2s.
Already tried everything with ConnectionString properties, non of it works. It is something underlying.
Anybody got any ideas, we can mask this by opening our connection on startup but if we have 2 different connections, it is a hustle.
So if anyone has any idea why is this so slow please advise..
It is huge pitfall for our apps..
Android
[0:] First connection open: 5236ms
[0:] Second connection open: 20ms
[0:] Third connection open: 0ms
Windows:
First connection open: 499ms
Second connection open: 5ms
Third connection open: 0ms

@thevirtualdj, this does not seem like a SqlClient issue, can you provide a sample application?

@thevirtualdj what hardware did you use for testing?

Problem is in Microsoft.Data.SqlClient tds ssl layer.
Most of the time spent is when stream is trying to AuthenticateAsClient to server.

AuthenticateAsClient method can take a long time when the Certificate Revocation List (CRL) is downloaded. The delay occurs before the RemoteCertificateChainCallback is called, so it’s not the building of the cert chain or any other action there that’s causing the delay. The issue only occurs when the CRL is not cached. This is the only explanation that I could find in this scenario, now why this is happening on Android and not windows, seems like android does not store CRL and downloads it every time that method is called. One solution I can suggest is installing the root CA cert locally. That can help avoid going to the Internet for the list of trusted root CA certs.

Tried to install it to android trusted root certificates. Have it installed. Still the same problem.

@JRahnama note that SslStream.AuthenticateAsClientAsync has a flag to enable/disable CRL; Npgsql exposes this via the connection string, allowing users to control whether to do this or not.

Have tried to manually override it thru Microsoft.Data.SQLClient code. Set it to false.
Still the same.

Any progress on this issue, anyone?

This looks like due to host name resolution timing out on Android devices, for which you can try to connect to an IP address or flush DNS cache and try to fix DNS entries to speed up connection duration.


Preset pass manager ignores basis_gates

Environment

Qiskit version:
Python version:
Operating system:

What is happening?
Title
How can we reproduce the issue?
from qiskit.transpiler.preset_passmanagers.level1 import level_1_pass_manager
from qiskit.transpiler import PassManagerConfig
from qiskit.providers.fake_provider import FakeNairobiV2

backend = FakeNairobiV2()
pmc = PassManagerConfig.from_backend(backend, basis_gates=["cx", "x"])
pm = level_1_pass_manager(pmc)
pm.run(circuit)

What should happen?
It should be TranspilationError.
Any suggestions?
No response

I'll close this one in favour of #11747 which has a bit more detail.


Added intervals for QuarterHour, HalfHour, Century, HalfCentury, Quincentenary and Millennium

Boo-yes! How could we build in tests for this kind of thing? I found myself fudging the test CSV dates as I fiddled with the JS.

We really need to expose the api methods a little bit more to fill out tests, that's the next big hurdle, if you want to tackle exposing things like Intervals to the TImelineSetter global pbject we can coordinate on writing tests... I'm sure we'll get to it someday..


Multiple shaders lead to duplicate symbol linking errors

E.g. using oryol TBUI module via fips_import_oryol_TBUI()
and define own shaders via oryol_shader(shaders.shd)
leads to:
../../oryol_TBUI/libTBUI.a(TBUIShaders.cc.o):(.data.rel.local+0x0): Mehrfachdefinition von `Oryol::vs_glsl100_src'
CMakeFiles/wov.dir/shaders.cc.o:(.data.rel.local+0x0): first defined here
../../oryol_TBUI/libTBUI.a(TBUIShaders.cc.o): In Funktion `Oryol::StringAtom::Clear()':
/home/mgerhardy/dev/fips-build/wov/linux-make-debug/oryol_TBUI/TBUIShaders.cc:369: Mehrfachdefinition von `Oryol::fs_glsl100_src'

a namespace per shader would be great here.

Hmm, yeah I removed an extra Shaders namespace, so there can be new collisions. I'll add the shader program name to the variable name, since the program name needs to be unique this will also fix the name collision.

I will provide a pull request

Minor correction: I'll just rename the TBUI shaders to vsTBUI and fsTBUI, just as in the IMUI module. The problem is that vertex- and fragment-shaders can be reused between multiple shader programs. I think it's ok for vertex- and fragment-shaders to live in the global Oryol namespace, once shader include files are added this will be useful.

...see here: https://github.com/floooh/oryol/blob/master/code/Modules/TBUI/tb/TBUIShaders.shd#L13

ah I see.


Unable to install grunt-sassdoc

Hello,
I'm currently having an issue installing grunt-sassdoc. I'm following the instructions on the Grunt integration page:
npm install --save-dev grunt-sassdoc

But i'm getting the following error:
npm ERR! notarget No compatible version found<EMAIL_ADDRESS><2.0.0-0'
npm ERR! notarget Valid install targets:
npm ERR! notarget ["0.1.0","0.2.0","0.2.1","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6","0.3.7","0.3.8","0.3.9","0.4.0","0.4.1","1.0.0","1.0.0-rc.1","1.0.0-rc.2","1.0.0-rc.3","1.0.0-rc.4","1.0.0-rc.5","1.0.0-rc.6","1.0.0-rc.7","1.0.0-rc.8","1.0.0-rc.9","1.0.0-rc.10","1.0.0-rc.11","1.0.0-rc.12","1.0.0-rc.13","1.0.0-rc.14","1.0.0-rc.15","1.0.0-rc.16","1.0.0-rc.17","1.0.0-rc.18","1.0.0-rc.19","1.0.1","1.0.2","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.2.0-rc.1","1.2.0","1.3.0","1.3.1","1.3.2","1.4.0-rc.1","1.4.0-rc.2","1.4.0-rc.3","1.4.0","1.4.1","1.5.0-rc.1","1.5.0","1.5.1","1.5.2","1.6.0","1.6.1","1.7.0","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.10.3","2.0.0-rc.3","2.0.0-rc.4","2.0.0-rc.5","2.0.0-rc.6","1.10.5","1.10.6"]
npm ERR! notarget
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

npm ERR! System Darwin 13.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "--save-dev" "grunt-sassdoc"
npm ERR! cwd /Users/user/Sites/_build-template/id-build
npm ERR! node -v v0.10.31
npm ERR! npm -v 1.4.23
npm ERR! code ETARGET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/user/Sites/_build-template/id-build/npm-debug.log
npm ERR! not ok code 0

Maybe it's a problem with npm at the moment?
Thanks!

Try npm install npm@latest -g before.

Also if your getting started with SassDoc, you might want to start using the really upcoming v2.0.
Docs: http://sassdoc.com/develop/
Install: npm install npm@latest -g && npm install grunt-sassdoc@beta -D

Yup that did it, I was using an old version of node.js (0.10.31) and npm. Once updated I can install sassdoc.
Thanks for the quick reply!


Metadata in CFN Launch Config

Seems its unsupported by cfndsl? I had a look at at the types and its not listed on either of them, I am leaving this here for now though I am trying to work on a PR to resolve this but incase you had something on the go now?

It's support .. sample Launch Config block.
  AutoScaling_LaunchConfiguration('LaunchConfig') do
  .....
    Metadata(
      'AWS::CloudFormation::Init': {
        ......
        }
    )
end

Hence closing it ;) was a long day :(


Formatted the code

Using cargo fmt

@bors-servo r+

:pushpin: Commit 1d15038 has been approved by jdm

:hourglass: Testing commit 1d150383f0c7753e90ce3484578cecf1845cb25b with merge da1f89974581eefc808ea6190054a67120a5d6db...

:sunny: Test successful - checks-travis
Approved by: jdm
Pushing da1f89974581eefc808ea6190054a67120a5d6db to master...


Detectnet: do I need to manually change the source directories and settings in Caffe Model file as well as DIGITS gui?

Hey Folks.
I am still getting used to using Digits, which is great. Sorry for the kinda dumb question here--I am more a familiar with Tensorflow so Caffe is still very foreign. So I was trying to test Detectnet using the Spacenet data. I was able to import the images and labels(in Kitti format), so we are good there. But the problem is that I don't seem to have any learning happening, though the model does not crash. I ran for about 30 epochs, but did not get any mAP, etc., but I just might need to wait longer.
I was using the same Detectnet Caffe model file from the Kitti example, and saw that the directories for the training and testing are hard coded. my question is, do I need to change these hard coded paths, or are they just ignored by the Caffe model?
A more general question is what settings do I need to change in the Detectnet Caffe file for the Spacenet data.

The Kitti model file used "image_size_x: 1248, image_size_y: 384" Do I need to change these to 1280x1280. I specified the size when configuring the dataset to convert the original images from 650x650 to 1280x1280, but I was not sure if Digits gets the image size from the database or from the model file?

The Kitti model file lists the batch size as 10, but in the DIGITS gui, I set the batch size to 2. So which batch size is actually used? Do I need to change the batch size in both the gui and in the model file?

So reference, the Kitti network begins with
# DetectNet network

# Data/Input layers
name: "DetectNet"
layer {
  name: "train_data"
  type: "Data"
  top: "data"
  data_param {
    backend: LMDB
    source: "examples/kitti/kitti_train_images.lmdb"
    batch_size: 10
  }
  include: { phase: TRAIN }
}
layer {
  name: "train_label"
  type: "Data"
  top: "label"
  data_param {
    backend: LMDB
    source: "examples/kitti/kitti_train_labels.lmdb"
    batch_size: 10
  }
  include: { phase: TRAIN }
}
layer {
  name: "val_data"
  type: "Data"
  top: "data"
  data_param {
    backend: LMDB
    source: "examples/kitti/kitti_test_images.lmdb"
    batch_size: 6
  }
  include: { phase: TEST stage: "val" }

Do I need to manually change the paths for the say "examples/kitti/kitti_test_images.lmdb" and the corresponding databases to match the names that were created when I imported my own dataset--in my case "
/jobs/20180428-163443-b049/val_db/features.lmdb"?
Here is what the learning output looked like when I did not change the hard coded paths--in the attached file. I don't see the usual mAP and other lines like I should. The model is not detecting any bounding boxes.

Any help is appreciated.
Krishna

@gheinrich would you happen to have any tips on this question? Thanks.


Upgrade React to v0.13.0

It's just been released, see the announcement at http://facebook.github.io/react/blog/2015/03/10/react-v0.13.html

Blocked until react-router 0.13 is released.

Unblocking, since we ditched react-router.

Fixed in cfdc3bf81eca2029efbf42754b20eb13498c5dab.


stream: Add join/leave notifications for private streams

Fixes #2746

@timabbott sorry for the delay. Please check the tests as well.

@sinwar can you update this PR?  I'd love to get it finished and integrated.

I am updating the PR now @timabbott.

@timabbott Have a look.

Closing, since this has been stale for 9 months.


Add RunnerResult class

Summary
Ported RunnerResult class from qiskit-ibmq-provider
Details and comments
Fixes #477

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

13 of 33 (39.39%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 64.607%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_ibm_runtime/runner_result.py
12
32
37.5%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
3273

Relevant Lines:
5066

💛  - Coveralls


Customise the primary click action for files in the source control tab

I often use the source control menu to jump between files by right clicking on a file and choosing 'Open file'.
Would it be possible to add a settings property that makes primary click 'Open file' instead of 'Open changes'?

@mradbourne Wanna attempt a PR? All changes should be contained in the extensions/git folder.

fyi @bpasero related #30530 cc: @joaomoreno

Not sure...

Actually I went with just having the action inline:


backpopulate the project label on a namesapce if that namespace is used in launching an app

As the title says. This will make that namespace show up as a project when you do acorn projects

This would be nice! With the GitLab Kubernetes Integration a Namespace is automatically created for that environment, that can directly be used for the project namespace

@ibuildthecloud i'm going to have someone do this for v0.6.0. Just let me know if you have any grander schemes for projects that would affect this

Tested with acorn version -  v0.5.1-46-g1e0a96b+1e0a96be

Create a namespace in kubectl - test1
Deployed app in the namespace using - acorn run -j  test1 .
This resulted in test1 becoming a project - label - acorn.io/project=true was added to test1 namespace.
Able to list/use and delete this project.

Tested with acorn version v0.5.1-49-gdc65d88+dc65d881

Create a namespace and  deploy apps in the namespace using  kubectl apply

% cat  testns.yml
apiVersion: v1
kind: Namespace
metadata:
  name: testy3

 % cat  test.yml
apiVersion: api.acorn.io/v1
kind: App
metadata:
  name: test1
  namespace: testy3
spec:
  image: docker.io/sangeetha/myfirstacorn:v6.0.0

 % kubectl apply -f testns.yml -f test.yml
namespace/testy3 created
app.api.acorn.io/test1 created

label - acorn.io/project=true gets  added to testy3 namespace.
We see testy3 project being listed in project list view.


[aes] Forcing cipher core FSM signals does not result in fatal alert

hi @vogelpi
in the cipher_control_fsm forcing the key_dec_sel does not result in the expected fatal
here you can see one is set to two
while one of the two other is set to key_dec_expand

to recreate use PR#13645
and run
./util/dvsim/dvsim.py hw/ip/aes/dv/aes_masking_sim_cfg.hjson -i aes_cipher_fi -r 1 -t xcelium -w=shm -v=m -s=806002346

Hi @rasmus-madsen ,
I just had a look at this. The specified seed no longer results in a failure. But what's happening is very similar to #13572.
For example, forcing the following signals doesn't result in a fatal alert:

out_ready_i to 1, seed<PHONE_NUMBER>
sub_bytes_out_req_i to 1, seed<PHONE_NUMBER>
key_expand_out_req_i to 1, seed 901639764

Has this been fixed by now or is this still occurring?

About 1 out of 10 runs fails because of this currently. It's not a problem in the RTL but the test. The test forces a signal which doesn't have an effect in a reasonable amount of time (see #13572). Since we have many passing seeds for these FI tests and coverage looks pretty good, I am proposing to fix the test after V2S/M2.
Since this is very similar to #13572, I am closing it and rename the other issue/make it more general. Let's continue any discussions over there.


Link to better VPN instructions

The google doc linked to as the "normal GDS vpn" didn't include details for using openconnect insead of cisco anyconnect.  The page about fixing problems on the dev VM suggests we use openconnect (see: https://docs.publishing.service.gov.uk/manual/fix-problems-with-vagrant.html#are-you-on-a-vpn) instead to fix some VM issues with anyconnect so it feels like it'd be useful if this page did the same.

Should I be bumping the last_reviewed_on frontmatter of this page in this PR too?

Sure!

Thanks @davidbasalla, I have done so.


pc.createMesh is broken in 1.5.0

Description
Environment: Windows 11, Firefox 94.0.2
I'm trying to use the pc.createMesh method to create a new mesh based on some vertex data I get from multiple other skinned meshes.
I've noticed that the current implementation is calling the mesh.setVertexStream with wrong arguments for the SEMANTIC_BLENDINDICES semantic
        if (opts.blendIndices) {
            mesh.setVertexStream(SEMANTIC_BLENDINDICES, opts.blendIndices, 4, TYPE_UINT8);
        }

The fourth parameter should be the number of vertices based on the signature:
setVertexStream(semantic, data, componentCount, numVertices, dataType = TYPE_FLOAT32, dataTypeNormalize = false)

Well spotted, thanks!
In the meantime, feel free to create mesh directly instead of using this wrapped function.


Launches query (v4) with populate 'crew' options doesn't work

I use the query for launches for my app as follows:

{
    "query": "",
    "options": {
        "populate": [
            // other populate options works correct
            {
                "path": "crew",
                "select": "-launches"
            },

        ],
        "pagination": false
    }
}

Some days ago it starts to send broken response without crew populated on;ly with id in array. Is it error or feature mentioned in https://github.com/r-spacex/SpaceX-API/issues/842? Should I update my app with v5 launches query?

Now it works, thank you.


Dream prompt input processing doesn't accept single quotes

Hi,
While running the dream.py script with a file containing the input prompts, I saw that having a ' will skip the prompt.
The error is "No closing quotation"
I'm unsure if this is normal, or unintended.
Anyways, thanks for the script, it's great! I'd love to see a replica of the bot, so it could be self-hosted and run on my own server, allowing my friends to use it

It's a parser problem. I will fix, but in meantime you can backlash escape the quote like this: it's

Thanks!

You can also surround the prompt in ""

Fixed.


[BEAM-1038] Allow stateful DoFn in DataflowRunner

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[x] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

Confirmed that the post commit should succeed, via the following command:
mvn verify \
    --batch-mode \
    --errors \
    --projects runners/google-cloud-dataflow-java \
    -DforkCount=0 \
    -DfailIfNoTests=false \
    -Dtest=org.apache.beam.sdk.transforms.ParDoTest \
    -DrunnableOnServicePipelineOptions='[
        "--runner=org.apache.beam.runners.dataflow.testing.TestDataflowRunner",
        "--project=...",
        "--tempRoot=..." ]'

with output ending in:
Running org.apache.beam.sdk.transforms.ParDoTest
Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 273.736 sec - in org.apache.beam.sdk.transforms.ParDoTest

R: @bjchambers


Always logged out when script aborts, not practical!

Should be due to the regeneration_time which is set to 5 minutes. It validates the session, but does not persist the new one due to script abortion.
The regeneration of session id could be done right before saving instead of during retrieval.


Customize default scalar serialization & parsing

Hi,
My team want to apply whitespace stripping to all string inputs as a general rule for our graphql service.
I expected that replacing the scalar type for String would be as simple as adding any other scalar, following the documentation:
@Bean
RuntimeWiringConfigurer trimAllStringInputs(TrimStringsCoercing trimStringsCoercing) {
    GraphQLScalarType trimmedString = GraphQLScalarType.newScalar(Scalars.GraphQLString)
        .coercing(trimStringsCoercing)
        .build();

    return wiringBuilder -> wiringBuilder.scalar(trimmedString).build();
}

But this results in the following graphql.AssertException
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.graphql.execution.GraphQlSource]: Factory method 'graphQlSource' threw exception; nested exception is graphql.AssertException: All types within a GraphQL schema must have unique names. No two provided types may have the same name.
No provided type may have a name which conflicts with any built in types (including Scalar and Introspection types).
You have redefined the type 'String' from being a 'GraphQLScalarType' to a 'GraphQLScalarType'
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
	... 38 common frames omitted
Caused by: graphql.AssertException: All types within a GraphQL schema must have unique names. No two provided types may have the same name.
No provided type may have a name which conflicts with any built in types (including Scalar and Introspection types).
You have redefined the type 'String' from being a 'GraphQLScalarType' to a 'GraphQLScalarType'
	at graphql.schema.impl.GraphQLTypeCollectingVisitor.assertTypeUniqueness(GraphQLTypeCollectingVisitor.java:118)
	at graphql.schema.impl.GraphQLTypeCollectingVisitor.visitGraphQLScalarType(GraphQLTypeCollectingVisitor.java:44)
...

I was wondering if there were any thoughts about allowing users to customize these standard scalars, I'd expect that we're not the only use case that would consider something akin to this.
Thanks!

It looks like you're trying to replace a default scalar from GraphQL Java with your own.
While I understand the use case here, I feel like this is more of a GraphQL Java issue - the team would probably better guide you to a more appropriate API or a better way to solve this.
Could you create this issue against the GraphQL Java project?

Ah sorry should have realized that this was below you guys and in that project - sorry for your time!


How run_script.py copy and exec script

Fix me if I'm wrong
I don't know how you guys can copy and run the script within this function in attacks.run_script.RunScript#_run_script
    def _run_script(self, host, user, local_script, remote_script, pem):
        """
        Copy a script to a remote host and exec it.
        """
        self.log.info("running %s in node %s", local_script, host)

        pem_decoded = base64.b64decode(pem).decode()

        temp = tempfile.NamedTemporaryFile('w', delete=False)
        temp.write(pem_decoded)
        temp.flush()
        temp.close()

        self.log.info("connect ssh client to %s with user %s", host, user)
        self.log.info("Executing remote script")

You're right. The old SSH code was removed due to license incompatibilities. If you look at the prior commit, you can see the correct code which was based on paramiko library. This needs to be fixed.

According to this example
This is my approach.

    def _run_script(self, host, local_script, public_key):
        """
        Copy a script to a remote host and exec it.
        """
        self.log.info("running %s in node %s", local_script, host)

        with open(local_script) as fp:
            local_script = fp.read()
        step1 = SSHKeyDeployment(public_key)
        step2 = ScriptDeployment(local_script)

        deployment = MultiStepDeployment([step1, step2])
        conn = self.driver
        images = conn.list_images()
        sizes = conn.list_sizes()

        # deploy_node takes the same base keyword arguments as create_node.
        conn.deploy_node(name='deploy_local_script', image=images[0], size=sizes[0],
                         deploy=deployment)

If you think it makes sense, I would like to make PR @gdiazlo

Cool. Please make a PR so we can test it too!


Add user defined window function support

Which issue does this PR close?
Closes #845
Rationale for this change
Currently users can only create user defined scalar functions and user defined window functions. This enables authoring user defined window functions. It is a core functionality that has been missing on the python library.
What changes are included in this PR?
Designed similar to the UDAF, we have an abstract class for UDWF that users must inherit from.
Are there any user-facing changes?
Adds new udwf() function and WindowUDF class.

I'll move it out of draft after adding unit tests.

Also should add an example.

Also need to update online documentation

Thank you for the reviews! I’m pretty slammed right now but should get to this early next week


Codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@295407e). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             main    #102   +/-   ##
======================================
  Coverage        ?   5.07%
  Complexity      ?     262
======================================
  Files           ?      35
  Lines           ?     946
  Branches        ?       0
======================================
  Hits            ?      48
  Misses          ?     898
  Partials        ?       0

Continue to review full report at Codecov.

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


Highlight search matches in resource details

Description
This enables highlighting of matching substrings in items shown in the resource details view.
It also creates a default search via the interface so that all property grids participate in search.
Before

After

Checklist

Is this feature complete?

[x] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[ ] Yes
[x] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[x] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[x] No

Does the change require an update in our Aspire docs?

[ ] Yes

Link to aspire-docs issue:

[x] No

Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run


Use stash to upload

By using the stash-based upload process available in the MediaWiki API, we can decouple the uploading of the file content from the decision of the file name. This can be great because it reduces the chance of the file name being taken by someone else during a long upload process, resulting in an overwrite. (#228)
https://www.mediawiki.org/wiki/API:Upload has some documentation on it. Also, there is a concise code example in Python: https://github.com/wikimedia/mediawiki-extensions-UploadWizard/blob/e3a24c604c36d01ba24f456ecccca54dfa21d016/tests/api/upload-wizard_tests.py#L52

I think there a couple of possibilities, with varying scope of changes. I believe the options below will not require UI change (but will require changes to the upload process working in the background). What do you think?

Shift the timing to check the file name's availability (=the findUniqueFilename method). By doing the check in the last minute (after the file is uploaded), I believe we can make the chance of overwriting smaller.
We could start stash-uploading in the background while we wait for the user's input to the title field. This will probably be a larger change than the first one.

Option 1 sounds good to me. What do the others think? :)
My concern with Option 2 is, what do we do if the user doesn't complete the process of putting in a title? Currently, that would just mean that the upload doesn't get submitted at all. But if we were to go with Option 2, then if I understand correctly, we would have uploaded a file without any name? Can the file be easily cancelled without needing to go through the Commons deletion nomination process?

It is a two-stage upload process and in the first stage, the uploaded file will have a temporary name in a temporary space ("stash"), separate from the normal File namespace. If you cancel before finishing the second request, the uploaded material will be gone.  At least that's how I understand from the documentation:

the server will stash the file temporarily instead of adding it to the repository.

Working great in my tests.
A small difference I noticed is that files are now uploaded in parallel, rather than one after the other (not sure whether that is related to this PR or not).


Transcription is working badly without internet connection

I've used the project to transcript some text without the internet. I don't even get full text from my speech. It returns either first part or last part or strange text from the speech. Can I do something with this? I am using local medium model

Internet connection should not affect the reuslt. Models and inference are done in local computer.
What are yout translation configuration options?
Seem sto be VAD options, or audio problem

VAD filter turned off, settings regarding translation configuration as I udnerstand are showed in the image

Internet connection should not affect the reuslt. Models and inference are done in local computer.
What are yout translation configuration options? Seem sto be VAD options, or audio problem

Have you tried savinf the captured audio and listening to it? is it ok?


Remove Arc on api_key and host in Client structure

It just removed an unnecessary Arc

Hey @Jasperav there seems to be a clippy error. Could you fix it?

@bidoubiwa Welp, forgot to removed the import. I think the CI now auto kicks-off when I commit something, so this won't happen again (I keep an eye open if an error occurs). I see that you labeled this as a breaking change, I doubt a client ever cloned the Arc, but I guess it won't matter that much.

@Jasperav yes you're probably right. I just don't want to take any risks


Potential fix for detecting idle PIO?

This may fix the early return from the prior version of the hwled_wait_idle() function?
Need testing / verification.

Sorry, generating a test webhook

I am going to test this now.

This is the 1 wire LEDs, you can see the three frames (0xffffff 0x000000 0xaa55aa) are nicely packed to meet spec.

Here is the 2 wire LEDs with this pull request. The frames are spaced out a lot, same as before. This is much faster than the 1wire protocol, but 16uS between frames still seems like a lot to me.

Slowed it down from 5MHz to 800khz and we get the nice tightly packed frames of the 1wire protocol.
Still, sending 32bit frames at 5mhz with nothing but packing in frames seems off to me.

I merged the changes manually after testing.

I reworked the syntax processor to use arrays of functions and removed the switch statements. I thought it was probably one source of the delay between frames. However, look at this. After the start frame there is a sizable delay, but then everything else queues up nicely. This includes data and a stop frame.

Actually it doesn't seem to matter what is first, the first frame has a big delay after it.
None of these functions are using the wait_for_idle at all, that is done at the end of the syntax execution.

I merged the changes manually after testing.

It sounds like you picked up the changes for the hwled_wait_idle(), so I could delete the branch.   At the same time, it sounds like you found an unrelated issue?

Actually it doesn't seem to matter what is first, the first frame has a big delay after it.

If I'm understanding correctly:

WS281x (aka 1-wire LEDs, typically 800kHz) are working correctly.
APA102 (aka 2-wire LEDs, SK9822, Adafruit Dotstar, etc.) are outputting correct data.
However, APA102 has a 10µs-16µs delays after the first frame, where a frame is the single 32-bit value that the PIO program pulls, and which the PIO program then extracts the R/G/B values for.  Moreover, it doesn't matter what is contained within that first frame ... the delay still occurs.

Is this approximately correct?
If so, then I will open a new issue referring to this thread, and close this PR.
My first thoughts are to investigate the PIO program, the in/out buffer configuration for the PIO program, etc.

Yes, I will go ahead and close this PR.
I think I may have misled you on a different issue, and then confused your solution with a separate matter in this thread.
I believe you are try to solve:
I added the wait idle before the 50uS delay, but it is not working in here. So maybe the wait idle isn’t working the way I think it is.

Had to increase the reset delay to 100us to get my string of LEDs to cooperate. WS2812 is working. Now to test APA102…

Which was two separate fixes

I put the wait for IDLE in the stop frame function instead of the start frame function. They are nearly identical in LED mode and I just updated the wrong function. That was the solution to the first part.
I did have to increase the reset delay, but because a precise 50uS delay wasn't enough for any of my LED test strings. >65uS worked on all of them. I put it at 100uS because it seemed safe for all manner cheapo LEDs that are out there.

Partially fixed, but I still don’t like how spaced out the frames are.

I thought your proposed solution was to this persistent issue. I tore apart and reworked the whole syntax compiler to hunt that one down. It was not something I had planned for the near future, but I'm very happy with the result. It didn't fix that between-frame bug. I did note the delay isn't there when pushing only data, it only happens between start frame ([) and whatever comes next. It is really weird.


Pinned tags

Would be great to allow pinning of tags in the selector.
Pinned tags should be stored as user data per each root.

Pinned tags must be represented in linear tags selector before any other tags.
In linear view, pinned tags must be ordered by popularity, the same as other groups of tags.
In graph/cloud view, pinned tags should be highlighted.


Turbine--Compute Normalized Flow Error

In Turbine_TMATS.c, Compute Normalized Flow Error
line 345--346:
else if (IDes < 0.5)
NErrorOut = (Nmech - NDes)/NDes;
Why use NDes as a error?
Why don't use PRmapDes as a error?  NErrorOut = (PRIn - PRmapDes)/PRmapDes;

ck1313,
Thanks for commenting.  This error is calculated only when iDesign is turned on ( IDes = 0).  The iDesign feature calculates map scalars automatically to match the map with the current operating point. A scalar is applied to PRmapDes to match PRIn. Scalars will be 1 only if the map exactly matches the design operating point.
In other words:
Where, PRIn = (PRmap -1)*s_PR +1.  When IDes ==0 (iDesign on), s_PR is chosen so that this equation is true for the current point (map and actual operation). If IDes is off ( 1 or 2),  s_PR is an input and the block uses the default convergence criteria (mass flow).
-Jeff

OK. Thanks for your answer. I forget the s_PR should be calculated.
-CK


Change Windows line-endings to Unix

/assign @steveperry-53

/assign @tengqm

@ialidzhikov 👋 Thanks for this PR. Out of curiosity, are you encountering any specific difficulties with the current line-endings?

it is always good to be consistent.
/lgtm
/approve


add yeelight adapter, mihome-vacuum and landroid s in stable

Testing with yeelight is red becaue odf a name conflict: yeelight-2 in package.json vs yeelight in io-package??
names must match! (beside the capital vs non-capital "B" :-)

now all names are the same...


[FEATURE] overriding usage to add link_name to wash ctl link put

Addresses #247
This is the current way I've seen to override the usage string for a specific command. I was unable to find a way to make certain [OPTIONS] come out for visibility (like a must_show_usage kind of attribute to add to an option).
Probably need to wrap the link-name option in [] too, but we can review that.

So here's the output that I get
➜ wash ctl link put --help
wash-ctl-link-put
Establish a link definition

USAGE:
    wash ctl link put --link-name <LINK_NAME> [OPTIONS] <actor-id> <provider-id> <contract-id> [values]...

ARGS:
    <actor-id>       Public key ID of actor
    <provider-id>    Public key ID of provider
    <contract-id>    Capability contract ID between actor and provider
    <values>...      Environment values to provide alongside link

OPTIONS:
        --context <CONTEXT>
            Path to a context with values to use for CTL connection and authentication

        --ctl-credsfile <CTL_CREDSFILE>
            Credsfile for CTL authentication. Combines ctl_seed and ctl_jwt. See
            https://docs.nats.io/developing-with-nats/security/creds for details [env:
            WASH_CTL_CREDS]

        --ctl-jwt <CTL_JWT>
            JWT file for CTL authentication. Must be supplied with ctl_seed [env: WASMCLOUD_CTL_JWT]

        --ctl-seed <CTL_SEED>
            Seed file or literal for CTL authentication. Must be supplied with ctl_jwt [env:
            WASMCLOUD_CTL_SEED]

    -h, --help
            Print help information

    -l, --link-name <LINK_NAME>
            Link name, defaults to "default"

    -o, --output <OUTPUT>
            Specify output format (text or json) [default: text]

    -p, --ctl-port <CTL_PORT>
            CTL Port for connections, defaults to 4222 for local nats [env: WASMCLOUD_CTL_PORT=]

    -r, --ctl-host <CTL_HOST>
            CTL Host for connection, defaults to <IP_ADDRESS> for local nats [env: WASMCLOUD_CTL_HOST=]

    -t, --ack-timeout-ms <ACK_TIMEOUT_MS>
            Timeout length to await a control interface response, defaults to 2000 milliseconds
            [env: WASMCLOUD_CTL_TIMEOUT_MS=] [default: 2000]

    -x, --lattice-prefix <LATTICE_PREFIX>
            Lattice prefix for wasmcloud control interface, defaults to "default" [env:
            WASMCLOUD_LATTICE_PREFIX=]

I think this fits the bill pretty well! I don't see the link put interaction changing much over time so keeping in mind that we'd need to update that text isn't too big of a deal. @thomastaylor312 @autodidaddict any thoughts / reservations about overriding the clap text here?

Nope, this seems like exactly the case we'd want to override for

@emattiza I think this is good to mark as "Ready for review" if you are ready


⚠ Bofrost.fr has degraded performance

In c68dbe2, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1649 ms

Resolved: Bofrost.fr performance has improved in c5833cf after 6 minutes.


the build agent doesn't have enough permission to perform a git push !

 Details: identity 'Build\299c569e-c3c3-4bc2-ae4f-a8e4d264b60c', scope 'repository'.
remote: TF401027: You need the Git 'GenericContribute' permission to perform this action. Details: identity 'Build\299c569e-c3c3-4bc2-ae4f-a8e4d264b60c', scope 'repository'.
fatal: unable to access 'https://xxxxxxxx.visualstudio.com/BerryWorld.D365.MasterData/_git/BerryWorld.D365.MasterData/': The requested URL returned error: 403

and here is the whole output:

##[section]Starting: Command Line Script
==============================================================================
Task         : Command line
Description  : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
Version      : 2.151.2
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
==============================================================================
Generating script.
========================== Starting Command Output ===========================
##[command]"C:\windows\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "D:\a\_temp\59ed023a-39de-4bbb-9023-d8d14a19e077.cmd""
SOURCE BRANCH IS refs/heads/master
GIT CHECKOUT MASTER
Switched to a new branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
GIT STATUS
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
setting git user email and name
create a textfile.txt with some content
GIT add . and commit
[master cba15fd] just poc
 1 file changed, 11 insertions(+)
 create mode 100644 textfile.txt
GIT STATUS
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean
GIT PUSH
remote: 001f# service=git-receive-pack
remote:<PHONE_NUMBER>aaTF401027: You need the Git 'GenericContribute' permission to perform this action. Details: identity 'Build\299c569e-c3c3-4bc2-ae4f-a8e4d264b60c', scope 'repository'.
remote: TF401027: You need the Git 'GenericContribute' permission to perform this action. Details: identity 'Build\299c569e-c3c3-4bc2-ae4f-a8e4d264b60c', scope 'repository'.
fatal: unable to access 'https://xxxxxx.visualstudio.com/BerryWorld.D365.MasterData/_git/BerryWorld.D365.MasterData/': The requested URL returned error: 403
GIT STATUS
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean
##[section]Finishing: Command Line Script

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

ID: 024e4ed9-cf8d-155f-5e4a-73c2effaaed8
Version Independent ID: f19c0538-4aae-b3b4-82b9-422e76723b01
Content: Run Git commands in a script - Azure Pipelines
Content Source: docs/pipelines/scripts/git-commands.md
Product: devops
Technology: devops-cicd
GitHub Login: @chasewilson
Microsoft Alias: phwilson

I had this same issue and finally got it to work after explicitly adding the "Project Collection Build Service" user to be able to contribute. This is different from the "Project Collection Build Service Accounts" group, it is an actual user that needs to be added separately.
I added it to the top level "Git Repositories" so this works by default for all of our repos.

@Farzad-Jalali, @tyler8691 Thank you both for your input! @Farzad-Jalali, does this answer your question?

I'll be closing this issue. Please feel free to reach out or create a new issue if you need to.

@chasewilson The documentation doesn't clearly mention that the user "Project Collection Build Service" has to be explicitly added. I ended up making the same mistake of updating the permissions on "Project Collection Build Service Accounts" instead of updating the user's. Can you please update the document to call this out.  Also the screen shots on the page looks stale.

Just ran into the same issue. Read the docs and selected the last user in the list, whose name is awfully similar to the one the docs mention. Apparently not the correct one. I admit that I should've read the docs more carefully, but updating them and highlighting either the possible name confusion or the fact that it probably will not be in the list and that you need to add it, would've caused a whole lot less annoyance on my end and saved me some time as well.

I had this same issue and finally got it to work after explicitly adding the "Project Collection Build Service" user to be able to contribute. This is different from the "Project Collection Build Service Accounts" group, it is an actual user that needs to be added separately.
I added it to the top level "Git Repositories" so this works by default for all of our repos.

Finally after days trying to get this working. I was also adding permissions to the Group and not the individual user. I am glad I came across this. Many thanks for the help and posting this solution.


[Bugfix] Entering image entropy via long click raises PIL Exception

fixes #450
The problem
Prior to this PR, the frame is None check did not affect later attempts to paste that frame into the Renderer upon final image click.
Note: When the camera first starts up, it can initially return frame == None for a few cycles.
If the user enters image entropy (Tools -> New seed) via a long click (click-and-hold), they enter a race condition with the camera: will the camera return a valid frame before the long click repeat triggers the final image logic?
Resolution
This PR:

reorganizes the if checks in the loop
adds stricter handling when frame is None

adds a very short time.sleep() to give the camera more time to warm up.

Misc

Slightly more efficient BACK condition to exit the loop (no point in drawing the next preview frame if we're canceling).
Minor edit to preserve newer preview frames after max_entropy_frames has been reached; now cycles older frames out in order to keep writing the new preview frames. No discernible impact on performance, though I didn't attempt to measure before/after framerate.

as of 91b0206, which is just one commit ahead of Nicks merges last night (2244509),
and assuming that cleanup of imports (Keyboard, TextEntryDisplay, BaseTopNavScreen, FormattedAddress, and QR) is just tidying of unused imports...
ACK tested on raspi-os and on seedsigner-os.
The long press was religiously causing this exception, at least all the way back to 0.5.1-EXP, and a short press was avoiding it.  Now, a long press will NOT raise any exception... but I know I pressed long because the captured frame is the next step.

ACK and tested


Apply the requested mediaType to STJ request headers (#201)

Motivation
Currently all JSON requests from System.Text.Json generated clients are sent as application/json, even if that isn't one of the allowed content types on the spec.
Modifications
Send the requested media type, which will be the highest priority JSON content type provided on the spec. Also indicate UTF-8 encoding.
Fixes #200

/merge